Improve icons. Move some menu items to the toolbar. Don't show buttons in current...
[dorian] / devtools.cpp
1 #include <QtGui>
2 #include <QDebug>
3
4 #include "devtools.h"
5 #include "trace.h"
6 #include "settings.h"
7 #include "toolbuttonbox.h"
8
9 DevTools::DevTools(QWidget *parent): Dyalog(parent, false)
10 {
11     setWindowTitle(tr("Developer"));
12     QPushButton *clearSettings = new QPushButton("Clear persistent data", this);
13     connect(clearSettings, SIGNAL(clicked()), this, SLOT(onClear()));
14     addWidget(clearSettings);
15
16     QLabel *level = new QLabel(tr("Trace level:"), this);
17     addWidget(level);
18
19     ToolButtonBox *box = new ToolButtonBox(this);
20     addWidget(box);
21     box->addButton(QtDebugMsg, tr("Debug"));
22     box->addButton(QtWarningMsg, tr("Warning"));
23     box->addButton(QtCriticalMsg, tr("Critical"));
24     box->addButton(QtFatalMsg, tr("Fatal"));
25     box->toggle(Trace::level);
26     connect(box, SIGNAL(buttonClicked(int)),
27             this, SLOT(onLevelButtonClicked(int)));
28 }
29
30 void DevTools::onClear()
31 {
32     if (QMessageBox::Yes ==
33         QMessageBox::question(this, tr("Clear persistent data?"),
34                               tr("Library and settings will be cleared, "
35                                  "application will be restarted. Continue?"),
36                               QMessageBox::Yes | QMessageBox::No)) {
37         QSettings().clear();
38         QApplication::exit(1000);
39     }
40 }
41
42 void DevTools::onLevelButtonClicked(int level) {
43     Trace::level = (QtMsgType)level;
44     Settings::instance()->setValue("tracelevel", level);
45 }