File indexing completed on 2024-04-14 03:51:16

0001 /*
0002     This file is part of the KDE project
0003     SPDX-FileCopyrightText: 2013 Martin Gräßlin <mgraesslin@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include <KActionMenu>
0009 #include <kcolorschememanager.h>
0010 #include <kcolorschememenu.h>
0011 
0012 #include <QApplication>
0013 #include <QDialog>
0014 #include <QDialogButtonBox>
0015 #include <QListView>
0016 #include <QMainWindow>
0017 #include <QMenu>
0018 #include <QMenuBar>
0019 #include <QToolButton>
0020 #include <QVBoxLayout>
0021 
0022 class KColorSchemeDemo : public QMainWindow
0023 {
0024     Q_OBJECT
0025 public:
0026     KColorSchemeDemo()
0027         : QMainWindow(nullptr)
0028     {
0029         KColorSchemeManager *manager = new KColorSchemeManager(this);
0030 
0031         QListView *view = new QListView(this);
0032         view->setModel(manager->model());
0033         connect(view, &QListView::activated, manager, &KColorSchemeManager::activateScheme);
0034         manager->setAutosaveChanges(true);
0035 
0036         QDialogButtonBox *box = new QDialogButtonBox(QDialogButtonBox::Close, this);
0037         connect(box, &QDialogButtonBox::rejected, qApp, &QApplication::quit);
0038 
0039         QToolButton *button = new QToolButton(box);
0040         button->setIcon(QIcon::fromTheme(QStringLiteral("fill-color")));
0041         button->setMenu(KColorSchemeMenu::createMenu(manager, button)->menu());
0042         box->addButton(button, QDialogButtonBox::InvalidRole);
0043 
0044         QWidget *w = new QWidget();
0045         QVBoxLayout *layout = new QVBoxLayout(w);
0046         layout->addWidget(view);
0047         layout->addWidget(box);
0048 
0049         setCentralWidget(w);
0050 
0051         QMenu *menu = new QMenu("Menu", this);
0052         menu->addAction(KColorSchemeMenu::createMenu(manager, this));
0053         menuBar()->addMenu(menu);
0054     }
0055     ~KColorSchemeDemo() override
0056     {
0057     }
0058 };
0059 
0060 int main(int argc, char *argv[])
0061 {
0062     QApplication app(argc, argv);
0063 
0064     KColorSchemeDemo *d = new KColorSchemeDemo;
0065     d->show();
0066     return app.exec();
0067 }
0068 
0069 #include "kcolorschemedemo.moc"