mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 18:32:51 +00:00
147 lines
4.6 KiB
C++
147 lines
4.6 KiB
C++
/*
|
|
This file is part of Akonadi.
|
|
|
|
Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
|
USA.
|
|
*/
|
|
|
|
#include "mainwidget.h"
|
|
|
|
#include "agentwidget.h"
|
|
#include "dbbrowser.h"
|
|
#include "dbconsole.h"
|
|
#include "debugwidget.h"
|
|
#include "rawsocketconsole.h"
|
|
#include "searchdialog.h"
|
|
#include "searchwidget.h"
|
|
#include "jobtrackerwidget.h"
|
|
#include "notificationmonitor.h"
|
|
#include "monitorswidget.h"
|
|
#include "querydebugger.h"
|
|
|
|
#include <akonadi/agentinstancewidget.h>
|
|
#include <akonadi/agentfilterproxymodel.h>
|
|
#include <akonadi/control.h>
|
|
#include <akonadi/searchcreatejob.h>
|
|
#include <akonadi/servermanager.h>
|
|
|
|
#include <KAction>
|
|
#include <KActionCollection>
|
|
#include <KCMultiDialog>
|
|
#include <KTabWidget>
|
|
#include <KXmlGuiWindow>
|
|
|
|
#include <QVBoxLayout>
|
|
|
|
MainWidget::MainWidget( KXmlGuiWindow *parent )
|
|
: QWidget( parent )
|
|
{
|
|
QVBoxLayout *layout = new QVBoxLayout( this );
|
|
|
|
KTabWidget *tabWidget = new KTabWidget( this );
|
|
tabWidget->setObjectName( "mainTab" );
|
|
layout->addWidget( tabWidget );
|
|
|
|
tabWidget->addTab( new AgentWidget( tabWidget ), "Agents" );
|
|
mBrowser = new BrowserWidget( parent, tabWidget );
|
|
tabWidget->addTab( mBrowser, "Browser" );
|
|
tabWidget->addTab( new DebugWidget( tabWidget ), "Debugger" );
|
|
tabWidget->addTab( new RawSocketConsole( tabWidget ), "Raw Socket" );
|
|
tabWidget->addTab( new DbBrowser( tabWidget ), "DB Browser" );
|
|
tabWidget->addTab( new DbConsole( tabWidget ), "DB Console" );
|
|
tabWidget->addTab( new QueryDebugger( tabWidget ), "Query Debugger" );
|
|
tabWidget->addTab( new JobTrackerWidget( "jobtracker", tabWidget, "Enable job tracker" ), "Job Tracker" );
|
|
tabWidget->addTab( new JobTrackerWidget( "resourcesJobtracker", tabWidget, "Enable tracking of Resource Schedulers" ), "Resources Schedulers" );
|
|
tabWidget->addTab( new NotificationMonitor( tabWidget ), "Notification Monitor" );
|
|
tabWidget->addTab( new SearchWidget( tabWidget ), "Item Search" );
|
|
tabWidget->addTab( new MonitorsWidget( tabWidget ), "Monitors" );
|
|
|
|
KAction *action = parent->actionCollection()->addAction( "akonadiconsole_search" );
|
|
action->setText( "Create Search..." );
|
|
connect( action, SIGNAL(triggered()), this, SLOT(createSearch()) );
|
|
|
|
action = parent->actionCollection()->addAction( "akonadiconsole_akonadi2xml" );
|
|
action->setText( "Dump to XML..." );
|
|
connect( action, SIGNAL(triggered()), mBrowser, SLOT(dumpToXml()) );
|
|
|
|
action = parent->actionCollection()->addAction( "akonadiconsole_clearcache" );
|
|
action->setText( "Clear Akonadi Cache" );
|
|
connect( action, SIGNAL(triggered()), mBrowser, SLOT(clearCache()) );
|
|
|
|
action = parent->actionCollection()->addAction( "akonadiserver_start" );
|
|
action->setText( "Start Server" );
|
|
connect( action, SIGNAL(triggered()), SLOT(startServer()) );
|
|
|
|
action = parent->actionCollection()->addAction( "akonadiserver_stop" );
|
|
action->setText( "Stop Server" );
|
|
connect( action, SIGNAL(triggered()), SLOT(stopServer()) );
|
|
|
|
action = parent->actionCollection()->addAction( "akonadiserver_restart" );
|
|
action->setText( "Restart Server" );
|
|
connect( action, SIGNAL(triggered()), SLOT(restartServer()) );
|
|
|
|
action = parent->actionCollection()->addAction( "akonadiserver_configure" );
|
|
action->setText( "Configure Server..." );
|
|
action->setIcon( KIcon("configure") );
|
|
connect( action, SIGNAL(triggered()), SLOT(configureServer()) );
|
|
}
|
|
|
|
MainWidget::~MainWidget()
|
|
{
|
|
delete mBrowser;
|
|
}
|
|
|
|
void MainWidget::createSearch()
|
|
{
|
|
SearchDialog dlg;
|
|
if ( !dlg.exec() )
|
|
return;
|
|
|
|
const QString query = dlg.searchQuery();
|
|
if ( query.isEmpty() )
|
|
return;
|
|
|
|
QString name = dlg.searchName();
|
|
if ( name.isEmpty() )
|
|
name = "My Search";
|
|
|
|
new Akonadi::SearchCreateJob( name, query );
|
|
}
|
|
|
|
void MainWidget::startServer()
|
|
{
|
|
Akonadi::ServerManager::start();
|
|
}
|
|
|
|
void MainWidget::stopServer()
|
|
{
|
|
Akonadi::ServerManager::stop();
|
|
}
|
|
|
|
void MainWidget::restartServer()
|
|
{
|
|
Akonadi::Control::restart( this );
|
|
}
|
|
|
|
void MainWidget::configureServer()
|
|
{
|
|
KCMultiDialog dlg;
|
|
dlg.addModule( "kcm_akonadi_server" );
|
|
dlg.exec();
|
|
}
|
|
|
|
|