diff --git a/apps/opencs/view/widget/pushbutton.cpp b/apps/opencs/view/widget/pushbutton.cpp index 52c78ff1c..35bed1627 100644 --- a/apps/opencs/view/widget/pushbutton.cpp +++ b/apps/opencs/view/widget/pushbutton.cpp @@ -11,9 +11,23 @@ void CSVWidget::PushButton::setExtendedToolTip (const std::string& text) if (tooltip.empty()) tooltip = "(Tool tip not implemented yet)"; - if (!mPush) - tooltip += - "
(left click to activate,
shift-left click to activate and keep panel open)";
+ switch (mType)
+ {
+ case Type_TopMode:
+
+ tooltip +=
+ "
(left click to change mode)"; + + break; + + case Type_Mode: + + tooltip += + "
(left click to activate,"
+ "
shift-left click to activate and keep panel open)";
+
+ break;
+ }
setToolTip (QString::fromUtf8 (tooltip.c_str()));
}
@@ -43,18 +57,18 @@ void CSVWidget::PushButton::mouseReleaseEvent (QMouseEvent *event)
QPushButton::mouseReleaseEvent (event);
}
-CSVWidget::PushButton::PushButton (const QIcon& icon, bool push, const std::string& tooltip,
+CSVWidget::PushButton::PushButton (const QIcon& icon, Type type, const std::string& tooltip,
QWidget *parent)
-: QPushButton (icon, "", parent), mKeepOpen (false), mPush (push)
+: QPushButton (icon, "", parent), mKeepOpen (false), mType (type)
{
- setCheckable (!push);
+ setCheckable (type==Type_Mode);
setExtendedToolTip (tooltip);
}
-CSVWidget::PushButton::PushButton (bool push, const std::string& tooltip, QWidget *parent)
-: QPushButton (parent), mKeepOpen (false), mPush (push)
+CSVWidget::PushButton::PushButton (Type type, const std::string& tooltip, QWidget *parent)
+: QPushButton (parent), mKeepOpen (false), mType (type)
{
- setCheckable (!push);
+ setCheckable (type==Type_Mode);
setExtendedToolTip (tooltip);
}
diff --git a/apps/opencs/view/widget/pushbutton.hpp b/apps/opencs/view/widget/pushbutton.hpp
index 6cd4f65ab..099cba358 100644
--- a/apps/opencs/view/widget/pushbutton.hpp
+++ b/apps/opencs/view/widget/pushbutton.hpp
@@ -9,8 +9,18 @@ namespace CSVWidget
{
Q_OBJECT
+ public:
+
+ enum Type
+ {
+ Type_TopMode, // top level button for mode selector panel
+ Type_Mode // mode button
+ };
+
+ private:
+
bool mKeepOpen;
- bool mPush;
+ Type mType;
private:
@@ -27,11 +37,11 @@ namespace CSVWidget
public:
/// \param push Do not maintain a toggle state
- PushButton (const QIcon& icon, bool push = false, const std::string& tooltip = "",
+ PushButton (const QIcon& icon, Type type, const std::string& tooltip = "",
QWidget *parent = 0);
/// \param push Do not maintain a toggle state
- PushButton (bool push = false, const std::string& tooltip = "",
+ PushButton (Type type, const std::string& tooltip = "",
QWidget *parent = 0);
bool hasKeepOpen() const;
diff --git a/apps/opencs/view/widget/scenetool.cpp b/apps/opencs/view/widget/scenetool.cpp
index d247096b0..e3f2dfd1c 100644
--- a/apps/opencs/view/widget/scenetool.cpp
+++ b/apps/opencs/view/widget/scenetool.cpp
@@ -3,7 +3,8 @@
#include "scenetoolbar.hpp"
-CSVWidget::SceneTool::SceneTool (SceneToolbar *parent) : PushButton (true, "", parent)
+CSVWidget::SceneTool::SceneTool (SceneToolbar *parent)
+: PushButton (PushButton::Type_TopMode, "", parent)
{
setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
setIconSize (QSize (parent->getIconSize(), parent->getIconSize()));
diff --git a/apps/opencs/view/widget/scenetoolmode.cpp b/apps/opencs/view/widget/scenetoolmode.cpp
index 152a7c0ce..629cf9415 100644
--- a/apps/opencs/view/widget/scenetoolmode.cpp
+++ b/apps/opencs/view/widget/scenetoolmode.cpp
@@ -31,7 +31,8 @@ void CSVWidget::SceneToolMode::showPanel (const QPoint& position)
void CSVWidget::SceneToolMode::addButton (const std::string& icon, const std::string& id)
{
- PushButton *button = new PushButton (QIcon (QPixmap (icon.c_str())), false, "", mPanel);
+ PushButton *button = new PushButton (QIcon (QPixmap (icon.c_str())), PushButton::Type_Mode,
+ "", mPanel);
button->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
button->setIconSize (QSize (mIconSize, mIconSize));
button->setFixedSize (mButtonSize, mButtonSize);