You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Labcontrol/src/Lib/settings.h

130 lines
4.4 KiB
C++

/*
* Copyright 2014-2016 Markus Prasser
*
* 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 <http://www.gnu.org/licenses/>.
*/
#ifndef SETTINGS_H
#define SETTINGS_H
#include <QDebug>
#include <QObject>
#include <QSettings>
#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 clientChromiumCmd;
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< Client* > CreateClients( const QSettings &argSettings,
const QString &argPingCmd );
static QMap< QString, Client* > CreateClIPsToClMap( const QVector< Client* > &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< QString, Client* > clIPsToClMap;
};
}
inline QString lc::Settings::GetLocalzLeafName() const {
return localzLeafName;
}
inline void lc::Settings::SetLocalzLeafName( const QString &argLocalzLeafName ) {
localzLeafName = argLocalzLeafName;
}
#endif // SETTINGS_H