syncthingtray/widgets/settings/settingsdialog.h

106 lines
3.3 KiB
C
Raw Normal View History

2016-08-25 00:45:32 +02:00
#ifndef SETTINGS_DIALOG_H
#define SETTINGS_DIALOG_H
#include "./settings.h"
2016-09-03 20:14:52 +02:00
2016-08-25 00:45:32 +02:00
#include <qtutilities/settingsdialog/settingsdialog.h>
#include <qtutilities/settingsdialog/optionpage.h>
#include <qtutilities/settingsdialog/qtsettings.h>
#include <QWidget>
2016-09-03 19:39:43 +02:00
#include <QProcess>
2016-08-25 00:45:32 +02:00
namespace ChronoUtilities {
class DateTime;
}
2016-08-25 00:45:32 +02:00
namespace Data {
class SyncthingConnection;
class SyncthingService;
class SyncthingProcess;
2016-08-25 00:45:32 +02:00
}
namespace QtGui {
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_CTOR(ConnectionOptionPage)
public:
ConnectionOptionPage(Data::SyncthingConnection *connection, QWidget *parentWidget = nullptr);
private:
DECLARE_SETUP_WIDGETS
2016-09-01 16:34:30 +02:00
void insertFromConfigFile();
2016-08-25 00:45:32 +02:00
void updateConnectionStatus();
void applyAndReconnect();
2016-09-03 20:14:52 +02:00
bool showConnectionSettings(int index);
bool cacheCurrentSettings(bool applying);
void saveCurrentConnectionName(const QString &name);
void addConnectionSettings();
void removeConnectionSettings();
2016-08-25 00:45:32 +02:00
Data::SyncthingConnection *m_connection;
Data::SyncthingConnectionSettings m_primarySettings;
std::vector<Data::SyncthingConnectionSettings> m_secondarySettings;
2016-09-03 20:14:52 +02:00
int m_currentIndex;
2016-08-25 00:45:32 +02:00
END_DECLARE_OPTION_PAGE
DECLARE_UI_FILE_BASED_OPTION_PAGE(NotificationsOptionPage)
2016-08-29 20:51:30 +02:00
DECLARE_UI_FILE_BASED_OPTION_PAGE(AppearanceOptionPage)
2016-09-03 19:39:43 +02:00
DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_SETUP(AutostartOptionPage)
2016-08-25 00:45:32 +02:00
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_CTOR(LauncherOptionPage)
public:
LauncherOptionPage(QWidget *parentWidget = nullptr);
LauncherOptionPage(const QString &tool, QWidget *parentWidget = nullptr);
2016-09-03 19:39:43 +02:00
private:
DECLARE_SETUP_WIDGETS
void handleSyncthingReadyRead();
void handleSyncthingExited(int exitCode, QProcess::ExitStatus exitStatus);
void launch();
void stop();
Data::SyncthingProcess &m_process;
2016-09-03 19:39:43 +02:00
QList<QMetaObject::Connection> m_connections;
bool m_kill;
QString m_tool;
2016-09-03 19:39:43 +02:00
END_DECLARE_OPTION_PAGE
#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(SystemdOptionPage)
private:
DECLARE_SETUP_WIDGETS
void handleDescriptionChanged(const QString &description);
void handleStatusChanged(const QString &activeState, const QString &subState, ChronoUtilities::DateTime activeSince);
void handleEnabledChanged(const QString &unitFileState);
Data::SyncthingService &m_service;
END_DECLARE_OPTION_PAGE
#endif
#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW
2016-08-25 00:45:32 +02:00
DECLARE_UI_FILE_BASED_OPTION_PAGE(WebViewOptionPage)
#else
DECLARE_OPTION_PAGE(WebViewOptionPage)
#endif
class SYNCTHINGWIDGETS_EXPORT SettingsDialog : public Dialogs::SettingsDialog
2016-08-25 00:45:32 +02:00
{
Q_OBJECT
public:
explicit SettingsDialog(Data::SyncthingConnection *connection, QWidget *parent = nullptr);
~SettingsDialog();
};
}
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, ConnectionOptionPage)
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, NotificationsOptionPage)
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, AppearanceOptionPage)
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, AutostartOptionPage)
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, LauncherOptionPage)
#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, SystemdOptionPage)
#endif
#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, WebViewOptionPage)
#endif
2016-08-25 00:45:32 +02:00
#endif // SETTINGS_DIALOG_H