1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-22 10:39:41 +00:00

replaced custom toolbutton push flag with type enum

This commit is contained in:
Marc Zinnschlag 2014-07-10 13:04:30 +02:00
parent 32e48edb83
commit 61a02d8a40
4 changed files with 40 additions and 14 deletions

View file

@ -11,9 +11,23 @@ void CSVWidget::PushButton::setExtendedToolTip (const std::string& text)
if (tooltip.empty()) if (tooltip.empty())
tooltip = "(Tool tip not implemented yet)"; tooltip = "(Tool tip not implemented yet)";
if (!mPush) switch (mType)
tooltip += {
"<p>(left click to activate,<br>shift-left click to activate and keep panel open)"; case Type_TopMode:
tooltip +=
"<p>(left click to change mode)";
break;
case Type_Mode:
tooltip +=
"<p>(left click to activate,"
"<br>shift-left click to activate and keep panel open)";
break;
}
setToolTip (QString::fromUtf8 (tooltip.c_str())); setToolTip (QString::fromUtf8 (tooltip.c_str()));
} }
@ -43,18 +57,18 @@ void CSVWidget::PushButton::mouseReleaseEvent (QMouseEvent *event)
QPushButton::mouseReleaseEvent (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) QWidget *parent)
: QPushButton (icon, "", parent), mKeepOpen (false), mPush (push) : QPushButton (icon, "", parent), mKeepOpen (false), mType (type)
{ {
setCheckable (!push); setCheckable (type==Type_Mode);
setExtendedToolTip (tooltip); setExtendedToolTip (tooltip);
} }
CSVWidget::PushButton::PushButton (bool push, const std::string& tooltip, QWidget *parent) CSVWidget::PushButton::PushButton (Type type, const std::string& tooltip, QWidget *parent)
: QPushButton (parent), mKeepOpen (false), mPush (push) : QPushButton (parent), mKeepOpen (false), mType (type)
{ {
setCheckable (!push); setCheckable (type==Type_Mode);
setExtendedToolTip (tooltip); setExtendedToolTip (tooltip);
} }

View file

@ -9,8 +9,18 @@ namespace CSVWidget
{ {
Q_OBJECT Q_OBJECT
public:
enum Type
{
Type_TopMode, // top level button for mode selector panel
Type_Mode // mode button
};
private:
bool mKeepOpen; bool mKeepOpen;
bool mPush; Type mType;
private: private:
@ -27,11 +37,11 @@ namespace CSVWidget
public: public:
/// \param push Do not maintain a toggle state /// \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); QWidget *parent = 0);
/// \param push Do not maintain a toggle state /// \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); QWidget *parent = 0);
bool hasKeepOpen() const; bool hasKeepOpen() const;

View file

@ -3,7 +3,8 @@
#include "scenetoolbar.hpp" #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)); setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
setIconSize (QSize (parent->getIconSize(), parent->getIconSize())); setIconSize (QSize (parent->getIconSize(), parent->getIconSize()));

View file

@ -31,7 +31,8 @@ void CSVWidget::SceneToolMode::showPanel (const QPoint& position)
void CSVWidget::SceneToolMode::addButton (const std::string& icon, const std::string& id) 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->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed));
button->setIconSize (QSize (mIconSize, mIconSize)); button->setIconSize (QSize (mIconSize, mIconSize));
button->setFixedSize (mButtonSize, mButtonSize); button->setFixedSize (mButtonSize, mButtonSize);