diff --git a/modules/gui/pymod/__init__.py b/modules/gui/pymod/__init__.py index ebacf39c9522f704735c7985610b6f6404856aa9..86346306b822824a66c8cbd4106d447f589cb71a 100644 --- a/modules/gui/pymod/__init__.py +++ b/modules/gui/pymod/__init__.py @@ -202,3 +202,16 @@ class ManyOf: if not found: return False return True + +from ost import PushVerbosityLevel as _PushVerbosityLevel +from ost import PopVerbosityLevel as _PopVerbosityLevel +from ost import GetVerbosityLevel as _GetVerbosityLevel + + +def PushVerbosityLevel(value): + GostyApp.Instance().perspective.ChangeVerbositySlider(value) + +def PopVerbosityLevel(): + _PopVerbosityLevel() + GostyApp.Instance().perspective.ChangeVerbositySlider(_GetVerbosityLevel()) + _PopVerbosityLevel() # the slider change pushes a new level :-( diff --git a/modules/gui/pymod/dng/init.py b/modules/gui/pymod/dng/init.py index b56ce5ab2f83692720e1d2f2b8be96300adbf7bb..99773b4bc51b0d60369b18506fb82c9fdf11605d 100644 --- a/modules/gui/pymod/dng/init.py +++ b/modules/gui/pymod/dng/init.py @@ -207,7 +207,7 @@ else: print >> rcfile, '# IMPORTANT_DIR="path/to/important/dir"' rcfile.close() -ost.PushVerbosityLevel(options.vlevel) +ost.gui.PushVerbosityLevel(options.vlevel) working_dir=settings.GetValue("DNG_WORKING_DIR",None) if working_dir != None and os.path.isdir(working_dir): diff --git a/modules/gui/pymod/export_perspective.cc b/modules/gui/pymod/export_perspective.cc index 9e234279a901a9da02a0111c6e28636aa2b89cc9..720ef3200b84eca113dfac31778ace720000d607 100644 --- a/modules/gui/pymod/export_perspective.cc +++ b/modules/gui/pymod/export_perspective.cc @@ -57,7 +57,8 @@ void export_Perspective() .def("StatusMessage", &Perspective::StatusMessage) .def("Restore", &Perspective::Restore) .def("Save", &Perspective::Save) - .add_property("main_area", make_function(&Perspective::GetMainArea, + .def("ChangeVerbositySlider", &Perspective::ChangeVerbositySlider) + .add_property("main_area", make_function(&Perspective::GetMainArea, return_value_policy<reference_existing_object>())) .add_property("panels", make_function(&Perspective::GetPanels, return_value_policy<reference_existing_object>())) diff --git a/modules/gui/src/perspective.cc b/modules/gui/src/perspective.cc index b95b6f5ef523a92caf69e4a0225f298d5326b42e..32bfadbc663e1c2ae581f8d35490b74d59e89889 100644 --- a/modules/gui/src/perspective.cc +++ b/modules/gui/src/perspective.cc @@ -19,6 +19,8 @@ #include <ost/platform.hh> +#include <ost/log.hh> + #include <ost/gui/widget_registry.hh> #include <ost/gui/perspective.hh> #include <ost/gui/file_browser.hh> @@ -45,6 +47,7 @@ #include <QMap> #include <QString> #include <QStatusBar> +#include <QSlider> /* Author: Marco Biasini @@ -55,7 +58,8 @@ Perspective::Perspective(QMainWindow* parent): QObject(parent), central_(new QWidget(parent)), menu_bar_(new QMenuBar(parent)), main_area_(new MainArea), - quick_access_bar_(new QWidget) + quick_access_bar_(new QWidget), + verbosity_slider_(new QSlider(Qt::Horizontal,quick_access_bar_)) { parent->setMenuBar(menu_bar_); @@ -107,7 +111,19 @@ void Perspective::SetupQuickAccessBar() add_side_bar_widget->setIconSize(QSize(10,10)); connect(add_side_bar_widget, SIGNAL(clicked()), this, SLOT(AddSideBarWidget())); + l2->addWidget(add_side_bar_widget, 0); + + verbosity_slider_->setMinimum(0); + verbosity_slider_->setMaximum(5); + verbosity_slider_->setValue(Logger::Instance().GetVerbosityLevel()); + verbosity_slider_->setToolTip("Verbosity Level"); + verbosity_slider_->setTickPosition(QSlider::TicksBothSides); + verbosity_slider_->setFixedWidth(100); + connect(verbosity_slider_, SIGNAL(valueChanged(int)), + this,SLOT(VerbosityChanged(int))); + l2->addWidget(verbosity_slider_, 0); + l2->addWidget(status_bar_); l2->addWidget(new MessageBoxWidget(quick_access_bar_)); l2->addWidget(new QSizeGrip(quick_access_bar_)); @@ -157,6 +173,17 @@ void Perspective::AddSideBarWidget() delete sb; } +void Perspective::ChangeVerbositySlider(int value) +{ + verbosity_slider_->setValue(value); +} + + +void Perspective::VerbosityChanged(int value) +{ + Logger::Instance().PushVerbosityLevel(value); +} + bool Perspective::Restore() { return true; diff --git a/modules/gui/src/perspective.hh b/modules/gui/src/perspective.hh index 19500cfd328834f8ba613cefb208213957f87bc2..573133e73b8d871b001bfd315d202afd43af7222 100644 --- a/modules/gui/src/perspective.hh +++ b/modules/gui/src/perspective.hh @@ -33,6 +33,7 @@ class QMenuBar; class QStatusBar; class QMainWindow; class QTextEdit; +class QSlider; namespace ost { namespace gui { @@ -80,14 +81,18 @@ public: /// \return Returns true if it was successful. Otherwise false bool Save(); + void ChangeVerbositySlider(int value); + private slots: void AddSideBarWidget(); + void VerbosityChanged(int value); public slots: /// \brief set status message /// \param m The message that will be displayed in the status bar. void StatusMessage(const String& m); + private: void SetupQuickAccessBar(); QWidget* central_; @@ -96,6 +101,7 @@ private: PanelManager* panels_; QWidget* quick_access_bar_; QStatusBar* status_bar_; + QSlider* verbosity_slider_; }; }} diff --git a/scripts/init.py b/scripts/init.py index 732120f6da62d07aab5176e5fbe70d31e983149f..e96acc915fd88ac85fd900960f3a0c055aaff0b9 100644 --- a/scripts/init.py +++ b/scripts/init.py @@ -1,3 +1,4 @@ from ost import * from ost import gui -import ost.gui.dng.init \ No newline at end of file +import ost.gui.dng.init +from ost.gui import PushVerbosityLevel,PopVerbosityLevel