@@ -22,10 +22,45 | |||
|
22 | 22 | #include <QApplication> |
|
23 | 23 | #include <QMainWindow> |
|
24 | 24 | |
|
25 | QVariantHash parseArgs(QStringList args) | |
|
26 | { | |
|
27 | QVariantHash parameters; | |
|
28 | ||
|
29 | while (!args.isEmpty()) { | |
|
30 | ||
|
31 | QString param = args.takeFirst(); | |
|
32 | if (param.startsWith("--")) { | |
|
33 | param.remove(0, 2); | |
|
34 | ||
|
35 | if (args.isEmpty() || args.first().startsWith("--")) { | |
|
36 | parameters[param] = true; | |
|
37 | } | |
|
38 | else { | |
|
39 | ||
|
40 | QString value = args.takeFirst(); | |
|
41 | if (value == "true" || value == "on" || value == "enabled") { | |
|
42 | parameters[param] = true; | |
|
43 | } | |
|
44 | else if (value == "false" || value == "off" || value == "disable") { | |
|
45 | parameters[param] = false; | |
|
46 | } | |
|
47 | else { | |
|
48 | if(value.endsWith( '"' )) value.chop(1); | |
|
49 | if(value.startsWith( '"' )) value.remove(0,1); | |
|
50 | parameters[param] = value; | |
|
51 | } | |
|
52 | } | |
|
53 | } | |
|
54 | } | |
|
55 | ||
|
56 | return parameters; | |
|
57 | } | |
|
58 | ||
|
25 | 59 | int main(int argc, char *argv[]) |
|
26 | 60 | { |
|
27 | 61 | QApplication a(argc, argv); |
|
28 | Window window; | |
|
62 | QVariantHash parameters = parseArgs(QApplication::arguments()); | |
|
63 | Window window(parameters); | |
|
29 | 64 | window.show(); |
|
30 | 65 | return a.exec(); |
|
31 | 66 | } |
@@ -40,7 +40,7 | |||
|
40 | 40 | #include <QDebug> |
|
41 | 41 | #include <QMenu> |
|
42 | 42 | |
|
43 | Window::Window(QWidget *parent) : | |
|
43 | Window::Window(const QVariantHash& parameters,QWidget *parent) : | |
|
44 | 44 | QMainWindow(parent), |
|
45 | 45 | m_listCount(3), |
|
46 | 46 | m_valueMax(10), |
@@ -111,6 +111,7 Window::Window(QWidget *parent) : | |||
|
111 | 111 | |
|
112 | 112 | // Set defaults |
|
113 | 113 | m_antialiasCheckBox->setChecked(true); |
|
114 | initializeFromParamaters(parameters); | |
|
114 | 115 | updateUI(); |
|
115 | 116 | setCentralWidget(m_view); |
|
116 | 117 | |
@@ -210,6 +211,49 QComboBox *Window::createTempleteBox() | |||
|
210 | 211 | return templateComboBox; |
|
211 | 212 | } |
|
212 | 213 | |
|
214 | void Window::initializeFromParamaters(const QVariantHash& parameters) | |
|
215 | { | |
|
216 | if (parameters.contains("template")) { | |
|
217 | QString t = parameters["template"].toString(); | |
|
218 | for (int i = 0; i < m_templateComboBox->count(); ++i) { | |
|
219 | if (m_templateComboBox->itemText(i) == t) { | |
|
220 | m_templateComboBox->setCurrentIndex(i); | |
|
221 | break; | |
|
222 | } | |
|
223 | } | |
|
224 | } | |
|
225 | if (parameters.contains("opengl")) { | |
|
226 | bool checked = parameters["opengl"].toBool(); | |
|
227 | m_openGLCheckBox->setChecked(checked); | |
|
228 | } | |
|
229 | if (parameters.contains("theme")) { | |
|
230 | QString t = parameters["theme"].toString(); | |
|
231 | for (int i = 0; i < m_themeComboBox->count(); ++i) { | |
|
232 | if (m_themeComboBox->itemText(i) == t) { | |
|
233 | m_themeComboBox->setCurrentIndex(i); | |
|
234 | break; | |
|
235 | } | |
|
236 | } | |
|
237 | } | |
|
238 | if (parameters.contains("animation")) { | |
|
239 | QString t = parameters["animation"].toString(); | |
|
240 | for (int i = 0; i < m_animatedComboBox->count(); ++i) { | |
|
241 | if (m_animatedComboBox->itemText(i) == t) { | |
|
242 | m_animatedComboBox->setCurrentIndex(i); | |
|
243 | break; | |
|
244 | } | |
|
245 | } | |
|
246 | } | |
|
247 | if (parameters.contains("legend")) { | |
|
248 | QString t = parameters["legend"].toString(); | |
|
249 | for (int i = 0; i < m_legendComboBox->count(); ++i) { | |
|
250 | if (m_legendComboBox->itemText(i) == t) { | |
|
251 | m_legendComboBox->setCurrentIndex(i); | |
|
252 | break; | |
|
253 | } | |
|
254 | } | |
|
255 | } | |
|
256 | } | |
|
213 | 257 | |
|
214 | 258 | void Window::updateUI() |
|
215 | 259 | { |
@@ -46,7 +46,7 class Window: public QMainWindow | |||
|
46 | 46 | Q_OBJECT |
|
47 | 47 | enum State { NoState = 0, ZoomState, ScrollState}; |
|
48 | 48 | public: |
|
49 | explicit Window(QWidget *parent = 0); | |
|
49 | explicit Window(const QVariantHash& parameters, QWidget *parent = 0); | |
|
50 | 50 | ~Window(); |
|
51 | 51 | |
|
52 | 52 | private Q_SLOTS: |
@@ -69,6 +69,7 private: | |||
|
69 | 69 | QMenu *createMenu(); |
|
70 | 70 | void handleMenu(QChart *chart); |
|
71 | 71 | QAction *createMenuAction(QMenu *menu, const QIcon &icon, const QString &text, const QVariant &data); |
|
72 | void initializeFromParamaters(const QVariantHash& parameters); | |
|
72 | 73 | |
|
73 | 74 | protected: |
|
74 | 75 | void mousePressEvent(QMouseEvent *event); |
General Comments 0
You need to be logged in to leave comments.
Login now