/* This file is part of the KDE project Copyright (C) 2004 Jens Dagerbo 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 #include #include #include #include #include #include "configwidgetproxy.h" ConfigWidgetProxy::ConfigWidgetProxy( KDevCore * core ) { connect( core, TQ_SIGNAL(configWidget(KDialogBase*)), this, TQ_SLOT(slotConfigWidget( KDialogBase*)) ); connect( core, TQ_SIGNAL(projectConfigWidget(KDialogBase*)), this, TQ_SLOT(slotProjectConfigWidget( KDialogBase*)) ); } ConfigWidgetProxy::~ConfigWidgetProxy() {} void ConfigWidgetProxy::createGlobalConfigPage( TQString const & title, unsigned int pagenumber, TQString const & icon ) { _globalTitleMap.insert( pagenumber, qMakePair( title, icon ) ); } void ConfigWidgetProxy::createProjectConfigPage( TQString const & title, unsigned int pagenumber, TQString const & icon ) { _projectTitleMap.insert( pagenumber, qMakePair( title, icon ) ); } void ConfigWidgetProxy::removeConfigPage( int pagenumber ) { _globalTitleMap.remove( pagenumber ); _projectTitleMap.remove( pagenumber ); } void ConfigWidgetProxy::slotConfigWidget( KDialogBase * dlg ) { TitleMap::Iterator it = _globalTitleMap.begin(); while ( it != _globalTitleMap.end() ) { _pageMap.insert( dlg->addVBoxPage( it.data().first, it.data().first, BarIcon( it.data().second, TDEIcon::SizeMedium ) ), it.key() ); ++it; } connect( dlg, TQ_SIGNAL(aboutToShowPage(TQWidget*)), this, TQ_SLOT( slotAboutToShowPage(TQWidget*)) ); connect( dlg, TQ_SIGNAL(destroyed()), this, TQ_SLOT(slotConfigWidgetDestroyed()) ); } void ConfigWidgetProxy::slotProjectConfigWidget( KDialogBase * dlg ) { TitleMap::Iterator it = _projectTitleMap.begin(); while ( it != _projectTitleMap.end() ) { _pageMap.insert( dlg->addVBoxPage( it.data().first, it.data().first, BarIcon( it.data().second, TDEIcon::SizeMedium ) ), it.key() ); ++it; } connect( dlg, TQ_SIGNAL(aboutToShowPage(TQWidget*)), this, TQ_SLOT( slotAboutToShowPage(TQWidget*)) ); connect( dlg, TQ_SIGNAL(destroyed()), this, TQ_SLOT(slotConfigWidgetDestroyed()) ); } void ConfigWidgetProxy::slotConfigWidgetDestroyed( ) { _pageMap.clear(); } void ConfigWidgetProxy::slotAboutToShowPage( TQWidget * page ) { if ( !page ) return; PageMap::Iterator it = _pageMap.find( page ); if ( it != _pageMap.end() ) { emit insertConfigWidget( static_cast(const_cast(sender())), page, it.data() ); _pageMap.remove( it ); } } #include "configwidgetproxy.moc"