Beispiel #1
0
MessageWidget::MessageWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MessageWidget)
{
    ui->setupUi(this);
    QSettings settings;
    ip = settings.value("wlanIP").toString();
    port = settings.value("sPort").toInt();

    this->setLayout(ui->layoutMessages);

    this->sortModel.setSourceModel(&messageModel);
    this->sortModel.setSortCaseSensitivity(Qt::CaseInsensitive);
    this->sortModel.setDynamicSortFilter(true);
    this->sortModel.setFilterRole(MessageModel::ThreadIdRole);
    this->sortModel.setSortRole(MessageModel::TimeStampRole);
    this->sortModel.sort(0, Qt::DescendingOrder);

    this->sortThreadModel.setSourceModel(&this->messageThreadModel);
    this->sortThreadModel.setSortCaseSensitivity(Qt::CaseInsensitive);
    this->sortThreadModel.setDynamicSortFilter(true);
    this->sortThreadModel.setSortRole(MessageThreadModel::TimeStampRole);
    this->sortThreadModel.sort(0, Qt::DescendingOrder);

    this->sortContactModel.setSourceModel(&this->contactModel);
    this->sortContactModel.setSortCaseSensitivity(Qt::CaseInsensitive);
    this->sortContactModel.setDynamicSortFilter(true);
    this->sortContactModel.setFilterRole(ContactModel::NameRole);
    this->sortContactModel.setSortRole(ContactModel::NameRole);
    this->sortContactModel.sort(0, Qt::AscendingOrder);

    this->messageCount=0;

    this->qmlView =  new QDeclarativeView;
    this->qmlViewCtx = this->qmlView->rootContext();
    if (QFile::exists("qml/messageView.qml"))
        this->qmlView->setSource(QUrl::fromLocalFile("qml/messageView.qml"));
    else
        //this->qmlView->setSource(QUrl::fromLocalFile("../messages/qml/messageView.qml"));
        this->qmlView->setSource(QUrl("qrc:/qml/qml/messageView.qml"));
    this->qmlViewCtx->setContextProperty("threadModel", &sortThreadModel);
    this->qmlViewCtx->setContextProperty("contactModel", &sortContactModel);
    this->qmlViewCtx->setContextProperty("messageModel", &sortModel);
    this->qmlViewCtx->setContextProperty("myNickname", "Me");
    this->qmlViewCtx->setContextProperty("contactDefault", "qrc:/icons/contactDefault.png");

    qmlView->setResizeMode(QDeclarativeView::SizeRootObjectToView);
    this->qmlViewCtx->setContextProperty("messageWidget", this);

    ui->layoutMessages->addWidget(this->qmlView,1,1);

    socket = new QTcpSocket();
    connect(socket, SIGNAL(readyRead()), this, SLOT(readMesg()));
    connect(socket,SIGNAL(readChannelFinished()), this, SLOT(readFinshed()));

    ts = new SocketThread();
    connect(ts,SIGNAL(readData(QString)), this, SLOT(readData(QString)));

    on_pushButton_pressed();
}
Beispiel #2
0
MessageWidget::MessageWidget(QWidget *parent, QString clientIP) :
    QWidget(parent),
    ui(new Ui::MessageWidget)
{
    ui->setupUi(this);

    this->setLayout(ui->layoutMessages);

    this->sortModel.setSourceModel(&messageModel);
    this->sortModel.setSortCaseSensitivity(Qt::CaseInsensitive);
    this->sortModel.setDynamicSortFilter(true);
    this->sortModel.setFilterRole(MessageModel::ThreadIdRole);
    this->sortModel.setSortRole(MessageModel::TimeStampRole);
    this->sortModel.sort(0, Qt::DescendingOrder);

    this->sortThreadModel.setSourceModel(&this->messageThreadModel);
    this->sortThreadModel.setSortCaseSensitivity(Qt::CaseInsensitive);
    this->sortThreadModel.setDynamicSortFilter(true);
    this->sortThreadModel.setSortRole(MessageThreadModel::TimeStampRole);
    this->sortThreadModel.sort(0, Qt::DescendingOrder);

    this->sortContactModel.setSourceModel(&this->contactModel);
    this->sortContactModel.setSortCaseSensitivity(Qt::CaseInsensitive);
    this->sortContactModel.setDynamicSortFilter(true);
    this->sortContactModel.setFilterRole(ContactModel::NameRole);
    this->sortContactModel.setSortRole(ContactModel::NameRole);
    this->sortContactModel.sort(0, Qt::AscendingOrder);

    this->messageCount=0;

    this->qmlView =  new QDeclarativeView;
    this->qmlViewCtx = this->qmlView->rootContext();
    if (QFile::exists("qml/messageView.qml"))
        this->qmlView->setSource(QUrl::fromLocalFile("qml/messageView.qml"));
    else
        //this->qmlView->setSource(QUrl::fromLocalFile("../messages/qml/messageView.qml"));
        this->qmlView->setSource(QUrl("qrc:/qml/qml/messageView.qml"));
    this->qmlViewCtx->setContextProperty("threadModel", &sortThreadModel);
    this->qmlViewCtx->setContextProperty("contactModel", &sortContactModel);
    this->qmlViewCtx->setContextProperty("messageModel", &sortModel);
    this->qmlViewCtx->setContextProperty("myNickname", "Me");
    this->qmlViewCtx->setContextProperty("contactDefault", "qrc:/icons/contactDefault.png");
    qmlView->setResizeMode(QDeclarativeView::SizeRootObjectToView);

    this->qmlViewCtx->setContextProperty("messageWidget", this);

    ui->layoutMessages->addWidget(this->qmlView,1,1);

    //QSettings settings;
    //this->sdk = settings.value("sdkPath").toString();
    this->tcpServer.listen(QHostAddress::Any,4445);

    connect(&this->tcpServer, SIGNAL(newConnection()), this, SLOT(newConnection()));
    this->clientIP = clientIP;

    on_pushButton_pressed();
}