/* * Copyright 2014-2018 Markus Prasser, Tobias Weiss * * This file is part of Labcontrol. * * Labcontrol is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Labcontrol 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Labcontrol. If not, see . */ #ifndef SETTINGS_H #define SETTINGS_H #include #include #include #include "client.h" namespace lc { class Settings : public QObject { Q_OBJECT public: Settings() = delete; explicit Settings(const QSettings &argSettings, QObject *argParent = nullptr); Settings(const Settings &argSettings) = delete; Settings &operator=(const Settings &argSettings) = delete; Settings(Settings &&argSettings ) = delete; Settings &operator=(Settings &&argSettings) = delete; ~Settings(); int GetChosenZTreePort() const { return chosenzTreePort; } QVector< Client * > &GetClients() { return clients; } QString GetLocalzLeafName() const; void SetChosenZTreePort(const int argPort); void SetLocalzLeafName(const QString &argLocalzLeafName); const int defaultReceiptIndex = 0; const QString browserCmd; const QString clientBrowserCmd; const QString dvipsCmd; const QString fileMngr; const QString killallCmd; const QString latexCmd; const QString lcDataDir; const QString localUserName; QString localzLeafSize; void SetLocalzLeafSize(QString arg); QString GetLocalzLeafSize() const { return localzLeafSize; } const QString lprCmd; const QString netstatCmd; const QString netwBrdAddr; const QString orseeUrl; const QString pingCmd; const QString postscriptViewer; const QString ps2pdfCmd; const QString pkeyPathRoot; const QString pkeyPathUser; const QString rmCmd; const QString scpCmd; const QString serverIP; const QString sshCmd; const QString tasksetCmd; const QString termEmulCmd; const QString userNameOnClients; const QString vncViewer; const QString wakeonlanCmd; const QString webcamDisplayCmd; const QStringList webcams; const QStringList webcams_names; const QString wineCmd; const QString wmctrlCmd; const QString xsetCmd; const QString zTreeInstDir; const QString restartCrashedSessionScript; const QStringList adminUsers; const QStringList installedLaTeXHeaders; const QStringList installedZTreeVersions; const quint16 clientHelpNotificationServerPort = 0; private: static bool CheckPathAndComplain(const QString &argPath, const QString &argVariableName, const QString &argMessage); static QVector CreateClients(const QSettings &argSettings, const QString &argPingCmd); static QMap CreateClIPsToClMap(const QVector &argClients); QStringList DetectInstalledLaTeXHeaders() const; QStringList DetectInstalledzTreeVersions() const; static QStringList GetAdminUsers(const QSettings &argSettings); static quint16 GetClientHelpNotificationServerPort(const QSettings &argSettings); static int GetDefaultReceiptIndex(const QSettings &argSettings); static int GetInitialPort(const QSettings &argSettings); static QString GetLocalUserName(); static QString ReadSettingsItem(const QString &argVariableName, const QString &argMessage, const QSettings &argSettings, bool argItemIsFile); int chosenzTreePort = 0; QVector< Client * > clients; QString localzLeafName; public: const QMap clIPsToClMap; }; } // namespace lc inline QString lc::Settings::GetLocalzLeafName() const { return localzLeafName; } inline void lc::Settings::SetLocalzLeafName(const QString &argLocalzLeafName) { localzLeafName = argLocalzLeafName; } #endif // SETTINGS_H