Battle with include files (lost).
[dorian] / devtools.cpp
1 #include <QtGui>
2
3 #include "devtools.h"
4 #include "trace.h"
5 #include "settings.h"
6 #include "toolbuttonbox.h"
7 #include "bookdb.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     addStretch();
29 }
30
31 void DevTools::onClear()
32 {
33     if (QMessageBox::Yes ==
34         QMessageBox::question(this, tr("Clear persistent data"),
35                               tr("Library and settings will be cleared, "
36                                  "application will be restarted. Continue?"),
37                               QMessageBox::Yes | QMessageBox::No)) {
38         QSettings().clear();
39         BookDb::instance()->removeAll();
40         QApplication::exit(1000);
41     }
42 }
43
44 void DevTools::onLevelButtonClicked(int level) {
45     Trace::level = (QtMsgType)level;
46     Settings::instance()->setValue("tracelevel", level);
47 }