Disable clipboardsharing in view only mode.
[kdenetwork.git] / kget / conf / preferencesdialog.cpp
blobcb2437a7df348ea0543f810012c4bbdb85eee5be
1 /* This file is part of the KDE project
2 Copyright (C) 2004 - 2007 KGet Developers <kget@kde.org>
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8 */
10 #include "preferencesdialog.h"
11 #include "core/kget.h"
12 #include "core/transferhistorystore.h"
14 #include "ui_dlgappearance.h"
15 #include "ui_dlgnetwork.h"
16 #include "dlgdirectories.h"
17 #include "dlgwebinterface.h"
19 #include "transfersgroupwidget.h"
20 #include "pluginselector.h"
22 #include <klocale.h>
23 #include <ktabwidget.h>
25 PreferencesDialog::PreferencesDialog(QWidget * parent, KConfigSkeleton * skeleton)
26 : KConfigDialog(parent, "preferences", skeleton)
28 QWidget *appearance = new QWidget(this);
29 QWidget *groups = new QWidget(this);
30 DlgDirectories *directories = new DlgDirectories(this);
31 DlgWebinterface *webinterface = new DlgWebinterface(this);
32 QWidget *network = new QWidget(this);
33 QWidget *advanced = new QWidget(this);
34 PluginSelector * pluginSelector = new PluginSelector(this);
35 connect(pluginSelector, SIGNAL(changed(bool)), SLOT(enableApplyButton()));
37 groups->setLayout(new TransfersGroupWidget());
39 Ui::DlgAppearance dlgApp;
40 Ui::DlgNetwork dlgNet;
43 dlgApp.setupUi(appearance);
44 dlgNet.setupUi(network);
45 dlgAdv.setupUi(advanced);
47 // history backend entries
48 dlgAdv.kcfg_HistoryBackend->addItem(i18n("Xml"), QVariant(TransferHistoryStore::Xml));
49 #ifdef HAVE_SQLITE
50 dlgAdv.kcfg_HistoryBackend->addItem(i18n("Sqlite"), QVariant(TransferHistoryStore::SQLite));
51 #endif
53 #ifdef HAVE_KWORKSPACE
54 dlgAdv.kcfg_AfterFinishAction->addItem(i18n("Turn off the computer"), QVariant(KGet::Shutdown));
55 #endif
57 // enable or disable the AfterFinishAction depends on the AfterFinishActionEnabled checkbox state
58 dlgAdv.kcfg_AfterFinishAction->setEnabled(dlgAdv.kcfg_AfterFinishActionEnabled->checkState () == Qt::Checked);
59 connect(dlgAdv.kcfg_AfterFinishActionEnabled, SIGNAL(stateChanged(int)),
60 SLOT(slotToggleAfterFinishAction(int)));
62 // TODO: remove the following lines as soon as these features are ready
63 dlgNet.lb_per_transfer->setVisible(false);
64 dlgNet.kcfg_TransferSpeedLimit->setVisible(false);
65 dlgNet.groupBoxCompleted->setVisible(false);
66 dlgNet.lbl_maxnum_2->setVisible(false);
67 dlgNet.kcfg_MaxConnectionsServer->setVisible(false);
69 addPage(appearance, i18n("Appearance"), "preferences-desktop-theme", i18n("Change appearance settings"));
70 addPage(groups, i18n("Groups"), "bookmarks", i18n("Manage the groups"));
71 addPage(directories, i18n("Folders"), "folder", i18n("Default Download Folders"));
72 addPage(network, i18n("Network"), "network-workgroup", i18n("Network and Downloads"));
73 addPage(webinterface, i18n("Webinterface"), "network-workgroup", i18n("Control KGet over Network or Internet"));
74 addPage(advanced, i18nc("Advanced Options", "Advanced"), "preferences-other", i18n("Advanced Options"));
75 addPage(pluginSelector, i18n("Plugins"), "preferences-plugin", i18n("Transfer Plugins"));
77 connect(this, SIGNAL(accepted()), SLOT(disableApplyButton()));
78 connect(this, SIGNAL(rejected()), SLOT(disableApplyButton()));
81 void PreferencesDialog::disableApplyButton()
83 enableButtonApply(false);
86 void PreferencesDialog::enableApplyButton()
88 enableButtonApply(true);
91 void PreferencesDialog::slotToggleAfterFinishAction(int state)
93 dlgAdv.kcfg_AfterFinishAction->setEnabled(state == Qt::Checked);