X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Command.cpp;h=b289f8014ec6b65c6efe2084978bebd0fe0a6068;hb=47c18d4de2719126f6b045b5c37525cd8f170aa1;hp=5ec79621fd4abcbbd44c5270f9b9c28d4a5bc12e;hpb=2a0dd5ede9110d423fbd6b038c0445cb819163a9;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Command.cpp b/src/XGUI/XGUI_Command.cpp index 5ec79621f..b289f8014 100644 --- a/src/XGUI/XGUI_Command.cpp +++ b/src/XGUI/XGUI_Command.cpp @@ -1,18 +1,20 @@ #include "XGUI_Command.h" -#include +#include -XGUI_Command::XGUI_Command(const QString& theId, QObject * parent) - : QWidgetAction(parent), myId(theId) +XGUI_Command::XGUI_Command(const QString& theId, QObject * parent, bool isCheckable) + : QWidgetAction(parent), myCheckable(isCheckable) { + setData(theId); } XGUI_Command::XGUI_Command(const QString& theId, const QIcon& icon, const QString& text, - QObject* parent) - : QWidgetAction(parent), myId(theId) + QObject* parent, bool isCheckable) + : QWidgetAction(parent), myCheckable(isCheckable) { setIcon(icon); setText(text); + setData(theId); } XGUI_Command::~XGUI_Command() @@ -22,41 +24,45 @@ XGUI_Command::~XGUI_Command() QWidget* XGUI_Command::createWidget(QWidget* theParent) { if (theParent->inherits("XGUI_MenuGroupPanel")) { - QPushButton* aBtn = new QPushButton(theParent); - aBtn->setIcon(icon()); - aBtn->setText(text()); + QToolButton* aButton = new QToolButton(theParent); + aButton->setIcon(icon()); + aButton->setText(text()); + aButton->setStyleSheet("QToolButton::menu-indicator { image: none; }"); + aButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + aButton->setAutoRaise(true); + aButton->setArrowType(Qt::NoArrow); + aButton->setCheckable(myCheckable); + aButton->setMinimumSize(MIN_BUTTON_WIDTH, MIN_BUTTON_HEIGHT); + aButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); QKeySequence aKeys = shortcut(); QString aToolTip = toolTip(); if (!aKeys.isEmpty()) aToolTip = aToolTip + " (" + aKeys.toString() + ")"; if (!aToolTip.isEmpty()) - aBtn->setToolTip(aToolTip); + aButton->setToolTip(aToolTip); - aBtn->addAction(this); - connect(aBtn, SIGNAL(clicked()), this, SLOT(trigger())); - aBtn->setFlat(true); - aBtn->setMinimumSize(MIN_BUTTON_WIDTH, MIN_BUTTON_HEIGHT); - return aBtn; + aButton->addAction(this); + connect(aButton, SIGNAL(clicked()), this, SLOT(trigger())); + connect(this, SIGNAL(toggled(bool)), aButton, SLOT(setChecked(bool))); + connect(this, SIGNAL(toggled(bool)), aButton, SLOT(setChecked(bool))); + this->setCheckable(myCheckable); + + return aButton; } return QWidgetAction::createWidget(theParent); } -bool XGUI_Command::enabled() const -{ - return isEnabled(); -} - -void XGUI_Command::enable() +void XGUI_Command::connectTo(const QObject* theResiver, const char* theSlot) { - setEnabled(true); + connect(this, SIGNAL(triggered(bool)), theResiver, theSlot); } -void XGUI_Command::disable() +const QStringList& XGUI_Command::nestedCommands() const { - setEnabled(false); + return myNestedCommands; } -void XGUI_Command::connectTo(const QObject* theResiver, const char* theSlot) +void XGUI_Command::setNestedCommands(const QStringList& myUnblockableCommands) { - connect(this, SIGNAL(triggered()), theResiver, theSlot); + this->myNestedCommands = myUnblockableCommands; }