diff --git a/src/tools/balooctl/monitorcommand.cpp b/src/tools/balooctl/monitorcommand.cpp index 957b52a9..e7751ca5 100644 --- a/src/tools/balooctl/monitorcommand.cpp +++ b/src/tools/balooctl/monitorcommand.cpp @@ -1,98 +1,113 @@ /* * This file is part of the KDE Baloo Project * Copyright (C) 2015 Pinak Ahuja * Copyright (C) 2015 Vishesh Handa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) version 3, or any * later version accepted by the membership of KDE e.V. (or its * successor approved by the membership of KDE e.V.), which shall * act as a proxy defined in Section 6 of version 3 of the license. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . * */ #include "monitorcommand.h" +#include "indexerstate.h" #include #include using namespace Baloo; MonitorCommand::MonitorCommand(QObject *parent) : QObject(parent) , m_out(stdout) , m_err(stderr) - , m_dbusInterface(nullptr) + , m_indexerDBusInterface(nullptr) + , m_schedulerDBusInterface(nullptr) , m_dbusServiceWatcher(nullptr) { m_dbusServiceWatcher = new QDBusServiceWatcher( QStringLiteral("org.kde.baloo"), QDBusConnection::sessionBus() ); connect(m_dbusServiceWatcher, &QDBusServiceWatcher::serviceRegistered, this, &MonitorCommand::balooIsAvailable); connect(m_dbusServiceWatcher, &QDBusServiceWatcher::serviceUnregistered, this, &MonitorCommand::balooIsNotAvailable); - m_dbusInterface = new org::kde::baloo::fileindexer(QStringLiteral("org.kde.baloo"), + m_indexerDBusInterface = new org::kde::baloo::fileindexer(QStringLiteral("org.kde.baloo"), QStringLiteral("/fileindexer"), QDBusConnection::sessionBus(), this ); - connect(m_dbusInterface, &org::kde::baloo::fileindexer::startedIndexingFile, + connect(m_indexerDBusInterface, &org::kde::baloo::fileindexer::startedIndexingFile, this, &MonitorCommand::startedIndexingFile); - connect(m_dbusInterface, &org::kde::baloo::fileindexer::finishedIndexingFile, + connect(m_indexerDBusInterface, &org::kde::baloo::fileindexer::finishedIndexingFile, this, &MonitorCommand::finishedIndexingFile); - if (m_dbusInterface->isValid()) { + m_schedulerDBusInterface = new org::kde::baloo::scheduler(QStringLiteral("org.kde.baloo"), + QStringLiteral("/scheduler"), + QDBusConnection::sessionBus(), + this + ); + connect(m_schedulerDBusInterface, &org::kde::baloo::scheduler::stateChanged, + this, &MonitorCommand::stateChanged); + + if (m_indexerDBusInterface->isValid() && m_schedulerDBusInterface->isValid()) { m_err << i18n("Press ctrl+c to stop monitoring") << endl; balooIsAvailable(); } else { balooIsNotAvailable(); } m_dbusServiceWatcher->setWatchMode(QDBusServiceWatcher::WatchForOwnerChange); } void MonitorCommand::balooIsNotAvailable() { - m_dbusInterface->unregisterMonitor(); + m_indexerDBusInterface->unregisterMonitor(); m_err << i18n("Waiting for file indexer to start") << endl; m_err << i18n("Press ctrl+c to stop monitoring") << endl; } void MonitorCommand::balooIsAvailable() { - m_dbusInterface->registerMonitor(); + m_indexerDBusInterface->registerMonitor(); m_err << i18n("File indexer is running") << endl; } int MonitorCommand::exec(const QCommandLineParser& parser) { Q_UNUSED(parser); return QCoreApplication::instance()->exec(); } void MonitorCommand::startedIndexingFile(const QString& filePath) { m_currentFile = filePath; m_out << i18nc("currently indexed file", "Indexing: %1", filePath) << flush; } void MonitorCommand::finishedIndexingFile(const QString& filePath) { Q_UNUSED(filePath); m_currentFile.clear(); m_out << i18n(": Ok") << endl; } + +void MonitorCommand::stateChanged(int state) +{ + m_out << stateString(state) << endl; +} diff --git a/src/tools/balooctl/monitorcommand.h b/src/tools/balooctl/monitorcommand.h index 8d177783..ddc0d97f 100644 --- a/src/tools/balooctl/monitorcommand.h +++ b/src/tools/balooctl/monitorcommand.h @@ -1,65 +1,68 @@ /* * This file is part of the KDE Baloo Project * Copyright (C) 2015 Pinak Ahuja * Copyright (C) 2015 Vishesh Handa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) version 3, or any * later version accepted by the membership of KDE e.V. (or its * successor approved by the membership of KDE e.V.), which shall * act as a proxy defined in Section 6 of version 3 of the license. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . * */ #ifndef MONITOR_H #define MONITOR_H #include "command.h" #include "fileindexerinterface.h" +#include "schedulerinterface.h" #include #include #include namespace Baloo { class MonitorCommand : public QObject, public Command { Q_OBJECT public: explicit MonitorCommand(QObject* parent = nullptr); QString command() override { return QStringLiteral("monitor"); } QString description() override { return i18n("CLI interface for monitoring Baloo"); } int exec(const QCommandLineParser& parser) override; private Q_SLOTS: void startedIndexingFile(const QString& filePath); void finishedIndexingFile(const QString& filePath); + void stateChanged(int state); void balooIsAvailable(); void balooIsNotAvailable(); private: QTextStream m_out; QTextStream m_err; - org::kde::baloo::fileindexer* m_dbusInterface; + org::kde::baloo::fileindexer* m_indexerDBusInterface; + org::kde::baloo::scheduler* m_schedulerDBusInterface; QString m_currentFile; QDBusServiceWatcher* m_dbusServiceWatcher; }; } #endif // MONITOR_H