Merged in f5soh/librepilot/update_credits (pull request #529)
[librepilot.git] / ground / gcs / src / plugins / coreplugin / workspacesettings.h
blobbfcbaf0b36ad0f72364999571defb769d34e1a21
1 /**
2 ******************************************************************************
4 * @file workspacesettings.h
5 * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
6 * @addtogroup GCSPlugins GCS Plugins
7 * @{
8 * @addtogroup CorePlugin Core Plugin
9 * @{
10 * @brief The Core GCS plugin
11 *****************************************************************************/
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 3 of the License, or
16 * (at your option) any later version.
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
20 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 * for more details.
23 * You should have received a copy of the GNU General Public License along
24 * with this program; if not, write to the Free Software Foundation, Inc.,
25 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 #ifndef WORKSPACESETTINGS_H
29 #define WORKSPACESETTINGS_H
31 #include <coreplugin/dialogs/ioptionspage.h>
33 #include <QObject>
34 #include <QStringList>
35 #include <QTabWidget>
37 class QSettings;
39 namespace Core {
40 class ModeManager;
41 class IMode;
43 namespace Internal {
44 namespace Ui {
45 class WorkspaceSettings;
48 class WorkspaceSettings : public IOptionsPage {
49 Q_OBJECT
50 public:
51 WorkspaceSettings(QObject *parent = 0);
52 ~WorkspaceSettings();
54 // IOptionsPage
55 QString id() const;
56 QString trName() const;
57 QString category() const;
58 QString trCategory() const;
60 QWidget *createPage(QWidget *parent);
61 void apply();
62 void finish();
63 void readSettings(QSettings &settings);
64 void saveSettings(QSettings &settings) const;
65 int numberOfWorkspaces() const
67 return m_numberOfWorkspaces;
69 QString iconName(int i) const
71 return m_iconNames.at(i);
73 QString name(int i) const
75 return m_names.at(i);
77 QString modeName(int i) const
79 return m_modeNames.at(i);
81 bool restoreSelectedOnStartup() const
83 return m_restoreSelectedOnStartup;
86 signals:
87 void tabBarSettingsApplied(QTabWidget::TabPosition pos, bool movable);
89 public slots:
90 void selectWorkspace(int index, bool store = false);
91 void numberOfWorkspacesChanged(int value);
92 void textEdited(QString string);
93 void iconChanged();
94 void newModeOrder(QVector<IMode *> modes);
96 private:
97 Ui::WorkspaceSettings *m_page;
98 QStringList m_iconNames;
99 QStringList m_names;
100 QStringList m_modeNames;
101 int m_currentIndex;
102 int m_previousNumberOfWorkspaces;
103 int m_numberOfWorkspaces;
104 int m_tabBarPlacementIndex;
105 bool m_allowTabBarMovement;
106 bool m_restoreSelectedOnStartup;
107 static const int MAX_WORKSPACES;
109 } // namespace Internal
110 } // namespace Core
112 #endif // WORKSPACESETTINGS_H