/* GNU General Public License version 3 notice Copyright (C) 2012 Mihawk . All rights reserved. This program 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. This program 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 this program. If not, see < http://www.gnu.org/licenses/ >. */ #ifndef SETTINGS_H #define SETTINGS_H #include #include class QSettings; /** This class provides direct settings file access for the whole application. @author Mihawk @file Settings.h */ class Settings { public: // Server information struct // Struct to save server information from the config file struct Server { QString address; quint16 port; bool supportsSendPrivate; }; typedef QList ServerList; /** The class single instance. @return The settings class */ static Settings* globalInstance(); /** Changes the config file used by us. @param fileName The filename to be used @return True if the file was loaded successfully, false otherwise */ bool changeConfigFile(const QString& fileName); /** Gets and sets the serverlist */ ServerList serverList(); void setServerList(ServerList& list); /** Config file direct parameter accessors */ QString quakeFolder() const; QString botName() const; int botPing() const; int botTopColor() const; int botBottomColor() const; bool botSpectator() const; int floodProtTime() const; int qwFloodProtTime() const; int spamFloodProtTime() const; unsigned int queryInterval() const; int timeToSayHiAfterConnected() const; int timeToWaitForCountReply() const; bool developerMode() const; QString sshUserName() const; QString sshHostName() const; int refreshHostNamesHour() const; /** Save current settings to the file. */ void save(); private: static Settings* ourInstance; // Myself static QSettings* ourSettings; // The QSettings object // Disable direct object creation, copy and destruction Settings(); ~Settings(); Settings(Settings&) {} }; #endif // SETTINGS_H