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

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2014 Gregor Mi <codeminister@publicstatic.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #include "krecentfilesactiontest.h"
0009 
0010 #include <QApplication>
0011 #include <QDebug>
0012 
0013 #include "krecentfilesaction.h"
0014 #include "kstandardaction.h"
0015 #include <KConfigGroup>
0016 #include <KSharedConfig>
0017 
0018 #include "ui_krecentfilesactiontest.h"
0019 
0020 int main(int argc, char **argv)
0021 {
0022     QApplication app(argc, argv);
0023     KRecentFilesActionTest mainWindow;
0024     mainWindow.show();
0025     return app.exec();
0026 }
0027 
0028 class KRecentFilesActionTestPrivate
0029 {
0030 public:
0031     Ui::MainWindow *uiMainWindow;
0032     KRecentFilesAction *recentFiles;
0033 
0034 public:
0035     void notifyOutputAvailable()
0036     {
0037         uiMainWindow->labelOutputAvailable->setText(uiMainWindow->labelOutputAvailable->text() + QLatin1Char('A'));
0038         qDebug() << recentFiles->items();
0039     }
0040 
0041     KConfigGroup testConfigGroup()
0042     {
0043         return KConfigGroup(KSharedConfig::openConfig(), "RecentFilesActionTest");
0044     }
0045 };
0046 
0047 KRecentFilesActionTest::KRecentFilesActionTest()
0048     : d(new KRecentFilesActionTestPrivate)
0049 {
0050     d->uiMainWindow = new Ui::MainWindow();
0051     d->uiMainWindow->setupUi(this);
0052 
0053     d->recentFiles = KStandardAction::openRecent(this, &KRecentFilesActionTest::urlSelected, this);
0054 
0055     connect(d->uiMainWindow->pbAddUrl, &QPushButton::clicked, this, &KRecentFilesActionTest::addUrl);
0056     connect(d->uiMainWindow->pbLoadEntries, &QPushButton::clicked, this, &KRecentFilesActionTest::loadEntries);
0057     connect(d->uiMainWindow->pbSaveEntries, &QPushButton::clicked, this, &KRecentFilesActionTest::saveEntries);
0058 
0059     d->uiMainWindow->menuFile->addAction(d->recentFiles);
0060 
0061     // loadEntries();
0062 }
0063 
0064 KRecentFilesActionTest::~KRecentFilesActionTest()
0065 {
0066     // saveEntries();
0067 
0068     delete d->uiMainWindow;
0069     delete d;
0070 }
0071 
0072 void KRecentFilesActionTest::urlSelected(const QUrl &url)
0073 {
0074     qDebug() << "urlSelected" << url;
0075     d->notifyOutputAvailable();
0076 }
0077 
0078 void KRecentFilesActionTest::addUrl()
0079 {
0080     QString url = d->uiMainWindow->lineEditUrl->text();
0081     qDebug() << "addUrl" << url;
0082 
0083     d->recentFiles->addUrl(QUrl(url));
0084 
0085     d->notifyOutputAvailable();
0086     d->uiMainWindow->lineEditUrl->setText(url + QLatin1Char('a'));
0087 }
0088 
0089 void KRecentFilesActionTest::loadEntries()
0090 {
0091     d->notifyOutputAvailable();
0092     qDebug() << "recentFiles->loadEntries()";
0093     d->recentFiles->loadEntries(d->testConfigGroup());
0094     d->notifyOutputAvailable();
0095 }
0096 
0097 void KRecentFilesActionTest::saveEntries()
0098 {
0099     qDebug() << "recentFiles->saveEntries()";
0100     d->recentFiles->saveEntries(d->testConfigGroup());
0101 }
0102 
0103 #include "moc_krecentfilesactiontest.cpp"