diff options
Diffstat (limited to 'src/plugins/texteditor/codestylepool.h')
-rw-r--r-- | src/plugins/texteditor/codestylepool.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/plugins/texteditor/codestylepool.h b/src/plugins/texteditor/codestylepool.h new file mode 100644 index 0000000000..5825af3214 --- /dev/null +++ b/src/plugins/texteditor/codestylepool.h @@ -0,0 +1,95 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (info@qt.nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at info@qt.nokia.com. +** +**************************************************************************/ + +#ifndef CODESTYLEPOOL_H +#define CODESTYLEPOOL_H + +#include "texteditor_global.h" + +#include <QObject> + +namespace TextEditor { + +class ICodeStylePreferences; +class ICodeStylePreferencesFactory; +class TabSettings; + +namespace Internal { +class CodeStylePoolPrivate; +} + +class TEXTEDITOR_EXPORT CodeStylePool : public QObject +{ + Q_OBJECT +public: + explicit CodeStylePool(ICodeStylePreferencesFactory *factory, QObject *parent = 0); + virtual ~CodeStylePool(); + + QList<ICodeStylePreferences *> codeStyles() const; + QList<ICodeStylePreferences *> builtInCodeStyles() const; + QList<ICodeStylePreferences *> customCodeStyles() const; + + ICodeStylePreferences *cloneCodeStyle(ICodeStylePreferences *originalCodeStyle); + ICodeStylePreferences *createCodeStyle(const QString &id, const TabSettings &tabSettings, + const QVariant &codeStyleData, const QString &displayName); + // ownership is passed to the pool + void addCodeStyle(ICodeStylePreferences *codeStyle); + // is removed and deleted + void removeCodeStyle(ICodeStylePreferences *codeStyle); + + ICodeStylePreferences *codeStyle(const QString &id) const; + + void loadCustomCodeStyles(); + + ICodeStylePreferences *importCodeStyle(const QString &fileName); + void exportCodeStyle(const QString &fileName, ICodeStylePreferences *codeStyle) const; + +signals: + void codeStyleAdded(ICodeStylePreferences *); + void codeStyleRemoved(ICodeStylePreferences *); + +private slots: + void slotSaveCodeStyle(); + +private: + QString settingsDir() const; + QString settingsPath(const QString &id) const; + ICodeStylePreferences *loadCodeStyle(const QString &fileName); + void saveCodeStyle(ICodeStylePreferences *codeStyle) const; + + Internal::CodeStylePoolPrivate *d; + +}; + +} // namespace TextEditor + +#endif // CODESTYLEPOOL_H |