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,
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>
43 #include <KActionCollection>
45 #include <KXmlGuiWindow>
47 #include <QVBoxLayout>
49 MainWidget::MainWidget(KXmlGuiWindow
*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()
101 void MainWidget::createSearch()
103 //QT5 TODO need to reimplement it
104 #pragma message("port to QT5")
111 const QString query
= dlg
.searchQuery();
112 if (query
.isEmpty()) {
116 QString name
= dlg
.searchName();
117 if (name
.isEmpty()) {
121 new Akonadi::SearchCreateJob(name
, query
);
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);