X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Command.cpp;h=1194dc4543785c84b0339555b385dab588506de9;hb=4c7569f230373cbe5db483d5885b0a7932bb8dc6;hp=4c4249c6ff905e3d430a753bd468e7445c0e1471;hpb=f09c9895be486d30c9aa48da040c3aeb3ccbaa74;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Command.cpp b/src/XGUI/XGUI_Command.cpp index 4c4249c6f..1194dc454 100644 --- a/src/XGUI/XGUI_Command.cpp +++ b/src/XGUI/XGUI_Command.cpp @@ -1,42 +1,85 @@ #include "XGUI_Command.h" +#include +#include +#include +#include -#include - -XGUI_Command::XGUI_Command(QObject * parent) : - QWidgetAction(parent) +XGUI_Command::XGUI_Command(const QString& theId, + const QString& theDocumentKind, + QObject * parent, + bool isCheckable) + : QWidgetAction(parent), + myCheckable(isCheckable), + myDocumentKind(theDocumentKind) { + setData(theId); } -XGUI_Command::XGUI_Command(const QIcon& icon, const QString& text, QObject* parent): - QWidgetAction(parent) +XGUI_Command::XGUI_Command(const QString& theId, + const QString& theDocumentKind, + const QIcon& icon, + const QString& text, + QObject* parent, + bool isCheckable) + : QWidgetAction(parent), + myCheckable(isCheckable), + myDocumentKind(theDocumentKind) { - setIcon(icon); - setText(text); + setIcon(icon); + setText(text); + setData(theId); } - XGUI_Command::~XGUI_Command() { } +const QString& XGUI_Command::documentKind() const +{ + return myDocumentKind; +} + QWidget* XGUI_Command::createWidget(QWidget* theParent) { - if (theParent->inherits("XGUI_MenuGroupPanel")) { - QPushButton* aBtn = new QPushButton(theParent); - aBtn->setIcon(icon()); - aBtn->setText(text()); - QKeySequence aKeys = shortcut(); - QString aToolTip = toolTip(); - if (!aKeys.isEmpty()) - aToolTip = aToolTip + " (" + aKeys.toString() + ")"; - if (!aToolTip.isEmpty()) - aBtn->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; + if (theParent->inherits("XGUI_MenuGroupPanel")) { + QToolButton* aButton = new QToolButton(theParent); + aButton->setIcon(icon()); + aButton->setText(text()); + QKeySequence aKeys = shortcut(); + QString aToolTip = toolTip(); + if (!aKeys.isEmpty()) { + aToolTip = QString("%1 (%2)").arg(aToolTip).arg(aKeys.toString()); + aButton->setShortcut(aKeys); } - return QWidgetAction::createWidget(theParent); -} \ No newline at end of file + if (!aToolTip.isEmpty()) { + aButton->setToolTip(aToolTip); + } + aButton->setCheckable(myCheckable); + aButton->setAutoRaise(true); + aButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + aButton->setMinimumSize(MIN_BUTTON_WIDTH, MIN_BUTTON_HEIGHT); + aButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); + + connect(aButton, SIGNAL(clicked()), this, SLOT(trigger())); + connect(this, SIGNAL(toggled(bool)), aButton, SLOT(setChecked(bool))); + this->setCheckable(myCheckable); + + return aButton; + } + return QWidgetAction::createWidget(theParent); +} + +void XGUI_Command::connectTo(const QObject* theResiver, const char* theSlot) +{ + connect(this, SIGNAL(triggered(bool)), theResiver, theSlot); +} + +const QStringList& XGUI_Command::nestedCommands() const +{ + return myNestedCommands; +} + +void XGUI_Command::setNestedCommands(const QStringList& myUnblockableCommands) +{ + this->myNestedCommands = myUnblockableCommands; +}