コード例 #1
0
ファイル: account.cpp プロジェクト: muromec/qtopia-ezx
void Mailbox::readSettings(QSettings *config)
{
    _name = config->value("name").toString();
    oldName = config->value("oldname").toString();
    delimiter = config->value("delimiter").toString();
    uid = config->value("uid").toString();
    exists = config->value("exists", 0).toInt();
    byUser = config->value("byuser").toBool();
    deleted = config->value("deleted").toBool();

    QString delItems(config->value("queuedelete").toString().trimmed());
    if (!delItems.isEmpty())
        delList = delItems.split( "," );
    
    _localCopy = config->value("localcopy", false ).toBool();
    _syncSetting = config->value("syncsettings", Sync_AllMessages).toInt();

    serverUidList.clear();
    QString str;
    for (int x = 1; x < (exists + 1); x++) {
        int theUid = config->value( QString::number(x) ).toInt();
        str = QString::number(theUid);
        if ( !str.isEmpty() )
            serverUidList.append( str );
    }

    search->setFromFolder( pathName() );

    if(_account && _account->accountType() == QMailAccount::IMAP)
        _displayName = decodeModUTF7(baseName());
    else
        _displayName = _name;
}
コード例 #2
0
void QMplayer::scan()
{
    showScreen(QMplayer::ScreenScan);
    delItems(lw);
    abort = false;

    progress->setMinimum(0);
    progress->setMaximum(0x7fffffff);

scan_files:

#ifdef Q_WS_WIN
    scanDir("c:\\", 0, maxScanLevel, 0, 0x1fffffff, false);
#else
    // For the first time scan /home/root/Documents and dont scan other dirs if
    // something found there.
    if(maxScanLevel > 0 ||
       !scanDir(QDir::homePath() + "/" + "Documents", 0, 2, 0, 0x1fffffff, true) ||
       !scanDir("/media/card/Documents", 0, 2, 0, 0x2fffffff, true))
    {
        scanDir("/", 0, 0, 0, 0x1fffffff, true);
        scanDir("/mnt", 0, maxScanLevel + 1, 0, 0x2fffffff, false);
        scanDir("/media", 0, maxScanLevel + 1, 0, 0x3fffffff, false);
        scanDir(QDir::homePath(), 0, maxScanLevel, 0, 0x4fffffff, true);
        scanDir(QDir::homePath() + "/" + "Documents", 0, 2, 0, 0x5fffffff, true);
        scanDir("/media/card/Documents", 0, 2, 0, 0x5fffffff, true);
        scanDir("/root", 0, maxScanLevel, 0, 0x6fffffff, true);
    }
#endif

    maxScanLevel++;
    scanItem->setText(tr("Scan more"));

    if(lw->count() <= NUM_MENU_ITEMS && !abort &&
       QMessageBox::question(this, "qmplayer", tr("No media files found, scan more?"),
                             QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
    {
        goto scan_files;
    }

    showScreen(QMplayer::ScreenInit);
}
コード例 #3
0
bool QMplayer::runClient()
{
    if(tcpServer != NULL)
    {
        QMessageBox::critical(this, tr("qmplayer"),
                              tr("Point your web browser to http://localhost:7654 (replace localhost with this computer IP address)"));
        return true;
    }

    if(screen != QMplayer::ScreenConnect)
    {
        lineEdit->setText("192.168.0.200:7654");
        showScreen(QMplayer::ScreenConnect);
        return true;
    }
    showScreen(QMplayer::ScreenInit);

    QString host = lineEdit->text();
    int port = 80;
    int colonIndex = host.indexOf(':');
    if(colonIndex > 0)
    {
        port = host.right(host.length() - colonIndex - 1).toInt(0, 10);
        host = host.remove(colonIndex, host.length() - colonIndex);
    }

    QTcpSocket sock(this);
    sock.connectToHost(host, port);
    if(!sock.waitForConnected(5000))
    {
        QMessageBox::critical(this, tr("qmplayer"), sock.errorString());
        return true;
    }

    QByteArray req("GET / HTTP/1.1\r\nHost: ");
    req.append(host);
    req.append(':');
    req.append(QByteArray::number(port));
    req.append("\r\n");

    sock.write(req);
    sock.flush();
    sock.waitForBytesWritten();

    QByteArray res;
    while(sock.waitForReadyRead(5000))
    {
        res += sock.readAll();
    }
    sock.close();

    if(res.length() == 0)
    {
        QMessageBox::critical(this, tr("qmplayer"),
                              tr("No response from ") + host);
        return true;
    }

    delItems(lw);

    QTextStream buf(&res);
    buf.setCodec(QTextCodec::codecForName("utf8"));
    QString line;
    QString dir;

    for(;;)
    {
        line = buf.readLine();
        if(line.isNull())
        {
            break;
        }
        if(line.indexOf("<a href=\"http://") == 0)
        {
            int urlEnd = line.indexOf('"', 17);
            if(urlEnd < 0)
            {
                continue;
            }
            QString url = line.mid(9, urlEnd - 9);
            int start = url.lastIndexOf('/');
            if(start < 0)
            {
                continue;
            }
            for(int i = start - 1; i >= 0; i--)
            {
                if(dir.length() <= i || dir.at(i) != url.at(i))
                {
                    dir = url.left(start);
                    lw->addItem(getDirItem(lw, dir));
                    break;
                }
            }
            int fileStart = line.indexOf('>', 17) + 1;
            int fileEnd = line.indexOf('<', 17);
            if(fileStart <= 17 || fileEnd <= 17 || fileEnd < fileStart)
            {
                continue;
            }
            QString file = line.mid(fileStart, fileEnd - fileStart);
            lw->addItem(file);
        }
    }

    return true;
}