diff options
Diffstat (limited to 'tdeui/kconfigdialog.cpp')
-rw-r--r-- | tdeui/kconfigdialog.cpp | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/tdeui/kconfigdialog.cpp b/tdeui/kconfigdialog.cpp deleted file mode 100644 index ccbba1cf0..000000000 --- a/tdeui/kconfigdialog.cpp +++ /dev/null @@ -1,259 +0,0 @@ -/* - * This file is part of the KDE libraries - * Copyright (C) 2003 Benjamin C Meyer (ben+tdelibs at meyerhome dot net) - * Copyright (C) 2003 Waldo Bastian <bastian@kde.org> - * Copyright (C) 2004 Michael Brade <brade@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 as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * 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 "kconfigdialog.h" - -#include <kconfigskeleton.h> -#include <kconfigdialogmanager.h> -#include <klocale.h> -#include <kiconloader.h> -#include <kdebug.h> - -#include <tqlayout.h> -#include <tqvbox.h> -#include <tqmap.h> - -TQAsciiDict<KConfigDialog> KConfigDialog::openDialogs; - -// This class is here purly so we don't break binary compatibility down the road. -class KConfigDialog::KConfigDialogPrivate -{ -public: - KConfigDialogPrivate(KDialogBase::DialogType t) - : shown(false), type(t), manager(0) { } - - bool shown; - KDialogBase::DialogType type; - KConfigDialogManager *manager; - TQMap<TQWidget *, KConfigDialogManager *> managerForPage; -}; - -KConfigDialog::KConfigDialog( TQWidget *parent, const char *name, - KConfigSkeleton *config, - DialogType dialogType, - int dialogButtons, - ButtonCode defaultButton, - bool modal ) : - KDialogBase( dialogType, (WFlags)TQt::WStyle_DialogBorder, - parent, name, modal, i18n("Configure"), dialogButtons, defaultButton ), - d(new KConfigDialogPrivate(dialogType)) -{ - if ( name ) { - openDialogs.insert(name, this); - } else { - TQCString genericName; - genericName.sprintf("SettingsDialog-%p", this); - openDialogs.insert(genericName, this); - setName(genericName); - } - - connect(this, TQT_SIGNAL(okClicked()), this, TQT_SLOT(updateSettings())); - connect(this, TQT_SIGNAL(applyClicked()), this, TQT_SLOT(updateSettings())); - connect(this, TQT_SIGNAL(applyClicked()), this, TQT_SLOT(updateButtons())); - connect(this, TQT_SIGNAL(defaultClicked()), this, TQT_SLOT(updateWidgetsDefault())); - connect(this, TQT_SIGNAL(defaultClicked()), this, TQT_SLOT(updateButtons())); - - d->manager = new KConfigDialogManager(this, config); - setupManagerConnections(d->manager); - - enableButton(Apply, false); -} - -KConfigDialog::~KConfigDialog() -{ - openDialogs.remove(name()); - delete d; -} - -void KConfigDialog::addPage(TQWidget *page, - const TQString &itemName, - const TQString &pixmapName, - const TQString &header, - bool manage) -{ - addPageInternal(page, itemName, pixmapName, header); - if(manage) - d->manager->addWidget(page); -} - -void KConfigDialog::addPage(TQWidget *page, - KConfigSkeleton *config, - const TQString &itemName, - const TQString &pixmapName, - const TQString &header) -{ - addPageInternal(page, itemName, pixmapName, header); - d->managerForPage[page] = new KConfigDialogManager(page, config); - setupManagerConnections(d->managerForPage[page]); -} - -void KConfigDialog::addPageInternal(TQWidget *page, - const TQString &itemName, - const TQString &pixmapName, - const TQString &header) -{ - if(d->shown) - { - kdDebug(240) << "KConfigDialog::addPage: can not add a page after the dialog has been shown."; - return; - } - switch(d->type) - { - case TreeList: - case IconList: - case Tabbed: { - TQVBox *frame = addVBoxPage(itemName, header, SmallIcon(pixmapName, 32)); - frame->setSpacing( 0 ); - frame->setMargin( 0 ); - page->reparent(((TQWidget*)frame), 0, TQPoint()); - } - break; - - case Swallow: - { - page->reparent(this, 0, TQPoint()); - setMainWidget(page); - } - break; - - case Plain: - { - TQFrame *main = plainPage(); - TQVBoxLayout *topLayout = new TQVBoxLayout( main, 0, 0 ); - page->reparent(((TQWidget*)main), 0, TQPoint()); - topLayout->addWidget( page ); - } - break; - - default: - kdDebug(240) << "KConfigDialog::addpage: unknown type."; - } -} - -void KConfigDialog::setupManagerConnections(KConfigDialogManager *manager) -{ - connect(manager, TQT_SIGNAL(settingsChanged()), this, TQT_SLOT(settingsChangedSlot())); - connect(manager, TQT_SIGNAL(widgetModified()), this, TQT_SLOT(updateButtons())); - - connect(this, TQT_SIGNAL(okClicked()), manager, TQT_SLOT(updateSettings())); - connect(this, TQT_SIGNAL(applyClicked()), manager, TQT_SLOT(updateSettings())); - connect(this, TQT_SIGNAL(defaultClicked()), manager, TQT_SLOT(updateWidgetsDefault())); -} - -KConfigDialog* KConfigDialog::exists(const char* name) -{ - return openDialogs.find(name); -} - -bool KConfigDialog::showDialog(const char* name) -{ - KConfigDialog *dialog = exists(name); - if(dialog) - dialog->show(); - return (dialog != NULL); -} - -void KConfigDialog::updateButtons() -{ - static bool only_once = false; - if (only_once) return; - only_once = true; - - TQMap<TQWidget *, KConfigDialogManager *>::iterator it; - - bool has_changed = d->manager->hasChanged() || hasChanged(); - for (it = d->managerForPage.begin(); - it != d->managerForPage.end() && !has_changed; - ++it) - { - has_changed |= (*it)->hasChanged(); - } - - enableButton(Apply, has_changed); - - bool is_default = d->manager->isDefault() && isDefault(); - for (it = d->managerForPage.begin(); - it != d->managerForPage.end() && is_default; - ++it) - { - is_default &= (*it)->isDefault(); - } - - enableButton(Default, !is_default); - - emit widgetModified(); - only_once = false; -} - -void KConfigDialog::settingsChangedSlot() -{ - // Update the buttons - updateButtons(); - emit settingsChanged(); - emit settingsChanged(name()); -} - -void KConfigDialog::show() -{ - TQMap<TQWidget *, KConfigDialogManager *>::iterator it; - - updateWidgets(); - d->manager->updateWidgets(); - for (it = d->managerForPage.begin(); it != d->managerForPage.end(); ++it) - (*it)->updateWidgets(); - - bool has_changed = d->manager->hasChanged() || hasChanged(); - for (it = d->managerForPage.begin(); - it != d->managerForPage.end() && !has_changed; - ++it) - { - has_changed |= (*it)->hasChanged(); - } - - enableButton(Apply, has_changed); - - bool is_default = d->manager->isDefault() && isDefault(); - for (it = d->managerForPage.begin(); - it != d->managerForPage.end() && is_default; - ++it) - { - is_default &= (*it)->isDefault(); - } - - enableButton(Default, !is_default); - d->shown = true; - KDialogBase::show(); -} - -void KConfigDialog::updateSettings() -{ -} - -void KConfigDialog::updateWidgets() -{ -} - -void KConfigDialog::updateWidgetsDefault() -{ -} - - -#include "kconfigdialog.moc" |