diff --git a/apps/opencs/view/widget/pushbutton.cpp b/apps/opencs/view/widget/pushbutton.cpp index 8b4cf65e3..61afa0d9d 100644 --- a/apps/opencs/view/widget/pushbutton.cpp +++ b/apps/opencs/view/widget/pushbutton.cpp @@ -21,6 +21,7 @@ void CSVWidget::PushButton::mouseReleaseEvent (QMouseEvent *event) CSVWidget::PushButton::PushButton (const QIcon& icon, const QString& text, QWidget *parent) : QPushButton (icon, text, parent), mKeepOpen (false) { + setCheckable (true); } bool CSVWidget::PushButton::hasKeepOpen() const diff --git a/apps/opencs/view/widget/scenetoolmode.cpp b/apps/opencs/view/widget/scenetoolmode.cpp index 87abd8140..5f2eecdc3 100644 --- a/apps/opencs/view/widget/scenetoolmode.cpp +++ b/apps/opencs/view/widget/scenetoolmode.cpp @@ -40,7 +40,10 @@ void CSVWidget::SceneToolMode::addButton (const std::string& icon, const std::st connect (button, SIGNAL (clicked()), this, SLOT (selected())); if (mButtons.size()==1) + { setIcon (button->icon()); + button->setChecked (true); + } } void CSVWidget::SceneToolMode::selected() @@ -53,6 +56,10 @@ void CSVWidget::SceneToolMode::selected() if (!iter->first->hasKeepOpen()) mPanel->hide(); + for (std::map::const_iterator iter2 = mButtons.begin(); + iter2!=mButtons.end(); ++iter2) + iter2->first->setChecked (iter2==iter); + setIcon (iter->first->icon()); emit modeChanged (iter->second); }