22 #include "tdeconfigdialog.h"
24 #include <tdeconfigskeleton.h>
25 #include <tdeconfigdialogmanager.h>
27 #include <kiconloader.h>
34 TQAsciiDict<TDEConfigDialog> TDEConfigDialog::openDialogs;
37 class TDEConfigDialog::TDEConfigDialogPrivate
41 : shown(false), type(t), manager(0) { }
46 TQMap<TQWidget *, TDEConfigDialogManager *> managerForPage;
55 KDialogBase( dialogType, (WFlags)TQt::WStyle_DialogBorder,
56 parent, name, modal, i18n(
"Configure"), dialogButtons, defaultButton ),
57 d(new TDEConfigDialogPrivate(dialogType))
60 openDialogs.insert(name,
this);
62 TQCString genericName;
63 genericName.sprintf(
"SettingsDialog-%p",
this);
64 openDialogs.insert(genericName,
this);
75 setupManagerConnections(d->manager);
82 openDialogs.remove(name());
87 const TQString &itemName,
88 const TQString &pixmapName,
89 const TQString &header,
92 addPageInternal(page, itemName, pixmapName, header);
94 d->manager->addWidget(page);
99 const TQString &itemName,
100 const TQString &pixmapName,
101 const TQString &header)
103 addPageInternal(page, itemName, pixmapName, header);
105 setupManagerConnections(d->managerForPage[page]);
108 void TDEConfigDialog::addPageInternal(TQWidget *page,
109 const TQString &itemName,
110 const TQString &pixmapName,
111 const TQString &header)
115 kdDebug(240) <<
"TDEConfigDialog::addPage: can not add a page after the dialog has been shown.";
123 TQVBox *frame =
addVBoxPage(itemName, header, SmallIcon(pixmapName, 32));
124 frame->setSpacing( 0 );
125 frame->setMargin( 0 );
126 page->reparent(((TQWidget*)frame), 0, TQPoint());
132 page->reparent(
this, 0, TQPoint());
140 TQVBoxLayout *topLayout =
new TQVBoxLayout( main, 0, 0 );
141 page->reparent(((TQWidget*)main), 0, TQPoint());
142 topLayout->addWidget( page );
147 kdDebug(240) <<
"TDEConfigDialog::addpage: unknown type.";
163 return openDialogs.find(name);
171 return (dialog != NULL);
176 static bool only_once =
false;
177 if (only_once)
return;
180 TQMap<TQWidget *, TDEConfigDialogManager *>::iterator it;
182 bool has_changed = d->manager->hasChanged() ||
hasChanged();
183 for (it = d->managerForPage.begin();
184 it != d->managerForPage.end() && !has_changed;
187 has_changed |= (*it)->hasChanged();
192 bool is_default = d->manager->isDefault() &&
isDefault();
193 for (it = d->managerForPage.begin();
194 it != d->managerForPage.end() && is_default;
197 is_default &= (*it)->isDefault();
216 TQMap<TQWidget *, TDEConfigDialogManager *>::iterator it;
219 d->manager->updateWidgets();
220 for (it = d->managerForPage.begin(); it != d->managerForPage.end(); ++it)
221 (*it)->updateWidgets();
223 bool has_changed = d->manager->hasChanged() ||
hasChanged();
224 for (it = d->managerForPage.begin();
225 it != d->managerForPage.end() && !has_changed;
228 has_changed |= (*it)->hasChanged();
233 bool is_default = d->manager->isDefault() &&
isDefault();
234 for (it = d->managerForPage.begin();
235 it != d->managerForPage.end() && is_default;
238 is_default &= (*it)->isDefault();
259 #include "tdeconfigdialog.moc"