File indexing completed on 2025-02-16 13:11:54
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::setAttribute(Qt::AA_UseHighDpiPixmaps, true); 0022 QApplication app(argc, argv); 0023 0024 QWidget parentWidget; 0025 SelectActionTest *test = new SelectActionTest(&parentWidget); 0026 test->show(); 0027 0028 return app.exec(); 0029 } 0030 0031 SelectActionTest::SelectActionTest(QWidget *parent) 0032 : QMainWindow(parent) 0033 , m_comboSelect(new KSelectAction(QStringLiteral("Combo Selection"), this)) 0034 , m_buttonSelect(new KSelectAction(QStringLiteral("Button Selection"), this)) 0035 { 0036 for (int i = 0; i < 7; ++i) { 0037 QAction *action = m_comboSelect->addAction(QStringLiteral("Combo Action %1").arg(i)); 0038 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0039 action = m_buttonSelect->addAction(QStringLiteral("Action %1").arg(i)); 0040 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0041 } 0042 0043 m_comboSelect->setToolBarMode(KSelectAction::ComboBoxMode); 0044 m_comboSelect->setWhatsThis(QStringLiteral("What's this?")); 0045 0046 connect(m_comboSelect, qOverload<QAction *>(&KSelectAction::triggered), this, &SelectActionTest::actionTriggered); 0047 connect(m_comboSelect, &KSelectAction::indexTriggered, this, &SelectActionTest::indexTriggered); 0048 connect(m_comboSelect, &KSelectAction::textTriggered, this, &SelectActionTest::textTriggered); 0049 0050 m_buttonSelect->setToolBarMode(KSelectAction::MenuMode); 0051 m_buttonSelect->setWhatsThis(QStringLiteral("What's this?")); 0052 connect(m_buttonSelect, qOverload<QAction *>(&KSelectAction::triggered), this, &SelectActionTest::actionTriggered); 0053 connect(m_buttonSelect, &KSelectAction::indexTriggered, this, &SelectActionTest::indexTriggered); 0054 connect(m_buttonSelect, &KSelectAction::textTriggered, this, &SelectActionTest::textTriggered); 0055 0056 menuBar()->addAction(m_comboSelect); 0057 menuBar()->addAction(m_buttonSelect); 0058 menuBar()->addAction(QStringLiteral("Add an action"), this, &SelectActionTest::addAction); 0059 menuBar()->addAction(QStringLiteral("Remove an action"), this, &SelectActionTest::removeAction); 0060 0061 QToolBar *toolBar = addToolBar(QStringLiteral("Test")); 0062 toolBar->addAction(m_comboSelect); 0063 toolBar->addAction(m_buttonSelect); 0064 } 0065 0066 void SelectActionTest::actionTriggered(QAction *action) 0067 { 0068 qDebug() << Q_FUNC_INFO << action; 0069 } 0070 0071 void SelectActionTest::indexTriggered(int index) 0072 { 0073 qDebug() << Q_FUNC_INFO << index; 0074 } 0075 0076 void SelectActionTest::textTriggered(const QString &text) 0077 { 0078 qDebug() << Q_FUNC_INFO << '"' << text << '"'; 0079 } 0080 0081 void SelectActionTest::addAction() 0082 { 0083 QAction *action = m_comboSelect->addAction(QStringLiteral("Combo Action %1").arg(m_comboSelect->actions().count())); 0084 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0085 action = m_buttonSelect->addAction(QStringLiteral("Action %1").arg(m_buttonSelect->actions().count())); 0086 connect(action, &QAction::triggered, this, &SelectActionTest::slotActionTriggered); 0087 } 0088 0089 void SelectActionTest::removeAction() 0090 { 0091 if (!m_comboSelect->actions().isEmpty()) { 0092 m_comboSelect->removeAction(m_comboSelect->actions().last()); 0093 } 0094 0095 if (!m_buttonSelect->actions().isEmpty()) { 0096 m_buttonSelect->removeAction(m_buttonSelect->actions().last()); 0097 } 0098 } 0099 0100 void SelectActionTest::slotActionTriggered(bool state) 0101 { 0102 qDebug() << sender() << " state " << state; 0103 } 0104 0105 #include "moc_kselectactiontest.cpp"