syncthingtray/cli/application.h

77 lines
2.6 KiB
C
Raw Normal View History

2016-10-02 21:59:28 +02:00
#ifndef CLI_APPLICATION_H
#define CLI_APPLICATION_H
#include "./args.h"
#include "../connector/syncthingconnection.h"
#include "../connector/syncthingconnectionsettings.h"
#include <QObject>
#include <tuple>
2016-10-02 21:59:28 +02:00
namespace Cli {
2017-05-01 03:34:43 +02:00
enum class OperationType { Status, PauseResume };
2017-05-01 03:34:43 +02:00
class Application : public QObject {
2016-10-02 21:59:28 +02:00
Q_OBJECT
public:
Application();
~Application();
int exec(int argc, const char *const *argv);
private slots:
void handleStatusChanged(Data::SyncthingStatus newStatus);
void handleResponse();
void handleError(
const QString &message, Data::SyncthingErrorCategory category, int networkError, const QNetworkRequest &request, const QByteArray &response);
void findRelevantDirsAndDevs();
void findRelevantDirsAndDevs(OperationType operationType);
2017-04-06 00:08:24 +02:00
bool findPwd();
2016-10-02 21:59:28 +02:00
private:
int loadConfig();
2016-10-02 21:59:28 +02:00
void requestLog(const ArgumentOccurrence &);
2016-10-02 22:16:43 +02:00
void requestShutdown(const ArgumentOccurrence &);
2016-10-02 21:59:28 +02:00
void requestRestart(const ArgumentOccurrence &);
void requestRescan(const ArgumentOccurrence &occurrence);
void requestRescanAll(const ArgumentOccurrence &);
void requestPauseResume(bool pause);
void requestPauseAllDevs(const ArgumentOccurrence &);
void requestPauseAllDirs(const ArgumentOccurrence &);
void requestResumeAllDevs(const ArgumentOccurrence &);
void requestResumeAllDirs(const ArgumentOccurrence &);
static void printDir(const Data::SyncthingDir *dir);
static void printDev(const Data::SyncthingDev *dev);
2016-10-02 21:59:28 +02:00
void printStatus(const ArgumentOccurrence &);
static void printLog(const std::vector<Data::SyncthingLogEntry> &logEntries);
void initWaitForIdle(const ArgumentOccurrence &);
void waitForIdle();
2017-04-06 00:08:24 +02:00
void checkPwdOperationPresent(const ArgumentOccurrence &occurrence);
void printPwdStatus(const ArgumentOccurrence &occurrence);
void requestRescanPwd(const ArgumentOccurrence &occurrence);
void requestPausePwd(const ArgumentOccurrence &occurrence);
void requestResumePwd(const ArgumentOccurrence &occurrence);
void initDirCompletion(Argument &arg, const ArgumentOccurrence &);
void initDevCompletion(Argument &arg, const ArgumentOccurrence &);
2016-10-02 21:59:28 +02:00
Args m_args;
Data::SyncthingConnectionSettings m_settings;
Data::SyncthingConnection m_connection;
size_t m_expectedResponse;
bool m_preventDisconnect;
bool m_callbacksInvoked;
std::vector<const Data::SyncthingDir *> m_relevantDirs;
std::vector<const Data::SyncthingDev *> m_relevantDevs;
2017-04-06 00:08:24 +02:00
const Data::SyncthingDir *m_pwd;
QString m_relativePath;
bool m_argsRead;
2016-10-02 21:59:28 +02:00
};
} // namespace Cli
#endif // CLI_APPLICATION_H