running property

true when at least some runner is not done yet
This commit is contained in:
Marco Martin 2012-05-04 13:47:41 +02:00
parent 204946e451
commit 4c79f05a60
2 changed files with 27 additions and 1 deletions

View File

@ -30,7 +30,8 @@
RunnerModel::RunnerModel(QObject *parent)
: QAbstractListModel(parent),
m_manager(0),
m_startQueryTimer(new QTimer(this))
m_startQueryTimer(new QTimer(this)),
m_running(false)
{
QHash<int, QByteArray> roles;
roles.insert(Qt::DisplayRole, "label");
@ -86,6 +87,11 @@ void RunnerModel::run(int index)
}
}
bool RunnerModel::isRunning() const
{
return m_running;
}
QVariant RunnerModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid() || index.parent().isValid() ||
@ -153,6 +159,8 @@ void RunnerModel::startQuery()
//kDebug() << "running query" << query;
m_manager->launchQuery(m_pendingQuery);
emit queryChanged();
m_running = true;
emit runningChanged(true);
// }
}
@ -162,6 +170,8 @@ void RunnerModel::createManager()
m_manager = new Plasma::RunnerManager(this);
connect(m_manager, SIGNAL(matchesChanged(QList<Plasma::QueryMatch>)),
this, SLOT(matchesChanged(QList<Plasma::QueryMatch>)));
connect(m_manager, SIGNAL(queryFinished()),
this, SLOT(queryHasFinished()));
if (!m_pendingRunnersList.isEmpty()) {
m_manager->setAllowedRunners(m_pendingRunnersList);
@ -181,5 +191,11 @@ void RunnerModel::matchesChanged(const QList<Plasma::QueryMatch> &matches)
emit countChanged();
}
void RunnerModel::queryHasFinished()
{
m_running = false;
emit runningChanged(false);
}
#include "runnermodel.moc"

View File

@ -55,6 +55,11 @@ class RunnerModel : public QAbstractListModel
*/
Q_PROPERTY(int count READ count NOTIFY countChanged)
/**
* @property bool running: true when queries are in execution
*/
Q_PROPERTY(bool running READ isRunning NOTIFY runningChanged)
public:
/**
* @enum Roles of the model, they will be accessible from delegates
@ -80,6 +85,8 @@ public:
Q_SCRIPTABLE void run(int row);
bool isRunning() const;
int rowCount(const QModelIndex&) const;
int count() const;
QVariant data(const QModelIndex&, int) const;
@ -91,6 +98,7 @@ Q_SIGNALS:
void queryChanged();
void countChanged();
void runnersChanged();
void runningChanged(bool running);
private Q_SLOTS:
void startQuery();
@ -100,6 +108,7 @@ private:
private Q_SLOTS:
void matchesChanged(const QList<Plasma::QueryMatch> &matches);
void queryHasFinished();
private:
Plasma::RunnerManager *m_manager;
@ -107,6 +116,7 @@ private:
QStringList m_pendingRunnersList;
QString m_pendingQuery;
QTimer *m_startQueryTimer;
bool m_running;
};
#endif