File indexing completed on 2024-04-28 03:59:18
0001 /* 0002 SPDX-FileCopyrightText: 2006 Hamish Rodda <rodda@kde.org> 0003 SPDX-FileCopyrightText: 2006 Simon Hausmann <hausmann@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "kselectactiontest.h" 0009 0010 #include <QApplication> 0011 #include <QMenuBar> 0012 #include <QToolBar> 0013 0014 #include <QDebug> 0015 0016 #include <kselectaction.h> 0017 0018 int main(int argc, char **argv) 0019 { 0020 QApplication::setApplicationName(QStringLiteral("kselectactiontest")); 0021 QApplication app(argc, argv); 0022 0023 QWidget parentWidget; 0024 SelectActionTest *test = new SelectActionTest(&parentWidget); 0025 test->show(); 0026 0027 return app.exec(); 0028 } 0029 0030 SelectActionTest::SelectActionTest(QWidget *parent) 0031 : QMainWindow(parent) 0032 , m_comboSelect(new KSelectAction(QStringLiteral("Combo Selection"), this)) 0033 , m_buttonSelect(new KSelectAction(QStringLiteral("Button Selection"), this)) 0034 { 0035 for (int i = 0; i < 7; ++i) { 0036 QAction *action = m_comboSelect->addAction(QStringLiteral("Combo Action %1").arg(i)); 0037 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0038 action = m_buttonSelect->addAction(QStringLiteral("Action %1").arg(i)); 0039 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0040 } 0041 0042 m_comboSelect->setToolBarMode(KSelectAction::ComboBoxMode); 0043 m_comboSelect->setWhatsThis(QStringLiteral("What's this?")); 0044 0045 connect(m_comboSelect, &KSelectAction::actionTriggered, this, &SelectActionTest::actionTriggered); 0046 connect(m_comboSelect, &KSelectAction::indexTriggered, this, &SelectActionTest::indexTriggered); 0047 connect(m_comboSelect, &KSelectAction::textTriggered, this, &SelectActionTest::textTriggered); 0048 0049 m_buttonSelect->setToolBarMode(KSelectAction::MenuMode); 0050 m_buttonSelect->setWhatsThis(QStringLiteral("What's this?")); 0051 connect(m_buttonSelect, &KSelectAction::actionTriggered, this, &SelectActionTest::actionTriggered); 0052 connect(m_buttonSelect, &KSelectAction::indexTriggered, this, &SelectActionTest::indexTriggered); 0053 connect(m_buttonSelect, &KSelectAction::textTriggered, this, &SelectActionTest::textTriggered); 0054 0055 menuBar()->addAction(m_comboSelect); 0056 menuBar()->addAction(m_buttonSelect); 0057 menuBar()->addAction(QStringLiteral("Add an action"), this, &SelectActionTest::addAction); 0058 menuBar()->addAction(QStringLiteral("Remove an action"), this, &SelectActionTest::removeAction); 0059 0060 QToolBar *toolBar = addToolBar(QStringLiteral("Test")); 0061 toolBar->addAction(m_comboSelect); 0062 toolBar->addAction(m_buttonSelect); 0063 } 0064 0065 void SelectActionTest::actionTriggered(QAction *action) 0066 { 0067 qDebug() << Q_FUNC_INFO << action; 0068 } 0069 0070 void SelectActionTest::indexTriggered(int index) 0071 { 0072 qDebug() << Q_FUNC_INFO << index; 0073 } 0074 0075 void SelectActionTest::textTriggered(const QString &text) 0076 { 0077 qDebug() << Q_FUNC_INFO << '"' << text << '"'; 0078 } 0079 0080 void SelectActionTest::addAction() 0081 { 0082 QAction *action = m_comboSelect->addAction(QStringLiteral("Combo Action %1").arg(m_comboSelect->actions().count())); 0083 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0084 action = m_buttonSelect->addAction(QStringLiteral("Action %1").arg(m_buttonSelect->actions().count())); 0085 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0086 } 0087 0088 void SelectActionTest::removeAction() 0089 { 0090 if (!m_comboSelect->actions().isEmpty()) { 0091 m_comboSelect->removeAction(m_comboSelect->actions().last()); 0092 } 0093 0094 if (!m_buttonSelect->actions().isEmpty()) { 0095 m_buttonSelect->removeAction(m_buttonSelect->actions().last()); 0096 } 0097 } 0098 0099 void SelectActionTest::slotActionTriggered(bool state) 0100 { 0101 qDebug() << sender() << " state " << state; 0102 } 0103 0104 #include "moc_kselectactiontest.cpp"