view src/UiGuiSettings.h @ 727:aae5a8d04f70

Updated comment copyright year. git-svn-id: svn://svn.code.sf.net/p/universalindent/code/trunk@1001 59b1889a-e5ac-428c-b0c7-476e01d41282
author thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
date Sun, 21 Mar 2010 17:34:17 +0000
parents 1c5ff048dfaa
children d1493c2ffca1
line wrap: on
line source

/***************************************************************************
*   Copyright (C) 2006-2010 by Thomas Schweitzer                          *
*   thomas-schweitzer(at)arcor.de                                         *
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License version 2.0 as   *
*   published by the Free Software Foundation.                            *
*                                                                         *
*   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 in the file LICENSE.GPL; if not, write to the *
*   Free Software Foundation, Inc.,                                       *
*   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
***************************************************************************/

#ifndef UIGUISETTINGS_H
#define UIGUISETTINGS_H

#include <QObject>
#include <QString>
#include <QSettings>
#include <QPoint>
#include <QSize>
#include <QDir>
#include <QDate>
#include <QStringList>
#include <QCoreApplication>

class UiGuiSettings : public QObject
{
    Q_OBJECT
private:
    UiGuiSettings();
    static UiGuiSettings* instance;

public:
    static UiGuiSettings* getInstance();
    static void deleteInstance();
    ~UiGuiSettings();
    bool loadSettings();
    bool saveSettings();
    bool setValueByName(QString settingName, QVariant value);
    QVariant getValueByName(QString settingName);
    void updateAllDependend();
    QStringList getAvailableTranslations();

    // Only one slot per possible value type needed, because wanted setting
    // is recognized by the sender objects name.
public slots:
    void handleValueChangeFromExtern(int value);
    void handleValueChangeFromExtern(bool value);
    void handleValueChangeFromExtern(QDate value);
    void handleValueChangeFromExtern(QByteArray value);

    // Each possible setting needs an own signal.
signals:
    void versionInSettingsFile(QString value);
    void windowIsMaximized(bool value);
    void windowPosition(QPoint value);
    void windowSize(QSize value);
    void fileEncoding(QString value);
    void recentlyOpenedListSize(int value);
    void loadLastOpenedFileOnStartup(bool value);
    void lastOpenedFiles(QString value);
    void selectedIndenter(int value);
    void syntaxHighlightningEnabled(bool value);
    void whiteSpaceIsVisible(bool value);
    void indenterParameterTooltipsEnabled(bool value);
    void tabWidth(int value);
    void language(int value);
    void lastUpdateCheck(QDate value);
    void mainWindowState(QByteArray value);
    // Network settings.
    void checkForUpdate(bool value);
    void enableProxy(bool value);
    void proxyHostName(QString value);
    void proxyPort(int value);
    void proxyUserName(QString value);
    void proxyPassword(QString value);

private:
    void emitSignalForSetting(QString settingName);
    void readAvailableTranslations();

    //! Stores the mnemonics of the available translations.
    QStringList availableTranslations;

    //! The settings file.
    QSettings *qsettings;

    //! This map holds all possible settings defined by their name as QString. The value is of the type QVariant.
    QMap<QString, QVariant> settings;

    QString indenterDirctoryStr;
};

#endif // UIGUISETTINGS_H