mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
159 lines
4.7 KiB
C++
159 lines
4.7 KiB
C++
/*
|
|
* This file is part of the KDE project
|
|
* Copyright (C) 2009 Shaun Reich <shaun.reich@kdemail.net>
|
|
* Copyright (C) 2006-2008 Rafael Fernández López <ereslibre@kde.org>
|
|
* Copyright (C) 2001 George Staikos <staikos@kde.org>
|
|
* Copyright (C) 2000 Matej Koss <koss@miesto.sk>
|
|
* David Faure <faure@kde.org>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This library 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
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public License
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#include "uiserver.h"
|
|
#include "uiserver_p.h"
|
|
|
|
#include "progresslistmodel.h"
|
|
#include "progresslistdelegate.h"
|
|
|
|
#include <QWidget>
|
|
#include <QAction>
|
|
#include <QBoxLayout>
|
|
#include <QtGui/qevent.h>
|
|
#include <QToolBar>
|
|
|
|
#include <kconfigdialog.h>
|
|
#include <klocale.h>
|
|
#include <kicon.h>
|
|
#include <kdialog.h>
|
|
#include <ksystemtrayicon.h>
|
|
#include <kpushbutton.h>
|
|
|
|
UiServer::UiServer(ProgressListModel* model)
|
|
: KXmlGuiWindow(0), m_systemTray(0)
|
|
{
|
|
//NOTE: if enough people really hate this dialog (having centralized information and such),
|
|
//I imagine we could somehow forward it to the old dialogs, which would be displayed 1 for each job.
|
|
//Or create our own. no worries, we'll see how it plays out..
|
|
|
|
QString configure = i18n("Configure...");
|
|
|
|
toolBar = addToolBar(configure);
|
|
toolBar->setMovable(false);
|
|
toolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
|
|
|
QAction *configureAction = toolBar->addAction(configure);
|
|
configureAction->setIcon(KIcon("configure"));
|
|
configureAction->setIconText(configure);
|
|
|
|
connect(configureAction, SIGNAL(triggered(bool)), this,
|
|
SLOT(showConfigurationDialog()));
|
|
|
|
toolBar->addSeparator();
|
|
|
|
listProgress = new QListView(this);
|
|
listProgress->setAlternatingRowColors(true);
|
|
listProgress->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
|
listProgress->setUniformItemSizes(true);
|
|
listProgress->setSelectionMode(QAbstractItemView::NoSelection);
|
|
listProgress->setModel(model);
|
|
|
|
setCentralWidget(listProgress);
|
|
|
|
progressListDelegate = new ProgressListDelegate(this, listProgress);
|
|
progressListDelegate->setSeparatorPixels(5);
|
|
progressListDelegate->setLeftMargin(10);
|
|
progressListDelegate->setRightMargin(10);
|
|
progressListDelegate->setMinimumItemHeight(100);
|
|
progressListDelegate->setMinimumContentWidth(300);
|
|
progressListDelegate->setEditorHeight(20);
|
|
listProgress->setItemDelegate(progressListDelegate);
|
|
|
|
|
|
m_systemTray = new KSystemTrayIcon(this);
|
|
m_systemTray->setIcon(KSystemTrayIcon::loadIcon("view-process-system"));
|
|
m_systemTray->setToolTip(i18n("List of running file transfers/jobs (kuiserver)"));
|
|
m_systemTray->show();
|
|
resize(450, 450);
|
|
applySettings();
|
|
}
|
|
|
|
UiServer::~UiServer()
|
|
{
|
|
}
|
|
|
|
|
|
void UiServer::updateConfiguration()
|
|
{
|
|
Configuration::self()->writeConfig();
|
|
applySettings();
|
|
}
|
|
|
|
void UiServer::applySettings()
|
|
{
|
|
/* not used.
|
|
int finishedIndex = tabWidget->indexOf(listFinished);
|
|
if (Configuration::radioMove()) {
|
|
if (finishedIndex == -1) {
|
|
tabWidget->addTab(listFinished, i18n("Finished"));
|
|
}
|
|
} else if (finishedIndex != -1) {
|
|
tabWidget->removeTab(finishedIndex);
|
|
} */
|
|
}
|
|
|
|
void UiServer::closeEvent(QCloseEvent *event)
|
|
{
|
|
event->ignore();
|
|
hide();
|
|
}
|
|
|
|
void UiServer::showConfigurationDialog()
|
|
{
|
|
if (KConfigDialog::showDialog("configuration"))
|
|
return;
|
|
|
|
KConfigDialog *dialog = new KConfigDialog(this, "configuration",
|
|
Configuration::self());
|
|
|
|
UIConfigurationDialog *configurationUI = new UIConfigurationDialog(0);
|
|
|
|
dialog->addPage(configurationUI, i18n("Behavior"), "configure");
|
|
|
|
connect(dialog, SIGNAL(settingsChanged(const QString&)), this,
|
|
SLOT(updateConfiguration()));
|
|
dialog->button(KDialog::Help)->hide();
|
|
dialog->show();
|
|
}
|
|
|
|
/// ===========================================================
|
|
|
|
|
|
UIConfigurationDialog::UIConfigurationDialog(QWidget *parent)
|
|
: QWidget(parent)
|
|
{
|
|
setupUi(this);
|
|
adjustSize();
|
|
}
|
|
|
|
UIConfigurationDialog::~UIConfigurationDialog()
|
|
{
|
|
}
|
|
|
|
|
|
/// ===========================================================
|
|
|
|
|
|
#include "moc_uiserver.cpp"
|
|
#include "moc_uiserver_p.cpp"
|