diff options
author | Mailson Menezes <mailson.menezes@openbossa.org> | 2012-03-28 16:30:42 -0300 |
---|---|---|
committer | Anselmo L. S. Melo <anselmo.melo@openbossa.org> | 2012-04-04 19:31:16 +0200 |
commit | 0f3229cc2aefd25c1b6c50fc7dbef6a817647e13 (patch) | |
tree | 009d0683099847f62fbd870f34eecaf3cf67ce4b | |
parent | 0469fb080dfcf609c463ee142a59c4b67a7d3e3d (diff) |
Uncomment some useful properties of UiAction
Some properties such as 'visible', 'tooltip' and 'whatsThis' were
previously commented out but they're actually still useful for UiAction.
Change-Id: I57ae6fe0f4ab60292dc1dc868685061477feebe4
Reviewed-by: Anselmo L. S. Melo <anselmo.melo@openbossa.org>
-rw-r--r-- | src/utils/uiaction.cpp | 185 | ||||
-rw-r--r-- | src/utils/uiaction.h | 30 | ||||
-rw-r--r-- | src/utils/uiaction_p.h | 10 | ||||
-rw-r--r-- | src/utils/uiactiongroup.cpp | 44 | ||||
-rw-r--r-- | src/utils/uiactiongroup.h | 6 | ||||
-rw-r--r-- | tests/auto/utils/uiaction/tst_uiaction.cpp | 78 | ||||
-rw-r--r-- | tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp | 74 |
7 files changed, 211 insertions, 216 deletions
diff --git a/src/utils/uiaction.cpp b/src/utils/uiaction.cpp index 09f43fe..fa70328 100644 --- a/src/utils/uiaction.cpp +++ b/src/utils/uiaction.cpp @@ -91,7 +91,7 @@ static QString qt_strippedText(QString s) UiActionPrivate::UiActionPrivate() : group(0), enabled(1), forceDisabled(0), // visible(1), forceInvisible(0), checkable(0), checked(0), separator(0), fontSet(false), - checkable(0), checked(0), + visible(1), forceInvisible(0), checkable(0), checked(0), forceEnabledInSoftkeys(false), menuActionSoftkeys(false), // iconVisibleInMenu(-1), menuRole(UiAction::TextHeuristicRole), softKeyRole(UiAction::NoSoftKey), @@ -775,10 +775,10 @@ QString UiAction::text() const { Q_D(const UiAction); QString s = d->text; - // if (s.isEmpty()) { - // s = d->iconText; - // s.replace(QLatin1Char('&'), QLatin1String("&&")); - // } + if (s.isEmpty()) { + s = d->iconText; + s.replace(QLatin1Char('&'), QLatin1String("&&")); + } return s; } @@ -787,7 +787,7 @@ QString UiAction::text() const /*! - \property QAction::iconText + \property UiAction::iconText \brief the action's descriptive icon text If QToolBar::toolButtonStyle is set to a value that permits text to @@ -805,26 +805,26 @@ QString UiAction::text() const \sa setToolTip(), setStatusTip() */ -// void QAction::setIconText(const QString &text) -// { -// Q_D(QAction); -// if (d->iconText == text) -// return; -// -// d->iconText = text; -// d->sendDataChanged(); -// } +void UiAction::setIconText(const QString &text) +{ + Q_D(UiAction); + if (d->iconText == text) + return; -// QString QAction::iconText() const -// { -// Q_D(const QAction); -// if (d->iconText.isEmpty()) -// return qt_strippedText(d->text); -// return d->iconText; -// } + d->iconText = text; + d->sendDataChanged(); +} + +QString UiAction::iconText() const +{ + Q_D(const UiAction); + if (d->iconText.isEmpty()) + return qt_strippedText(d->text); + return d->iconText; +} /*! - \property QAction::toolTip + \property UiAction::toolTip \brief the action's tooltip This text is used for the tooltip. If no tooltip is specified, @@ -834,29 +834,29 @@ QString UiAction::text() const \sa setStatusTip() setShortcut() */ -// void QAction::setToolTip(const QString &tooltip) -// { -// Q_D(QAction); -// if (d->tooltip == tooltip) -// return; -// -// d->tooltip = tooltip; -// d->sendDataChanged(); -// } +void UiAction::setToolTip(const QString &tooltip) +{ + Q_D(UiAction); + if (d->tooltip == tooltip) + return; -// QString QAction::toolTip() const -// { -// Q_D(const QAction); -// if (d->tooltip.isEmpty()) { -// if (!d->text.isEmpty()) -// return qt_strippedText(d->text); -// return qt_strippedText(d->iconText); -// } -// return d->tooltip; -// } + d->tooltip = tooltip; + d->sendDataChanged(); +} + +QString UiAction::toolTip() const +{ + Q_D(const UiAction); + if (d->tooltip.isEmpty()) { + if (!d->text.isEmpty()) + return qt_strippedText(d->text); + return qt_strippedText(d->iconText); + } + return d->tooltip; +} /*! - \property QAction::statusTip + \property UiAction::statusTip \brief the action's status tip The status tip is displayed on all status bars provided by the @@ -866,24 +866,24 @@ QString UiAction::text() const \sa setToolTip() showStatusText() */ -// void QAction::setStatusTip(const QString &statustip) -// { -// Q_D(QAction); -// if (d->statustip == statustip) -// return; -// -// d->statustip = statustip; -// d->sendDataChanged(); -// } +void UiAction::setStatusTip(const QString &statustip) +{ + Q_D(UiAction); + if (d->statustip == statustip) + return; -// QString QAction::statusTip() const -// { -// Q_D(const QAction); -// return d->statustip; -// } + d->statustip = statustip; + d->sendDataChanged(); +} + +QString UiAction::statusTip() const +{ + Q_D(const UiAction); + return d->statustip; +} /*! - \property QAction::whatsThis + \property UiAction::whatsThis \brief the action's "What's This?" help text The "What's This?" text is used to provide a brief description of @@ -892,21 +892,21 @@ QString UiAction::text() const \sa QWhatsThis Q3StyleSheet */ -// void QAction::setWhatsThis(const QString &whatsthis) -// { -// Q_D(QAction); -// if (d->whatsthis == whatsthis) -// return; -// -// d->whatsthis = whatsthis; -// d->sendDataChanged(); -// } +void UiAction::setWhatsThis(const QString &whatsthis) +{ + Q_D(UiAction); + if (d->whatsthis == whatsthis) + return; -// QString QAction::whatsThis() const -// { -// Q_D(const QAction); -// return d->whatsthis; -// } + d->whatsthis = whatsthis; + d->sendDataChanged(); +} + +QString UiAction::whatsThis() const +{ + Q_D(const UiAction); + return d->whatsthis; +} /*! \enum QAction::Priority @@ -1066,8 +1066,7 @@ void UiAction::setEnabled(bool b) if (b == d->enabled && b != d->forceDisabled) return; d->forceDisabled = !b; - // if (b && (!d->visible || (d->group && !d->group->isEnabled()))) - if (b && (d->group && !d->group->isEnabled())) + if (b && (!d->visible || (d->group && !d->group->isEnabled()))) return; QAPP_CHECK("setEnabled"); d->enabled = b; @@ -1096,27 +1095,27 @@ bool UiAction::isEnabled() const By default, this property is true (actions are visible). */ -// void QAction::setVisible(bool b) -// { -// Q_D(QAction); -// if (b == d->visible && b != d->forceInvisible) -// return; -// QAPP_CHECK("setVisible"); -// d->forceInvisible = !b; -// d->visible = b; -// d->enabled = b && !d->forceDisabled && (!d->group || d->group->isEnabled()) ; -// #ifndef QT_NO_SHORTCUT -// d->setShortcutEnabled(d->enabled, qApp->d_func()->shortcutMap); -// #endif -// d->sendDataChanged(); -// } +void UiAction::setVisible(bool b) +{ + Q_D(UiAction); + if (b == d->visible && b != d->forceInvisible) + return; + QAPP_CHECK("setVisible"); + d->forceInvisible = !b; + d->visible = b; + d->enabled = b && !d->forceDisabled && (!d->group || d->group->isEnabled()) ; +#ifndef QT_NO_SHORTCUT + d->setShortcutEnabled(d->enabled, qApp->d_func()->shortcutMap); +#endif + d->sendDataChanged(); +} -// bool QAction::isVisible() const -// { -// Q_D(const QAction); -// return d->visible; -// } +bool UiAction::isVisible() const +{ + Q_D(const UiAction); + return d->visible; +} /*! \reimp diff --git a/src/utils/uiaction.h b/src/utils/uiaction.h index 4de65b0..635a17c 100644 --- a/src/utils/uiaction.h +++ b/src/utils/uiaction.h @@ -87,17 +87,17 @@ class UIHELPERS_EXPORT UiAction : public QObject Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY changed) // Q_PROPERTY(QIcon icon READ icon WRITE setIcon NOTIFY changed) Q_PROPERTY(QString text READ text WRITE setText NOTIFY changed) - // Q_PROPERTY(QString iconText READ iconText WRITE setIconText NOTIFY changed) - // Q_PROPERTY(QString toolTip READ toolTip WRITE setToolTip NOTIFY changed) - // Q_PROPERTY(QString statusTip READ statusTip WRITE setStatusTip NOTIFY changed) - // Q_PROPERTY(QString whatsThis READ whatsThis WRITE setWhatsThis NOTIFY changed) + Q_PROPERTY(QString iconText READ iconText WRITE setIconText NOTIFY changed) + Q_PROPERTY(QString toolTip READ toolTip WRITE setToolTip NOTIFY changed) + Q_PROPERTY(QString statusTip READ statusTip WRITE setStatusTip NOTIFY changed) + Q_PROPERTY(QString whatsThis READ whatsThis WRITE setWhatsThis NOTIFY changed) // Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY changed) #ifndef QT_NO_SHORTCUT Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut NOTIFY changed) Q_PROPERTY(Qt::ShortcutContext shortcutContext READ shortcutContext WRITE setShortcutContext NOTIFY changed) Q_PROPERTY(bool autoRepeat READ autoRepeat WRITE setAutoRepeat NOTIFY changed) #endif - // Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY changed) + Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY changed) Q_PROPERTY(MenuRole menuRole READ menuRole WRITE setMenuRole NOTIFY changed) Q_PROPERTY(SoftKeyRole softKeyRole READ softKeyRole WRITE setSoftKeyRole NOTIFY changed) // Q_PROPERTY(bool iconVisibleInMenu READ isIconVisibleInMenu WRITE setIconVisibleInMenu NOTIFY changed) @@ -125,17 +125,17 @@ public: void setText(const QString &text); QString text() const; - // void setIconText(const QString &text); - // QString iconText() const; + void setIconText(const QString &text); + QString iconText() const; - // void setToolTip(const QString &tip); - // QString toolTip() const; + void setToolTip(const QString &tip); + QString toolTip() const; - // void setStatusTip(const QString &statusTip); - // QString statusTip() const; + void setStatusTip(const QString &statusTip); + QString statusTip() const; - // void setWhatsThis(const QString &what); - // QString whatsThis() const; + void setWhatsThis(const QString &what); + QString whatsThis() const; void setPriority(Priority priority); Priority priority() const; @@ -176,7 +176,7 @@ public: bool isEnabled() const; - // bool isVisible() const; + bool isVisible() const; enum ActionEvent { Trigger, Hover }; void activate(ActionEvent event); @@ -210,7 +210,7 @@ public Q_SLOTS: void toggle(); void setEnabled(bool); inline void setDisabled(bool b) { setEnabled(!b); } - // void setVisible(bool); + void setVisible(bool); Q_SIGNALS: void changed(); diff --git a/src/utils/uiaction_p.h b/src/utils/uiaction_p.h index 0e44213..ecb5600 100644 --- a/src/utils/uiaction_p.h +++ b/src/utils/uiaction_p.h @@ -83,11 +83,11 @@ public: QPointer<UiActionGroup> group; QString text; - // QString iconText; + QString iconText; // QIcon icon; - // QString tooltip; - // QString statustip; - // QString whatsthis; + QString tooltip; + QString statustip; + QString whatsthis; #ifndef QT_NO_SHORTCUT QKeySequence shortcut; QList<QKeySequence> alternateShortcuts; @@ -102,7 +102,7 @@ public: // QFont font; // QPointer<QMenu> menu; uint enabled : 1, forceDisabled : 1; - // uint visible : 1, forceInvisible : 1; + uint visible : 1, forceInvisible : 1; uint checkable : 1; uint checked : 1; // uint separator : 1; diff --git a/src/utils/uiactiongroup.cpp b/src/utils/uiactiongroup.cpp index 6521ab8..0d2c343 100644 --- a/src/utils/uiactiongroup.cpp +++ b/src/utils/uiactiongroup.cpp @@ -55,12 +55,12 @@ class UiActionGroupPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(UiActionGroup) public: // QActionGroupPrivate() : exclusive(1), enabled(1), visible(1) { } - UiActionGroupPrivate() : exclusive(1), enabled(1) { } + UiActionGroupPrivate() : exclusive(1), enabled(1), visible(1) { } QList<UiAction *> actions; QPointer<UiAction> current; uint exclusive : 1; uint enabled : 1; - // uint visible : 1; + uint visible : 1; private: void _q_actionTriggered(); //private slot @@ -188,10 +188,10 @@ UiAction *UiActionGroup::addAction(UiAction* a) a->setEnabled(d->enabled); a->d_func()->forceDisabled = false; } - // if (!a->d_func()->forceInvisible) { - // a->setVisible(d->visible); - // a->d_func()->forceInvisible = false; - // } + if (!a->d_func()->forceInvisible) { + a->setVisible(d->visible); + a->d_func()->forceInvisible = false; + } if (a->isChecked()) d->current = a; UiActionGroup *oldGroup = a->d_func()->group; @@ -336,23 +336,23 @@ UiAction *UiActionGroup::checkedAction() const \sa QAction::setEnabled() */ -// void QActionGroup::setVisible(bool b) -// { -// Q_D(QActionGroup); -// d->visible = b; -// for (QList<QAction*>::Iterator it = d->actions.begin(); it != d->actions.end(); ++it) { -// if (!(*it)->d_func()->forceInvisible) { -// (*it)->setVisible(b); -// (*it)->d_func()->forceInvisible = false; -// } -// } -// } +void UiActionGroup::setVisible(bool b) +{ + Q_D(UiActionGroup); + d->visible = b; + for (QList<UiAction*>::Iterator it = d->actions.begin(); it != d->actions.end(); ++it) { + if (!(*it)->d_func()->forceInvisible) { + (*it)->setVisible(b); + (*it)->d_func()->forceInvisible = false; + } + } +} -// bool QActionGroup::isVisible() const -// { -// Q_D(const QActionGroup); -// return d->visible; -// } +bool UiActionGroup::isVisible() const +{ + Q_D(const UiActionGroup); + return d->visible; +} /*! \fn void QActionGroup::triggered(QAction *action) diff --git a/src/utils/uiactiongroup.h b/src/utils/uiactiongroup.h index b1f29ab..25916c8 100644 --- a/src/utils/uiactiongroup.h +++ b/src/utils/uiactiongroup.h @@ -62,7 +62,7 @@ class UIHELPERS_EXPORT UiActionGroup : public QObject Q_PROPERTY(bool exclusive READ isExclusive WRITE setExclusive) Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled) - // Q_PROPERTY(bool visible READ isVisible WRITE setVisible) + Q_PROPERTY(bool visible READ isVisible WRITE setVisible) public: explicit UiActionGroup(QObject* parent); @@ -77,13 +77,13 @@ public: UiAction *checkedAction() const; bool isExclusive() const; bool isEnabled() const; - // bool isVisible() const; + bool isVisible() const; public Q_SLOTS: void setEnabled(bool); inline void setDisabled(bool b) { setEnabled(!b); } - // void setVisible(bool); + void setVisible(bool); void setExclusive(bool); Q_SIGNALS: diff --git a/tests/auto/utils/uiaction/tst_uiaction.cpp b/tests/auto/utils/uiaction/tst_uiaction.cpp index edab551..919ac99 100644 --- a/tests/auto/utils/uiaction/tst_uiaction.cpp +++ b/tests/auto/utils/uiaction/tst_uiaction.cpp @@ -73,13 +73,13 @@ private slots: void getSetCheck(); void setText_data(); void setText(); - // void setIconText_data() { setText_data(); } - // void setIconText(); + void setIconText_data() { setText_data(); } + void setIconText(); void actionEvent(); // void setStandardKeys(); // void alternateShortcuts(); - // void enabledVisibleInteraction(); // void task200823_tooltip(); + void enabledVisibleInteraction(); void task229128TriggeredSignalWithoutActiongroup(); void task229128TriggeredSignalWhenInActiongroup(); @@ -223,16 +223,13 @@ void tst_UiAction::cleanupTestCase() void tst_UiAction::setText_data() { QTest::addColumn<QString>("text"); - // QTest::addColumn<QString>("iconText"); - // QTest::addColumn<QString>("textFromIconText"); + QTest::addColumn<QString>("iconText"); + QTest::addColumn<QString>("textFromIconText"); //next we fill it with data - // QTest::newRow("Normal") << "Action" << "Action" << "Action"; - // QTest::newRow("Ampersand") << "Search && Destroy" << "Search & Destroy" << "Search && Destroy"; - // QTest::newRow("Mnemonic and ellipsis") << "O&pen File ..." << "Open File" << "Open File"; - QTest::newRow("Normal") << "Action"; - QTest::newRow("Ampersand") << "Search && Destroy"; - QTest::newRow("Mnemonic and ellipsis") << "O&pen File ..."; + QTest::newRow("Normal") << "Action" << "Action" << "Action"; + QTest::newRow("Ampersand") << "Search && Destroy" << "Search & Destroy" << "Search && Destroy"; + QTest::newRow("Mnemonic and ellipsis") << "O&pen File ..." << "Open File" << "Open File"; } void tst_UiAction::setText() @@ -244,21 +241,21 @@ void tst_UiAction::setText() QCOMPARE(action.text(), text); - // QFETCH(QString, iconText); - // QCOMPARE(action.iconText(), iconText); + QFETCH(QString, iconText); + QCOMPARE(action.iconText(), iconText); } -// void tst_QAction::setIconText() -// { -// QFETCH(QString, iconText); -// -// QAction action(0); -// action.setIconText(iconText); -// QCOMPARE(action.iconText(), iconText); -// -// QFETCH(QString, textFromIconText); -// QCOMPARE(action.text(), textFromIconText); -// } +void tst_UiAction::setIconText() +{ + QFETCH(QString, iconText); + + UiAction action(0); + action.setIconText(iconText); + QCOMPARE(action.iconText(), iconText); + + QFETCH(QString, textFromIconText); + QCOMPARE(action.text(), textFromIconText); +} // TODO: Use a QObject instead of a QWidget and reimplement QActionEvent @@ -363,22 +360,21 @@ void tst_UiAction::actionEvent() // QTest::keyClick(wid, Qt::Key_A, Qt::ControlModifier); // } -// TODO: Needs 'enable' property to run the test -// void tst_QAction::enabledVisibleInteraction() -// { -// QAction act(0); -// // check defaults -// QVERIFY(act.isEnabled()); -// QVERIFY(act.isVisible()); -// -// // !visible => !enabled -// act.setVisible(false); -// QVERIFY(!act.isEnabled()); -// act.setVisible(true); -// QVERIFY(act.isEnabled()); -// act.setEnabled(false); -// QVERIFY(act.isVisible()); -// +void tst_UiAction::enabledVisibleInteraction() +{ + UiAction act(0); + // check defaults + QVERIFY(act.isEnabled()); + QVERIFY(act.isVisible()); + + // !visible => !enabled + act.setVisible(false); + QVERIFY(!act.isEnabled()); + act.setVisible(true); + QVERIFY(act.isEnabled()); + act.setEnabled(false); + QVERIFY(act.isVisible()); + // // check if shortcut is disabled if not visible // m_tstWidget->addAction(&act); // act.setShortcut(QKeySequence("Ctrl+T")); @@ -395,7 +391,7 @@ void tst_UiAction::actionEvent() // act.setEnabled(true); // QTest::keyClick(m_tstWidget, Qt::Key_T, Qt::ControlModifier); // QCOMPARE(spy.count(), 1); //act is visible and enabled, so trigger -// } +} // void tst_QAction::task200823_tooltip() // { diff --git a/tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp b/tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp index d000c93..2b10c35 100644 --- a/tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp +++ b/tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp @@ -55,7 +55,7 @@ class tst_UiActionGroup : public QObject private slots: void enabledPropagation(); - // void visiblePropagation(); + void visiblePropagation(); void exclusive(); // void separators(); void testActionInTwoUiActionGroup(); @@ -101,42 +101,42 @@ void tst_UiActionGroup::enabledPropagation() delete freeAction; } -// void tst_QActionGroup::visiblePropagation() -// { -// QActionGroup testActionGroup( 0 ); -// -// QAction* childAction = new QAction( &testActionGroup ); -// QAction* anotherChildAction = new QAction( &testActionGroup ); -// QAction* freeAction = new QAction(0); -// -// QVERIFY( testActionGroup.isVisible() ); -// QVERIFY( childAction->isVisible() ); -// -// testActionGroup.setVisible( false ); -// QVERIFY( !testActionGroup.isVisible() ); -// QVERIFY( !childAction->isVisible() ); -// QVERIFY( !anotherChildAction->isVisible() ); -// -// anotherChildAction->setVisible(false); -// -// testActionGroup.setVisible( true ); -// QVERIFY( testActionGroup.isVisible() ); -// QVERIFY( childAction->isVisible() ); -// -// QVERIFY( !anotherChildAction->isVisible() ); -// -// testActionGroup.setVisible( false ); -// QAction *lastChildAction = new QAction(&testActionGroup); -// -// QVERIFY(!lastChildAction->isVisible()); -// testActionGroup.setVisible( true ); -// QVERIFY(lastChildAction->isVisible()); -// -// freeAction->setVisible(false); -// testActionGroup.addAction(freeAction); -// QVERIFY(!freeAction->isVisible()); -// delete freeAction; -// } +void tst_UiActionGroup::visiblePropagation() +{ + UiActionGroup testActionGroup( 0 ); + + UiAction* childAction = new UiAction( &testActionGroup ); + UiAction* anotherChildAction = new UiAction( &testActionGroup ); + UiAction* freeAction = new UiAction(0); + + QVERIFY( testActionGroup.isVisible() ); + QVERIFY( childAction->isVisible() ); + + testActionGroup.setVisible( false ); + QVERIFY( !testActionGroup.isVisible() ); + QVERIFY( !childAction->isVisible() ); + QVERIFY( !anotherChildAction->isVisible() ); + + anotherChildAction->setVisible(false); + + testActionGroup.setVisible( true ); + QVERIFY( testActionGroup.isVisible() ); + QVERIFY( childAction->isVisible() ); + + QVERIFY( !anotherChildAction->isVisible() ); + + testActionGroup.setVisible( false ); + UiAction *lastChildAction = new UiAction(&testActionGroup); + + QVERIFY(!lastChildAction->isVisible()); + testActionGroup.setVisible( true ); + QVERIFY(lastChildAction->isVisible()); + + freeAction->setVisible(false); + testActionGroup.addAction(freeAction); + QVERIFY(!freeAction->isVisible()); + delete freeAction; +} void tst_UiActionGroup::exclusive() { |