settings.hh
Go to the documentation of this file.
1 // Copyright (c) 2015-2018, LAAS-CNRS
2 // Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
3 //
4 // This file is part of gepetto-viewer.
5 // gepetto-viewer is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 //
10 // gepetto-viewer is distributed in the hope that it will be
11 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Lesser Public License for more details. You should have
14 // received a copy of the GNU Lesser General Public License along with
15 // gepetto-viewer. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef GEPETTO_GUI_SETTINGS_HH
18 #define GEPETTO_GUI_SETTINGS_HH
19 
20 #include <ostream>
21 #include <string>
22 #include <QString>
23 #include <QStringList>
24 
26 
27 namespace gepetto {
28  namespace gui {
29  class MainWindow;
30 
37  struct Settings {
38  std::string configurationFile;
39  std::string predifinedRobotConf;
40  std::string predifinedEnvConf;
41  std::string stateConf;
42 
43  std::string logFile;
44 
45  bool verbose;
46  bool noPlugin;
49 
51 
54 
57  QString avconv;
58  QStringList avConvInputOptions;
59  QStringList avConvOutputOptions;
61 
63 
64  QString appStyle;
65 
67  Settings (const char* installDirectory);
68 
73  void setupPaths () const;
74 
76  QString getQSettingsFileName (const std::string& settingsName) const;
77 
87  int initSettings (int argc, char * argv[]);
88 
90  void fromFiles ();
91 
93  void writeSettings ();
94 
96  QVariant getSetting (const QString & key,
97  const QVariant & defaultValue = QVariant());
98 
100  QStringList pluginsToInit_;
101  QStringList pyplugins_;
102  QStringList pyscripts_;
103 
104  void setMainWindow (MainWindow* main);
105 
106  void initPlugins ();
107 
108  std::ostream& print (std::ostream& os);
109 
111  void readRobotFile ();
113  void readEnvFile ();
134  void readSettingFile ();
135 
136  void saveState () const;
137  void restoreState () const;
138  void restoreDockWidgetsState () const;
139 
140  void writeRobotFile ();
141  void writeEnvFile ();
142  void writeSettingFile ();
143 
144  const char** makeOmniORBargs (int &argc);
145 
146  private:
147  void addRobotFromString (const std::string& rbtStr);
148  void addEnvFromString (const std::string& envStr);
149  void addPlugin (const QString& plg, bool init);
150  void addPyPlugin (const QString& plg, bool init);
151  void addPyScript (const QString& fileName);
152  void addOmniORB (const QString& arg, const QString& value);
153 
154  inline void log (const QString& t);
155  inline void logError (const QString& t);
156 
157  MainWindow* mw;
158  QStringList omniORBargv_;
159  };
160  } // namespace gui
161 } // namespace gepetto
162 
163 #endif // GEPETTO_GUI_SETTINGS_HH
gepetto::gui::Settings::restoreState
void restoreState() const
gepetto::gui::Settings::writeRobotFile
void writeRobotFile()
gepetto::gui::Settings::appStyle
QString appStyle
Definition: settings.hh:64
gepetto::gui::Settings::avConvInputOptions
QStringList avConvInputOptions
Definition: settings.hh:58
gepetto::gui::Settings::configurationFile
std::string configurationFile
Definition: settings.hh:38
gepetto::gui::Settings::refreshRate
int refreshRate
Definition: settings.hh:50
gepetto
Definition: action-search-bar.hh:27
gepetto::gui::Settings::logFile
std::string logFile
Definition: settings.hh:43
gepetto::gui::Settings::writeSettings
void writeSettings()
Write the settings to configuration files.
gepetto::gui::Settings::readEnvFile
void readEnvFile()
gepetto::gui::Settings::writeEnvFile
void writeEnvFile()
gepetto::gui::Settings::installDirectory
QString installDirectory
Definition: settings.hh:62
gepetto::gui::Settings::pluginManager_
PluginManager pluginManager_
Definition: settings.hh:99
gepetto::gui::Settings::setMainWindow
void setMainWindow(MainWindow *main)
gepetto::gui::Settings::noPlugin
bool noPlugin
Definition: settings.hh:46
gepetto::gui::Settings::captureFilename
std::string captureFilename
Definition: settings.hh:53
gepetto::gui::Settings::autoWriteSettings
bool autoWriteSettings
Definition: settings.hh:47
gepetto::gui::PluginManager
Definition: pluginmanagerdialog.hh:35
gepetto::gui::Settings::avConvOutputOptions
QStringList avConvOutputOptions
Definition: settings.hh:59
gepetto::gui::Settings::saveState
void saveState() const
gepetto::gui::Settings
Definition: settings.hh:37
gepetto::gui::Settings::print
std::ostream & print(std::ostream &os)
gepetto::gui::Settings::captureExtension
std::string captureExtension
Definition: settings.hh:53
gepetto::gui::Settings::getSetting
QVariant getSetting(const QString &key, const QVariant &defaultValue=QVariant())
Get a setting.
gepetto::gui::Settings::setupPaths
void setupPaths() const
gepetto::gui::Settings::restoreDockWidgetsState
void restoreDockWidgetsState() const
gepetto::gui::Settings::readRobotFile
void readRobotFile()
gepetto::gui::Settings::stateConf
std::string stateConf
Definition: settings.hh:41
gepetto::gui::Settings::verbose
bool verbose
Definition: settings.hh:45
gepetto::gui::Settings::useNameService
bool useNameService
Definition: settings.hh:48
gepetto::gui::Settings::predifinedEnvConf
std::string predifinedEnvConf
Definition: settings.hh:40
gepetto::gui::Settings::pyplugins_
QStringList pyplugins_
Definition: settings.hh:101
gepetto::gui::Settings::readSettingFile
void readSettingFile()
gepetto::gui::Settings::writeSettingFile
void writeSettingFile()
gepetto::gui::Settings::getQSettingsFileName
QString getQSettingsFileName(const std::string &settingsName) const
Get the filename of a configuration file.
gepetto::gui::Settings::Settings
Settings(const char *installDirectory)
Set up default values.
gepetto::gui::Settings::predifinedRobotConf
std::string predifinedRobotConf
Definition: settings.hh:39
gepetto::gui::Settings::initPlugins
void initPlugins()
gepetto::gui::Settings::pyscripts_
QStringList pyscripts_
Definition: settings.hh:102
gepetto::gui::Settings::pluginsToInit_
QStringList pluginsToInit_
Definition: settings.hh:100
gepetto::gui::Settings::captureDirectory
std::string captureDirectory
Path to avconv binary (maybe ffmpeg on some distributions).
Definition: settings.hh:53
gepetto::gui::Settings::avconv
QString avconv
Definition: settings.hh:57
gepetto::gui::Settings::fromFiles
void fromFiles()
Update settings from setting files.
gepetto::gui::MainWindow
Class.
Definition: mainwindow.hh:43
gepetto::gui::Settings::initSettings
int initSettings(int argc, char *argv[])
pluginmanagerdialog.hh
gepetto::gui::Settings::makeOmniORBargs
const char ** makeOmniORBargs(int &argc)