File indexing completed on 2025-02-16 13:11:55
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2013 Benjamin Port <benjamin.port@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #include <QApplication> 0009 #include <QLineEdit> 0010 #include <QMainWindow> 0011 #include <QPushButton> 0012 #include <QString> 0013 #include <QToolBar> 0014 #include <QVBoxLayout> 0015 0016 #include <ktoolbarlabelaction.h> 0017 0018 class MainWindow : public QMainWindow 0019 { 0020 Q_OBJECT 0021 private Q_SLOTS: 0022 void updateLabel1() 0023 { 0024 label1->setText(labelText->text()); 0025 } 0026 0027 public: 0028 MainWindow() 0029 { 0030 QWidget *mainWidget = new QWidget(this); 0031 setCentralWidget(mainWidget); 0032 0033 QVBoxLayout *layout = new QVBoxLayout(mainWidget); 0034 layout->setContentsMargins(0, 0, 0, 0); 0035 layout->setSpacing(0); 0036 QToolBar *toolBar = addToolBar(QStringLiteral("Toolbar")); 0037 0038 labelText = new QLineEdit(); 0039 QPushButton *validateButton = new QPushButton(QStringLiteral("Update label")); 0040 0041 layout->addWidget(labelText); 0042 layout->addWidget(validateButton); 0043 connect(validateButton, &QAbstractButton::clicked, this, &MainWindow::updateLabel1); 0044 0045 QWidgetAction *lineEditAction2 = new QWidgetAction(toolBar); 0046 QLineEdit *lineEdit2 = new QLineEdit; 0047 lineEditAction2->setDefaultWidget(lineEdit2); 0048 label1 = new KToolBarLabelAction(QStringLiteral("&Label 1"), toolBar); 0049 label2 = new KToolBarLabelAction(lineEditAction2, QStringLiteral("&Second label"), toolBar); 0050 QWidgetAction *lineEditAction = new QWidgetAction(toolBar); 0051 QLineEdit *lineEdit = new QLineEdit; 0052 lineEditAction->setDefaultWidget(lineEdit); 0053 // set buddy for label1 0054 label1->setBuddy(lineEditAction); 0055 toolBar->addAction(label1); 0056 toolBar->addAction(lineEditAction); 0057 toolBar->addAction(label2); 0058 toolBar->addAction(lineEditAction2); 0059 } 0060 0061 QLineEdit *labelText; 0062 KToolBarLabelAction *label1; 0063 KToolBarLabelAction *label2; 0064 }; 0065 0066 int main(int argc, char **argv) 0067 { 0068 QApplication::setApplicationName(QStringLiteral("Test KToolBarLabelAction")); 0069 QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true); 0070 QApplication app(argc, argv); 0071 0072 MainWindow *window = new MainWindow; 0073 window->show(); 0074 0075 return app.exec(); 0076 } 0077 0078 #include "ktoolbarlabelactiontest.moc"