X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=devtools.cpp;h=97ec06c545cfffbdd9083a1a8a4a6247d14ef639;hb=21d55858dc41a30ba77381fe62a7bef0d3e956f7;hp=110a003287dee789199e81d18630b38206746dbb;hpb=598038169e0a06479477d78f121775e1d2f68583;p=dorian diff --git a/devtools.cpp b/devtools.cpp index 110a003..97ec06c 100644 --- a/devtools.cpp +++ b/devtools.cpp @@ -1,111 +1,64 @@ #include -#include #include "devtools.h" #include "trace.h" #include "settings.h" +#include "toolbuttonbox.h" +#include "bookdb.h" +#include "platform.h" -DevTools::DevTools(QWidget *parent): - QDialog(parent, Qt::Dialog | Qt::WindowTitleHint | - Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint) +DevTools::DevTools(QWidget *parent): Dyalog(parent, false) { setWindowTitle(tr("Developer")); - QScrollArea *scroller = new QScrollArea(this); - scroller->setFrameStyle(QFrame::NoFrame); -#ifdef Q_WS_MAEMO_5 - scroller->setProperty("FingerScrollable", true); - scroller->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -#else - scroller->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - setSizeGripEnabled(true); -#endif // Q_WS_MAEMO_5 - scroller->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - QWidget *contents = new QWidget(scroller); - QVBoxLayout *layout = new QVBoxLayout(contents); + addWidget(new QLabel(tr("Qt API version %1").arg(QT_VERSION_STR), this)); + addWidget(new QLabel(tr("Qt runtime version %1").arg(qVersion()), this)); QPushButton *clearSettings = new QPushButton("Clear persistent data", this); connect(clearSettings, SIGNAL(clicked()), this, SLOT(onClear())); - layout->addWidget(clearSettings); - - QLabel *level = new QLabel(tr("Trace level:"), contents); - layout->addWidget(level); - - QFrame *box = new QFrame(this); - layout->addWidget(box); - QHBoxLayout *boxLayout = new QHBoxLayout(box); - boxLayout->setMargin(0); - box->setLayout(boxLayout); - QButtonGroup *group = new QButtonGroup(this); - group->setExclusive(true); - - QToolButton *levelDebug = new QToolButton(box); - levelDebug->setToolButtonStyle(Qt::ToolButtonTextOnly); - levelDebug->setText(tr("Debug")); - levelDebug->setCheckable(true); - boxLayout->addWidget(levelDebug); - group->addButton(levelDebug, QtDebugMsg); - - QToolButton *levelWarning = new QToolButton(box); - levelWarning->setToolButtonStyle(Qt::ToolButtonTextOnly); - levelWarning->setText(tr("Warning")); - levelWarning->setCheckable(true); - boxLayout->addWidget(levelWarning); - group->addButton(levelWarning, QtWarningMsg); - - QToolButton *levelCritical = new QToolButton(box); - levelCritical->setToolButtonStyle(Qt::ToolButtonTextOnly); - levelCritical->setText(tr("Critical")); - levelCritical->setCheckable(true); - boxLayout->addWidget(levelCritical); - group->addButton(levelCritical, QtCriticalMsg); - - QToolButton *levelFatal = new QToolButton(box); - levelFatal->setToolButtonStyle(Qt::ToolButtonTextOnly); - levelFatal->setText(tr("Fatal")); - levelFatal->setCheckable(true); - boxLayout->addWidget(levelFatal); - group->addButton(levelFatal, QtFatalMsg); - - if (Trace::level == QtFatalMsg) { - levelFatal->toggle(); - } else if (Trace::level == QtCriticalMsg) { - levelCritical->toggle(); - } else if (Trace::level == QtWarningMsg) { - levelWarning->toggle(); - } else { - levelDebug->toggle(); - } - - connect(group, SIGNAL(buttonClicked(int)), + addWidget(clearSettings); + + addWidget(new QLabel(tr("Trace level:"), this)); + ToolButtonBox *box = new ToolButtonBox(this); + addWidget(box); + box->addButton(QtDebugMsg, tr("Debug")); + box->addButton(QtWarningMsg, tr("Warning")); + box->addButton(QtCriticalMsg, tr("Critical")); + box->addButton(QtFatalMsg, tr("Fatal")); + box->toggle(Trace::level); + connect(box, SIGNAL(buttonClicked(int)), this, SLOT(onLevelButtonClicked(int))); - layout->addWidget(box); - contents->setLayout(layout); - scroller->setWidget(contents); + QCheckBox *traceToFile = new QCheckBox(tr("Trace to file"), this); + addWidget(traceToFile); + traceToFile->setChecked(!Trace::fileName().isEmpty()); + connect(traceToFile, SIGNAL(toggled(bool)), + this, SLOT(onTraceToFileToggled(bool))); - QHBoxLayout *dialogLayout = new QHBoxLayout(); - dialogLayout->addWidget(scroller); - setLayout(dialogLayout); + addStretch(); } void DevTools::onClear() { if (QMessageBox::Yes == - QMessageBox::question(this, "Clear persistent data?", - "Library and settings data will be cleared, " - "application will be restarted. Continue?", - QMessageBox::Yes -#ifndef Q_WS_MAEMO_5 - , QMessageBox::No -#endif - )) { + QMessageBox::question(this, tr("Clear persistent data"), + tr("Library and settings will be cleared, " + "application will be restarted. Continue?"), + QMessageBox::Yes | QMessageBox::No)) { QSettings().clear(); + BookDb::instance()->removeAll(); QApplication::exit(1000); } } -void DevTools::onLevelButtonClicked(int level) { +void DevTools::onLevelButtonClicked(int level) +{ Trace::level = (QtMsgType)level; Settings::instance()->setValue("tracelevel", level); } + +void DevTools::onTraceToFileToggled(bool enable) +{ + QString name = enable? Platform::instance()->traceFileName(): QString(); + Trace::setFileName(name); + Settings::instance()->setValue("tracefilename", name); +}