Astyle kdelibs
[kdepim.git] / akonadiconsole / mainwidget.cpp
blobc231bc94671a9ea14aa676272e7555ec4d8e0b8f
1 /*
2 This file is part of Akonadi.
4 Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19 USA.
22 #include "mainwidget.h"
24 #include "agentwidget.h"
25 #include "dbbrowser.h"
26 #include "dbconsole.h"
27 #include "debugwidget.h"
28 #include "searchdialog.h"
29 #include "searchwidget.h"
30 #include "jobtrackerwidget.h"
31 #include "notificationmonitor.h"
32 #include "monitorswidget.h"
33 #include "querydebugger.h"
35 #include <AkonadiWidgets/agentinstancewidget.h>
36 #include <AkonadiCore/agentfilterproxymodel.h>
37 #include <AkonadiWidgets/controlgui.h>
38 #include <AkonadiCore/searchcreatejob.h>
39 #include <AkonadiCore/servermanager.h>
41 #include <QIcon>
42 #include <QAction>
43 #include <KActionCollection>
44 #include <QTabWidget>
45 #include <KXmlGuiWindow>
47 #include <QVBoxLayout>
49 MainWidget::MainWidget(KXmlGuiWindow *parent)
50 : QWidget(parent)
52 QVBoxLayout *layout = new QVBoxLayout(this);
54 QTabWidget *tabWidget = new QTabWidget(this);
55 tabWidget->setObjectName(QStringLiteral("mainTab"));
56 layout->addWidget(tabWidget);
58 tabWidget->addTab(new AgentWidget(tabWidget), QStringLiteral("Agents"));
59 mBrowser = new BrowserWidget(parent, tabWidget);
60 tabWidget->addTab(mBrowser, QStringLiteral("Browser"));
61 tabWidget->addTab(new DebugWidget(tabWidget), QStringLiteral("Debugger"));
62 tabWidget->addTab(new DbBrowser(tabWidget), QStringLiteral("DB Browser"));
63 tabWidget->addTab(new DbConsole(tabWidget), QStringLiteral("DB Console"));
64 tabWidget->addTab(new QueryDebugger(tabWidget), QStringLiteral("Query Debugger"));
65 tabWidget->addTab(new JobTrackerWidget("jobtracker", tabWidget, QStringLiteral("Enable job tracker")), QStringLiteral("Job Tracker"));
66 tabWidget->addTab(new JobTrackerWidget("resourcesJobtracker", tabWidget, QStringLiteral("Enable tracking of Resource Schedulers")), QStringLiteral("Resources Schedulers"));
67 tabWidget->addTab(new NotificationMonitor(tabWidget), QStringLiteral("Notification Monitor"));
68 tabWidget->addTab(new SearchWidget(tabWidget), QStringLiteral("Item Search"));
69 tabWidget->addTab(new MonitorsWidget(tabWidget), QStringLiteral("Monitors"));
71 QAction *action = parent->actionCollection()->addAction(QStringLiteral("akonadiconsole_search"));
72 action->setText(QStringLiteral("Create Search..."));
73 connect(action, &QAction::triggered, this, &MainWidget::createSearch);
75 action = parent->actionCollection()->addAction(QStringLiteral("akonadiconsole_akonadi2xml"));
76 action->setText(QStringLiteral("Dump to XML..."));
77 connect(action, &QAction::triggered, mBrowser, &BrowserWidget::dumpToXml);
79 action = parent->actionCollection()->addAction(QStringLiteral("akonadiconsole_clearcache"));
80 action->setText(QStringLiteral("Clear Akonadi Cache"));
81 connect(action, &QAction::triggered, mBrowser, &BrowserWidget::clearCache);
83 action = parent->actionCollection()->addAction(QStringLiteral("akonadiserver_start"));
84 action->setText(QStringLiteral("Start Server"));
85 connect(action, &QAction::triggered, this, &MainWidget::startServer);
87 action = parent->actionCollection()->addAction(QStringLiteral("akonadiserver_stop"));
88 action->setText(QStringLiteral("Stop Server"));
89 connect(action, &QAction::triggered, this, &MainWidget::stopServer);
91 action = parent->actionCollection()->addAction(QStringLiteral("akonadiserver_restart"));
92 action->setText(QStringLiteral("Restart Server"));
93 connect(action, &QAction::triggered, this, &MainWidget::restartServer);
96 MainWidget::~MainWidget()
98 delete mBrowser;
101 void MainWidget::createSearch()
103 //QT5 TODO need to reimplement it
104 #pragma message("port to QT5")
105 #if 0
106 SearchDialog dlg;
107 if (!dlg.exec()) {
108 return;
111 const QString query = dlg.searchQuery();
112 if (query.isEmpty()) {
113 return;
116 QString name = dlg.searchName();
117 if (name.isEmpty()) {
118 name = "My Search";
121 new Akonadi::SearchCreateJob(name, query);
122 #endif
125 void MainWidget::startServer()
127 Akonadi::ServerManager::start();
130 void MainWidget::stopServer()
132 Akonadi::ServerManager::stop();
135 void MainWidget::restartServer()
137 Akonadi::ControlGui::restart(this);