File indexing completed on 2024-05-19 05:13:17
0001 /* 0002 This file is part of Akonadi. 0003 0004 SPDX-FileCopyrightText: 2006 Tobias Koenig <tokoe@kde.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "mainwidget.h" 0010 0011 #include "agentwidget.h" 0012 #include "config-akonadiconsole.h" 0013 #include "dbbrowser.h" 0014 #include "dbconsole.h" 0015 #include "debugwidget.h" 0016 #if ENABLE_SEARCH 0017 #include "searchwidget.h" 0018 #endif 0019 #include "jobtrackerwidget.h" 0020 #include "logging.h" 0021 #include "monitorswidget.h" 0022 #include "notificationmonitor.h" 0023 #include "querydebugger.h" 0024 0025 #include <Akonadi/AgentFilterProxyModel> 0026 #include <Akonadi/AgentInstanceWidget> 0027 #include <Akonadi/ControlGui> 0028 #include <Akonadi/SearchCreateJob> 0029 #include <Akonadi/ServerManager> 0030 0031 #include <KActionCollection> 0032 #include <KLocalizedString> 0033 #include <KXmlGuiWindow> 0034 #include <QAction> 0035 #include <QTabWidget> 0036 0037 #include <QVBoxLayout> 0038 0039 MainWidget::MainWidget(KXmlGuiWindow *parent) 0040 : QWidget(parent) 0041 { 0042 auto layout = new QVBoxLayout(this); 0043 0044 auto tabWidget = new QTabWidget(this); 0045 tabWidget->setObjectName(QLatin1StringView("mainTab")); 0046 layout->addWidget(tabWidget); 0047 0048 tabWidget->addTab(new AgentWidget(tabWidget), i18n("Agents")); 0049 mBrowser = new BrowserWidget(parent, tabWidget); 0050 tabWidget->addTab(mBrowser, i18n("Browser")); 0051 tabWidget->addTab(new DebugWidget(tabWidget), i18n("Debugger")); 0052 tabWidget->addTab(new Logging(tabWidget), i18n("Logging")); 0053 tabWidget->addTab(new DbBrowser(tabWidget), i18n("DB Browser")); 0054 tabWidget->addTab(new DbConsole(tabWidget), i18n("DB Console")); 0055 tabWidget->addTab(new QueryDebugger(tabWidget), i18n("Query Debugger")); 0056 tabWidget->addTab(new JobTrackerWidget("jobtracker", tabWidget, i18n("Enable job tracker")), i18n("Job Tracker")); 0057 tabWidget->addTab(new JobTrackerWidget("resourcesJobtracker", tabWidget, i18n("Enable tracking of Resource Schedulers")), i18n("Resources Schedulers")); 0058 tabWidget->addTab(new NotificationMonitor(tabWidget), i18n("Notification Monitor")); 0059 #if ENABLE_SEARCH 0060 tabWidget->addTab(new SearchWidget(tabWidget), i18n("Item Search")); 0061 #endif 0062 tabWidget->addTab(new MonitorsWidget(tabWidget), i18n("Monitors")); 0063 0064 auto action = parent->actionCollection()->addAction(QStringLiteral("akonadiconsole_akonadi2xml")); 0065 action->setText(i18n("Dump to XML...")); 0066 connect(action, &QAction::triggered, mBrowser, &BrowserWidget::dumpToXml); 0067 0068 action = parent->actionCollection()->addAction(QStringLiteral("akonadiconsole_clearcache")); 0069 action->setText(i18n("Clear Akonadi Cache")); 0070 connect(action, &QAction::triggered, mBrowser, &BrowserWidget::clearCache); 0071 0072 action = parent->actionCollection()->addAction(QStringLiteral("akonadiserver_start")); 0073 action->setText(i18n("Start Server")); 0074 connect(action, &QAction::triggered, this, &MainWidget::startServer); 0075 0076 action = parent->actionCollection()->addAction(QStringLiteral("akonadiserver_stop")); 0077 action->setText(i18n("Stop Server")); 0078 connect(action, &QAction::triggered, this, &MainWidget::stopServer); 0079 0080 action = parent->actionCollection()->addAction(QStringLiteral("akonadiserver_restart")); 0081 action->setText(i18n("Restart Server")); 0082 connect(action, &QAction::triggered, this, &MainWidget::restartServer); 0083 } 0084 0085 MainWidget::~MainWidget() 0086 { 0087 delete mBrowser; 0088 } 0089 0090 void MainWidget::startServer() 0091 { 0092 Akonadi::ServerManager::start(); 0093 } 0094 0095 void MainWidget::stopServer() 0096 { 0097 Akonadi::ServerManager::stop(); 0098 } 0099 0100 void MainWidget::restartServer() 0101 { 0102 Akonadi::ControlGui::restart(this); 0103 } 0104 0105 #include "moc_mainwidget.cpp"