Пример #1
0
JDMainWin::JDMainWin(const QString &name, const QString &jid, int acc, QWidget *p)
	: QDialog(p, Qt::Window)
	, model_(0)
	, commands_(0)
	, refreshInProgres_(false)
	, yourJid_(name)
{
	setAttribute(Qt::WA_DeleteOnClose);
	ui_.setupUi(this);

	setWindowTitle(tr("Jabber Disk - %1").arg(name));

	model_ = new JDModel(jid, this);
	ui_.lv_disk->setModel(model_);

	commands_ = new JDCommands(acc, jid, this);

	ui_.pb_send->setShortcut(QKeySequence("Ctrl+Return"));
	connect(commands_, SIGNAL(incomingMessage(QString,JDCommands::Command)), SLOT(incomingMessage(QString,JDCommands::Command)));
	connect(commands_, SIGNAL(outgoingMessage(QString)), SLOT(outgoingMessage(QString)));
	connect(ui_.pb_refresh, SIGNAL(clicked()), SLOT(refresh()));
	connect(ui_.pb_send, SIGNAL(clicked()), SLOT(doSend()));
	connect(ui_.pb_clear, SIGNAL(clicked()), SLOT(clearLog()));

	connect(ui_.lv_disk, SIGNAL(newIndex(QModelIndex)), SLOT(indexChanged(QModelIndex)));
	connect(ui_.lv_disk, SIGNAL(contextMenu(QModelIndex)), SLOT(indexContextMenu(QModelIndex)));

	connect(model_, SIGNAL(moveItem(QString,QString)), SLOT(moveItem(QString,QString)));

	show();

	QTimer::singleShot(0, this, SLOT(refresh()));
}
Пример #2
0
void CChatSessionG2::OnCMSG(G2Packet *pPacket)
{
	if( !pPacket->m_bCompound || m_nState < csConnected )
		return;

	char szType[9];
	quint32 nLength = 0, nNext = 0;

	QString sMessage;
	bool bAction = false;

	while(pPacket->ReadPacket(&szType[0], nLength))
	{
		nNext = pPacket->m_nPosition + nLength;

		if(strcmp("BODY", szType) == 0)
		{
			sMessage = pPacket->ReadString(nLength);
		}
		else if (strcmp("ACT", szType) == 0 )
		{
			bAction = true;
		}

		pPacket->m_nPosition = nNext;
	}

	if( !sMessage.isEmpty() )
	{
		emit incomingMessage(sMessage, bAction);
	}
}
Пример #3
0
void *UdpServer::startUdpServerThread(void *ptr)
{
    int sock = ((UdpServer*)ptr)->getSock();

    struct sockaddr_in sender;
    sender.sin_family = AF_INET;
    socklen_t sendsize = sizeof(sender);
    bzero(&sender, sizeof(sender));

    connection_t * connection;
    cout << "server gestartet!" << endl;
    while (((UdpServer *)ptr)->getIsActive())
    {
        cout << "warte auf Broadcast..." << endl;
        connection = (connection_t *)malloc(sizeof(connection_t));

        NetworkMessage incomingMessage(LOGINREQUEST);
        connection->sock = recvfrom(sock,&incomingMessage,sizeof(NetworkMessage),0,(struct sockaddr*)&sender, &sendsize);
        if (connection->sock <= 0){
             free(connection);
        }
        else{
                cout << "Verbindungen eingegangen(UDP)..SOCK: " << connection->sock << endl;
                processThread((struct sockaddr_in)sender,ptr,incomingMessage);
                //close(connection->sock);
                free(connection);
        }
        cout << "Boradcast eigegangen!" << endl;
    }
    pthread_exit((void*) true);
}
Пример #4
0
void JDCommands::incomingStanza(int account, const QDomElement &xml)
{
    if(account != account_ || xml.attribute("from").split("/").at(0).toLower() != jid_)
        return;

    emit incomingMessage(xml.firstChildElement("body").text(), lastCommand_);
    lastCommand_ = CommandNoCommand;

    timeOut();
}
Пример #5
0
    void testQOfonoMessageManager()
    {
        QSignalSpy sendMessage(m, SIGNAL(sendMessageComplete(bool, QString)));
        QSignalSpy messageAdded(m, SIGNAL(messageAdded(QString)));
        QSignalSpy messageRemoved(m, SIGNAL(messageRemoved(QString)));
        QSignalSpy immediateMessage(m, SIGNAL(immediateMessage(QString, QVariantMap)));
        QSignalSpy incomingMessage(m, SIGNAL(incomingMessage(QString, QVariantMap)));


        QStringList messages = m->messages();
        QVERIFY(messages.count() == 0);

        m->sendMessage("99999", "success");

        QTest::qWait(1000);

        QCOMPARE(sendMessage.count(), 1);
        QVariantList params = sendMessage.takeFirst();
        QCOMPARE(params.at(0).toBool(), true);
        QString objectPath = params.at(1).value<QString>();
        QVERIFY(objectPath.length() > 0);
        qDebug() << objectPath;

        QCOMPARE(messageAdded.count(), 1);
        QCOMPARE(messageRemoved.count(), 1);

        QString messageId = messageAdded.takeFirst().at(0).toString();
        QOfonoMessage* message = new QOfonoMessage();
        message->setMessagePath(messageId);
        QSignalSpy state(message, SIGNAL(stateChanged(const QString)));
        qDebug() << message->state();

        m->sendMessage("abc", "fail");

        QTest::qWait(1000);

        QCOMPARE(sendMessage.count(), 1);
        params = sendMessage.takeFirst();
        QCOMPARE(params.at(0).toBool(), false);
        objectPath = params.at(1).value<QString>();
        QVERIFY(objectPath.length() == 0);
    }
Пример #6
0
void WalletView::processNewMessage(const QModelIndex& parent, int start, int /*end*/)
{
    // Prevent balloon-spam when initial block download is in progress
    if(!messageModel)
        return;

    MessageModel *mm = messageModel;
    
    QString sent_datetime = mm->index(start, MessageModel::ReceivedDateTime, parent).data().toString();
    QString from_address  = mm->index(start, MessageModel::FromAddress,      parent).data().toString();
    QString to_address    = mm->index(start, MessageModel::ToAddress,        parent).data().toString();
    QString message       = mm->index(start, MessageModel::Message,          parent).data().toString();
    
    int     type          = mm->index(start, MessageModel::TypeInt,          parent).data().toInt();

    emit incomingMessage(sent_datetime, from_address, to_address, message, type);
}
Пример #7
0
MainWindow::MainWindow():MApplicationWindow()
{
    QString IPaddr="127.0.0.1";
    int port=3425;

    page1=new HomePage(this);
    page2 =new LoginPage(this);
    page3=new RegistrationPage(this);
    page4=new SettingPage(this);
    page5 =new InfoPage(this);
    page6 = new ContactlistPage();
    page7=new DialogPage(this);

    sock=QSharedPointer<QTcpSocket>( new QTcpSocket());
    sock->connectToHost(IPaddr,port);

    thread1=new SendThread(sock);
    thread2=new RecvThread(sock);
    thread1->start();
    thread2->start();



    page1->appear();
    //переходы со страницы home на все остальные
    QObject::connect(page1,SIGNAL(goLoginPage()),this,SLOT(GoLoginPage()));
    QObject::connect(page1,SIGNAL(exiting()),this,SLOT(close()));
    QObject::connect(page1,SIGNAL(goRegistrationPage()),page3,SLOT(appear()));
    QObject::connect(page1,SIGNAL(goSettingPage()),page4,SLOT(appear()));
    QObject::connect(page1,SIGNAL(goContactListPage()),this,SLOT(GoContactListPage()));
    QObject::connect(page2,SIGNAL(goHomePage()),this,SLOT(GoHomePage()));
    QObject::connect(page1,SIGNAL(goInfoPage()),page5,SLOT(appear()));
    QObject::connect(page2,SIGNAL(readySend(QString)),thread1,SLOT(writeToServer(QString)));
    QObject::connect(page3,SIGNAL(readySend(QString)),thread1,SLOT(writeToServer(QString)));
    QObject::connect(page7,SIGNAL(readySend(QString)),thread1,SLOT(writeToServer(QString)));
    QObject::connect(page4,SIGNAL(changeSettings()),this,SLOT(ApplyNewSettings()));
    QObject::connect(thread2,SIGNAL(readyMessage(QSharedPointer<IMessage>)),this,SLOT(ListenServer(QSharedPointer<IMessage>)));
    QObject::connect(page6,SIGNAL(goDialogPage(QString)),this,SLOT(GoDialogPage(QString)));

    //***Signal incomingMessage(QString) should be replaced real signal about incoming message for user.***
    QObject::connect(this, SIGNAL(incomingMessage(QString)),page6, SLOT(displayMessage(QString)));
    //*****************************************************************************************************


}
Пример #8
0
void QOfonoMessageManager::setModemPath(const QString &path)
{
    if (path == d_ptr->modemPath ||
            path.isEmpty())
        return;

       if (path != modemPath()) {
           if (d_ptr->messageManager) {
            delete d_ptr->messageManager;
            d_ptr->messageManager = 0;
            d_ptr->properties.clear();
        }
        d_ptr->messageManager = new OfonoMessageManager("org.ofono", path, QDBusConnection::systemBus(),this);

        if (d_ptr->messageManager->isValid()) {
            d_ptr->modemPath = path;
            connect(d_ptr->messageManager,SIGNAL(PropertyChanged(QString,QDBusVariant)),
                    this,SLOT(propertyChanged(QString,QDBusVariant)));
            connect(d_ptr->messageManager,SIGNAL(ImmediateMessage(QString,QVariantMap)),
                    this,SIGNAL(immediateMessage(QString,QVariantMap)));
            connect(d_ptr->messageManager,SIGNAL(IncomingMessage(QString,QVariantMap)),
                    this,SIGNAL(incomingMessage(QString,QVariantMap)));

            QDBusPendingReply<QVariantMap> reply;
            reply = d_ptr->messageManager->GetProperties();
            reply.waitForFinished();
            d_ptr->properties = reply.value();

            QDBusMessage request = QDBusMessage::createMethodCall("org.ofono",
                                                                  path,
                                                                  "org.ofono.MessageManager",
                                                                  "GetMessages");

            QDBusConnection::systemBus().callWithCallback(request,
                                                           this,
                                                           SLOT(getMessagesFinished(ObjectPathPropertiesList)),
                                                           SLOT(messagesError(QDBusError)));
        }
    }
}
Пример #9
0
int RpcConnection::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: incomingMessage((*reinterpret_cast< QVariantMap(*)>(_a[1])),(*reinterpret_cast< RpcChannel*(*)>(_a[2]))); break;
        case 1: channelOpened((*reinterpret_cast< RpcChannel*(*)>(_a[1]))); break;
        case 2: channelClosed((*reinterpret_cast< RpcChannel*(*)>(_a[1]))); break;
        case 3: unregisterSender(); break;
        case 4: sendMessage((*reinterpret_cast< QVariantMap(*)>(_a[1])),(*reinterpret_cast< RpcChannel*(*)>(_a[2]))); break;
        case 5: sendMessage((*reinterpret_cast< QVariantMap(*)>(_a[1]))); break;
        case 6: newChannel((*reinterpret_cast< RpcChannel*(*)>(_a[1]))); break;
        case 7: channelIncomingMessage((*reinterpret_cast< QVariantMap(*)>(_a[1]))); break;
        case 8: channelDisconnected((*reinterpret_cast< RpcChannel*(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 9;
    }
    return _id;
}
Пример #10
0
void MainWindow::ListenServer(QSharedPointer<IMessage> mes)
{
    mes->Parse();
    if ("ser*ver"==mes->GetPart("s"))
    {
        if ("good login-password"==mes->GetPart("m"))
        {
            MMessageBox* r=new MMessageBox("Title","Welcom",M::OkButton);
            r->appear(this);
            page6->appear();
        }

        if ("good registration"==mes->GetPart("m"))
        {
            MMessageBox* r=new MMessageBox("Title","Your ID : "+mes->GetPart("id"),M::OkButton);
            r->appear(this);
            page2->appear();
        }

        if(mes->GetPart("m")=="login is already used")
        {
            MMessageBox* r=new MMessageBox("Error!","This user online already",M::OkButton);
            r->appear(this);
        }

        if(mes->GetPart("m")=="Error of password")
        {
            MMessageBox* r=new MMessageBox("Error!","Error of password",M::OkButton);
            r->appear(this);
        }

        if(mes->GetPart("m")=="Error of login")
        {
            MMessageBox* r=new MMessageBox("Error!","This login doesn`t find in contacts base",M::OkButton);
            r->appear(this);
        }

        if(mes->GetPart("m")=="Login already exist")
        {
            MMessageBox* r=new MMessageBox("Error!","Login already exist",M::OkButton);
            r->appear(this);
        }
    }

    else
    {
        if ("connect"==mes->GetPart("o"))
        {
            page6->Add(mes->GetPart("id"),mes->GetPart("s"),mes->GetPart("o"));
        }
        if ("disconnect"==mes->GetPart("o"))
        {
            page6->Remove(mes->GetPart("id"));
        }
        if (mes->GetPart("o").isEmpty())
        {
            qCritical()<<">>sender"<<mes->GetPart("id");
            qCritical()<<">>message"<<mes->GetPart("m");
            if(this->currentPage()==page7)
            {
                page7->Display(mes->GetPart("id"),mes->GetPart("m"));
            }
            else
            {
                page7->Display(mes->GetPart("id"),mes->GetPart("m"));
                emit incomingMessage(mes->GetPart("id"));//!!!!!!!!!!!!!!!
            }
        }
    }

    mes.clear();;
}
Пример #11
0
void GatewayTask::processIncomingMessage(const QString& senderUin, const QString& message, const QDateTime& timestamp)
{
    GET_JID_BY_SENDER(user_bare,user);
    QString msg = QString(message).replace('\r', "");
    emit incomingMessage(user, senderUin, msg, session->contactName(senderUin), timestamp.toUTC());
}
Пример #12
0
void GatewayTask::processUserOnline(const XMPP::Jid& user, int showStatus)
{
    bool first_login = UserManager::instance()->getOption(user.bare(), "first_login").toBool();

    if ( d->icqHost.isEmpty() || !d->icqPort ) {
        qCritical("[GT] processLogin: icq host and/or port values are not set. Aborting...");
        return;
    }
    ICQ::Session::OnlineStatus icqStatus = xmmpToIcqStatus(XMPP::Presence::Show(showStatus));

    if ( d->jidIcqTable.contains( user.bare() ) ) {
        ICQ::Session *conn = d->jidIcqTable.value( user.bare() );
        conn->setOnlineStatus(icqStatus);
        d->jidResources.insert(user.bare(), user);
        return;
    }

    if ( UserManager::instance()->isRegistered(user.bare()) ) {
        QString uin = UserManager::instance()->getUin(user.bare());
        QString password = UserManager::instance()->getPassword(user.bare());

        ICQ::Session *conn = new ICQ::Session(this);
        conn->setUin(uin);
        conn->setPassword(password);
        conn->setServerHost(d->icqHost);
        conn->setServerPort(d->icqPort);
        conn->setOnlineStatus(ICQ::Session::Online);

        QObject::connect( conn, SIGNAL( statusChanged(int) ),
                          SLOT( processIcqStatus(int) ) );
        QObject::connect( conn, SIGNAL( userOnline(QString,int) ),
                          SLOT( processContactOnline(QString,int) ) );
        QObject::connect( conn, SIGNAL( userOffline(QString) ),
                          SLOT( processContactOffline(QString) ) );
        QObject::connect( conn, SIGNAL( authGranted(QString) ),
                          SLOT( processAuthGranted(QString) ) );
        QObject::connect( conn, SIGNAL( authDenied(QString) ),
                          SLOT( processAuthDenied(QString) ) );
        QObject::connect( conn, SIGNAL( authRequest(QString) ),
                          SLOT( processAuthRequest(QString) ) );
        QObject::connect( conn, SIGNAL( incomingMessage(QString,QString) ),
                          SLOT( processIncomingMessage(QString,QString) ) );
        QObject::connect( conn, SIGNAL( incomingMessage(QString,QString,QDateTime) ),
                          SLOT( processIncomingMessage(QString,QString,QDateTime) ) );
        QObject::connect( conn, SIGNAL( connected() ),
                          SLOT( processIcqSignOn() ) );
        QObject::connect( conn, SIGNAL( disconnected() ),
                          SLOT( processIcqSignOff() ) );
        QObject::connect( conn, SIGNAL( error(QString) ),
                          SLOT( processIcqError(QString) ) );
        QObject::connect( conn, SIGNAL( shortUserDetailsAvailable(QString) ),
                          SLOT( processShortUserDetails(QString) ) );

        if ( first_login ) {
            QObject::connect( conn, SIGNAL( rosterAvailable() ), SLOT( processIcqFirstLogin() ) );
        }

        d->jidIcqTable.insert(user.bare(), conn);
        d->icqJidTable.insert(conn, user.bare());
        d->jidResources.insert(user.bare(), user);

        QTextCodec *codec;
        if ( UserManager::instance()->hasOption(user.bare(), "encoding") ) {
            codec = QTextCodec::codecForName( UserManager::instance()->getOption(user.bare(), "encoding").toByteArray() );
            if ( codec == 0 ) {
                codec = QTextCodec::codecForName("windows-1251");
            }
        } else {
            codec = QTextCodec::codecForName("windows-1251");
        }
        Q_ASSERT( codec != 0 );
        conn->setCodecForMessages(codec);
        conn->connect();
    }
}
Пример #13
0
Rekall::Rekall(const QStringList &arguments, QWidget *parent) :
    QDialog(parent) {
    trayIconWorking = false;
    trayIconIndex   = 0;
    trayIconIndexOld = 9999;
    Global::rekall = this;

    qApp->setAttribute(Qt::AA_UseHighDpiPixmaps);

    //Update
    updateManager = 0;
    forceUpdate = false;
    firstTimeOpened = newVersionOfRekall = false;
    if(arguments.contains("-forceupdate"))
        forceUpdate = true;

    //Tray icon
    trayTimer.setInterval(500);
    connect(&trayTimer,    SIGNAL(timeout()), SLOT(trayIconToOnPrivate()));
    connect(&trayTimerOff, SIGNAL(timeout()), SLOT(trayIconToOffPrivate()));
    QString prefix = "mac";
#ifdef Q_OS_WIN
    prefix = "win";
#endif
    for(quint16 i = 0 ; i <= 17 ; i++)
        trayIcons << QIcon(QString(":/icons/rekall-menubar-%1-%2.png").arg(prefix).arg(i, 2, 10, QChar('0')));
    trayIcon = new QSystemTrayIcon(this);
    trayIconToOffPrivate();
    trayTimer.start();
    connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(trayActivated(QSystemTrayIcon::ActivationReason)));

    //Interfaces
    Global::userInfos = new UserInfos(this);
    Global::http      = new Http(this);
    Analyse *analyse  = new Analyse(this);
    Global::analyse   = analyse;
    connect(analyse, SIGNAL(trayChanged(QString,bool)), SLOT(analyseTrayChanged(QString,bool)));
    connect(analyse, SIGNAL(trayIconToOff()), SLOT(trayIconToOff()));
    connect(analyse, SIGNAL(trayIconToOn(qint16)), SLOT(trayIconToOn(qint16)));
    //Wrapper web
    Global::userInfos->setDockIcon(this, false);
    Global::webWrapper = new WebWrapper();

    /*
    VideoPlayer *player = new VideoPlayer();
    player->open(QUrl::fromLocalFile("/Users/guillaume/Documents/Rekall/Walden/Captations/captation WALDEN_TPV.mov"));
    player->seek(4000);
    */

    trayMenu = new QMenu(this);
    trayMenu->setSeparatorsCollapsible(true);
    trayAnalyse      = trayMenu->addAction(tr("File analysis…"));
    trayAnalysePause = trayMenu->addAction(tr("Pause analysis"));
    trayAnalysePause->setCheckable(true);
    connect(trayAnalysePause, SIGNAL(toggled(bool)), SLOT(trayAnalysePaused()));
    trayMenu->addSeparator();
    trayMenu->addAction(tr("Open welcome page"), this, SLOT(openWebPage()));
    trayMenu->addAction(tr("Open welcome page in webrowser"), this, SLOT(openWebPageInBrowser()));
    //trayMenu->addAction(tr("Create a new project"), this, SLOT(addProject()));
    trayMenu->addSeparator();
    trayMenuProjects = trayMenu->addAction(tr("Quit Rekall"), this, SLOT(closeRekall()));
    trayIcon->setContextMenu(trayMenu);
    trayIcon->show();
    trayIconToOnPrivate();

    QSettings settings;
    quint16 projectCount = settings.beginReadArray("projects");
    /*
    if(projectCount == 0) {
        addProject(new Project("walden",     "Walden", true, QFileInfo("/Users/guillaume/Documents/Rekall/Walden"), this));
        addProject(new Project("joris-test", "Joris", false, QFileInfo("/Users/guillaume/Documents/Rekall/joris-test"), this));
    }
    */
    connect(Global::udp, SIGNAL(outgoingMessage(QString,quint16,QString,QList<QVariant>)), SLOT(incomingMessage(QString,quint16,QString,QList<QVariant>)));

    for(quint16 projectIndex = 0 ; projectIndex < projectCount ; projectIndex++) {
        settings.setArrayIndex(projectIndex);
        Project *project = new Project(settings.value("name").toString(), settings.value("friendlyName").toString(), true, QFileInfo(settings.value("path").toString()), this);
        addProject(project);
    }
    settings.endArray();

    //foreach(ProjectInterface *project, Global::projects)
    //    project->load();


    //Global settings creation if needed
    globalSettings = new QSettings();
    if((globalSettings) && ((!globalSettings->childKeys().contains("id")) || (arguments.contains("-newuser")))) {
        firstTimeOpened = true;
        qsrand(QDateTime::currentDateTime().toTime_t());
        updateAnonymousId = QString::number(qrand());
        globalSettings->setValue("id", updateAnonymousId);
        globalSettings->setValue("version", "");
        globalSettings->setValue("updatePeriod", 1);
        globalSettings->setValue("lastUpdate",   QDateTime(QDate(2000, 01, 01)));
    }

    //Update management
    if((globalSettings) && (globalSettings->childKeys().contains("id"))) {
        QDateTime updateLastDate  = globalSettings->value("lastUpdate")  .toDateTime();
        quint16   updatePeriod    = globalSettings->value("updatePeriod").toUInt();
        updateAnonymousId         = globalSettings->value("id")          .toString();
        QString applicationVersionSettings = globalSettings->value("version").toString();
        if(applicationVersionSettings != QCoreApplication::applicationVersion()) {
            globalSettings->setValue("version", QCoreApplication::applicationVersion());
            firstTimeOpened = true;
        }

        qDebug("Last update : %s (should update each %d day(s))", qPrintable(updateLastDate.toString("dd/MM/yyyy hh:mm:ss")), updatePeriod);
        if((updateLastDate.daysTo(QDateTime::currentDateTime()) >= updatePeriod) || (forceUpdate))
            checkForUpdates();
    }

    askScreenshot = askAddProject = 0;
    startTimer(50);
    if(firstTimeOpened)
        showMessage(tr("Welcome!\nRekall is now running!"));
    else
        showMessage(tr("Rekall is now running!"));

    if(!arguments.contains("-silent"))
        openWebPage();

    /*
    QWebView *webView = new QWebView();
    webView->load(QUrl("http://127.0.0.1:23411"));
    webView->show();
    */
}