Ejemplo n.º 1
0
void Action::actionFinished()
{
    if ( !m_outputFormat.isEmpty() ) {
        if ( !m_outputData.isNull() ) {
            if (m_index.isValid())
                emit newItem(m_outputData, m_outputFormat, m_index);
            else
                emit newItem(m_outputData, m_outputFormat, m_tab);
            m_outputData = QByteArray();
        }
    } else if ( !m_lastOutput.isNull() ) {
        actionOutput();
        if ( !m_lastOutput.isNull() ) {
            QStringList items;
            items.append(m_lastOutput);
            if (m_index.isValid())
                emit newItems(items, m_index);
            else
                emit newItems(items, m_tab);
            m_lastOutput = QString();
        }
    }

    emit actionFinished(this);
}
Ejemplo n.º 2
0
void ActionHandler::action(Action *action)
{
    action->setParent(this);

    m_lastAction = action;

    connect( action, SIGNAL(newItems(QStringList, QString)),
             this, SLOT(addItems(QStringList, QString)) );
    connect( action, SIGNAL(newItems(QStringList, QModelIndex)),
             this, SLOT(addItems(QStringList, QModelIndex)) );
    connect( action, SIGNAL(newItem(QByteArray, QString, QString)),
             this, SLOT(addItem(QByteArray, QString, QString)) );
    connect( action, SIGNAL(newItem(QByteArray, QString, QModelIndex)),
             this, SLOT(addItem(QByteArray, QString, QModelIndex)) );
    connect( action, SIGNAL(actionStarted(Action*)),
             this, SLOT(actionStarted(Action*)) );
    connect( action, SIGNAL(actionFinished(Action*)),
             this, SLOT(closeAction(Action*)) );
    connect( action, SIGNAL(actionError(Action*)),
             this, SLOT(closeAction(Action*)) );

    ++m_actionCounter;

    if ( !action->outputFormat().isEmpty() && action->outputTab().isEmpty() )
        action->setOutputTab(m_currentTabName);

    m_activeActionDialog->actionAboutToStart(action);
    COPYQ_LOG( QString("Executing: %1").arg(action->command()) );
    action->start();
}
Ejemplo n.º 3
0
void ActionHandler::action(Action *action, const QVariantMap &data)
{
    action->setParent(this);

    m_lastAction = action;

    connect( action, SIGNAL(newItems(QStringList, QString)),
             this, SLOT(addItems(QStringList, QString)) );
    connect( action, SIGNAL(newItems(QStringList, QModelIndex)),
             this, SLOT(addItems(QStringList, QModelIndex)) );
    connect( action, SIGNAL(newItem(QByteArray, QString, QString)),
             this, SLOT(addItem(QByteArray, QString, QString)) );
    connect( action, SIGNAL(newItem(QByteArray, QString, QModelIndex)),
             this, SLOT(addItem(QByteArray, QString, QModelIndex)) );
    connect( action, SIGNAL(actionStarted(Action*)),
             this, SLOT(actionStarted(Action*)) );
    connect( action, SIGNAL(actionFinished(Action*)),
             this, SLOT(closeAction(Action*)) );
    connect( action, SIGNAL(actionError(Action*)),
             this, SLOT(closeAction(Action*)) );

    // Set data for action (can be accessed using 'data' command).
    const QByteArray actionId = QByteArray::number(++m_lastActionId);
    qputenv("COPYQ_ACTION_ID", actionId);
    m_actionData.insert(actionId, data);
    action->setProperty("COPYQ_ACTION_ID", actionId);

    m_activeActionDialog->actionAboutToStart(action);
    log( tr("Executing: %1").arg(action->command()) );
    action->start();
}
Ejemplo n.º 4
0
void KDirModelV2Private::setUrl(const KUrl& url)
{
    m_url = url;
    m_lister = new KDirLister();

    connect(m_lister, SIGNAL(newItems(KFileItemList)), this, SLOT(newItemsFromLister(KFileItemList)));
    connect(m_lister, SIGNAL(completed()), this, SLOT(listerCompleted()));

    m_lister->openUrl(m_url);
}
Ejemplo n.º 5
0
void Action::actionOutput()
{
    if (!m_outputFormat.isEmpty()) {
        m_outputData.append( readAll() );
        return;
    }

    m_lastOutput.append( QString::fromLocal8Bit(readAll()) );
    if ( m_lastOutput.isEmpty() || m_sep.isEmpty() )
        return;

    // Split to items.
    QStringList items;
    items = m_lastOutput.split(m_sep);
    m_lastOutput = items.takeLast();
    if (m_index.isValid())
        emit newItems(items, m_index);
    else
        emit newItems(items, m_tab);
}
Ejemplo n.º 6
0
void ArchLinuxNewsReader::parseXml()
{
    QMap<QString, QVariant> oldEntries;
    bool newStuff = false;

    qDebug() << "XML Parsing Started";

    QSettings *settings = new QSettings();

    oldEntries = settings->value("newsreader/oldnewsitem").toMap();

    while (!xml.atEnd()) {
        xml.readNext();
        if (xml.isStartElement()) {
            if (xml.name() == "item")
                linkString = xml.attributes().value("rss:about").toString();

            currentTag = xml.name().toString();
        } else if (xml.isEndElement()) {
            if (xml.name() == "item") {
                QString realTitle = QString(titleString);
                if (realTitle.startsWith("Recent News Updates"))
                    realTitle.remove(0, 19);

                realTitle = realTitle.trimmed();

                if (!oldEntries.contains(realTitle)) {
                    ArchLinuxNews::ArchNews tmp;
                    tmp.link = QString(linkString);
                    tmp.title = QString(realTitle);
                    tmp.nNew = true;
                    tmp.nRead = false;

                    oldEntries[tmp.title] = false;

                    settings->setValue("newsreader/oldnewsitem", oldEntries);

                    entries.append(tmp);

                    newStuff = true;
                } else {
                    ArchLinuxNews::ArchNews tmp;
                    tmp.link = QString(linkString);
                    tmp.title = QString(realTitle);
                    tmp.nNew = false;
                    tmp.nRead = oldEntries[realTitle].toBool();

                    entries.append(tmp);
                }

                titleString.clear();
                linkString.clear();
            }

        } else if (xml.isCharacters() && !xml.isWhitespace()) {
            if (currentTag == "title")
                titleString += xml.text().toString();
            else if (currentTag == "link")
                linkString += xml.text().toString();
        }
    }

    if (xml.error() && xml.error() != QXmlStreamReader::PrematureEndOfDocumentError) {
        qWarning() << "XML ERROR:" << xml.lineNumber() << ": " << xml.errorString();
        http->abort();
    }

    settings->deleteLater();

    if (newStuff)
        emit newItems();
}