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.
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"
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
));
50 dlgAdv
.kcfg_HistoryBackend
->addItem(i18n("Sqlite"), QVariant(TransferHistoryStore::SQLite
));
53 #ifdef HAVE_KWORKSPACE
54 dlgAdv
.kcfg_AfterFinishAction
->addItem(i18n("Turn off the computer"), QVariant(KGet::Shutdown
));
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
);