1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
#ifndef SYNCTHINGFILEITEMACTIONSTATICDATA_H
#define SYNCTHINGFILEITEMACTIONSTATICDATA_H
#include <syncthingconnector/syncthingconnection.h>
QT_FORWARD_DECLARE_CLASS(QPalette)
/*!
* \brief The SyncthingFileItemActionStaticData class holds objects required during the whole application's live time.
*
* For instance the connection to Syncthing is kept alive until Dolphin is closed to prevent re-establishing it on each and
* every time the context menu is shown.
*/
class SyncthingFileItemActionStaticData : public QObject {
Q_OBJECT
Q_PROPERTY(QString configPath READ configPath)
Q_PROPERTY(QString currentError READ currentError WRITE setCurrentError NOTIFY currentErrorChanged RESET clearCurrentError)
Q_PROPERTY(bool hasError READ hasError NOTIFY hasErrorChanged)
Q_PROPERTY(bool initialized READ isInitialized)
public:
explicit SyncthingFileItemActionStaticData();
Data::SyncthingConnection &connection();
const Data::SyncthingConnection &connection() const;
const QString &configPath() const;
const QString ¤tError() const;
bool hasError() const;
bool isInitialized() const;
public Q_SLOTS:
void initialize();
bool applySyncthingConfiguration(const QString &syncthingConfigFilePath, const QString &syncthingApiKey, bool skipSavingConfig);
void applyBrightCustomColorsSetting(const QPalette &palette);
void logConnectionStatus();
void logConnectionError(const QString &errorMessage, Data::SyncthingErrorCategory errorCategory);
void rescanDir(const QString &dirId, const QString &relpath = QString());
static void showAboutDialog();
void selectSyncthingConfig();
void setCurrentError(const QString ¤tError);
void clearCurrentError();
Q_SIGNALS:
void currentErrorChanged(const QString &error);
void hasErrorChanged(bool hasError);
private:
void appendNoteToError(QString &errorMessage, const QString &newSyncthingConfigFilePath) const;
Data::SyncthingConnection m_connection;
QString m_configFilePath;
QString m_currentError;
bool m_initialized;
};
inline Data::SyncthingConnection &SyncthingFileItemActionStaticData::connection()
{
return m_connection;
}
inline const Data::SyncthingConnection &SyncthingFileItemActionStaticData::connection() const
{
return m_connection;
}
inline const QString &SyncthingFileItemActionStaticData::configPath() const
{
return m_configFilePath;
}
inline const QString &SyncthingFileItemActionStaticData::currentError() const
{
return m_currentError;
}
inline bool SyncthingFileItemActionStaticData::hasError() const
{
return !currentError().isEmpty();
}
inline bool SyncthingFileItemActionStaticData::isInitialized() const
{
return m_initialized;
}
inline void SyncthingFileItemActionStaticData::clearCurrentError()
{
m_currentError.clear();
}
#endif // SYNCTHINGFILEITEMACTIONSTATICDATA_H
|