akregator/src
settings_advanced.cpp
00001 #include "akregatorconfig.h" 00002 #include "settings_advanced.h" 00003 #include "storagefactory.h" 00004 #include "storagefactoryregistry.h" 00005 00006 #include <qpushbutton.h> 00007 #include <qstringlist.h> 00008 #include <qwidget.h> 00009 00010 #include <kcombobox.h> 00011 00012 namespace Akregator { 00013 00014 SettingsAdvanced::SettingsAdvanced(QWidget* parent, const char* name) : SettingsAdvancedBase(parent, name) 00015 { 00016 00017 QStringList backends = Backend::StorageFactoryRegistry::self()->list(); 00018 QString tname; 00019 int i = 0; 00020 QStringList::Iterator end( backends.end() ); 00021 for (QStringList::Iterator it = backends.begin(); it != end; ++it) 00022 { 00023 m_factories[i] = Backend::StorageFactoryRegistry::self()->getFactory(*it); 00024 m_keyPos[m_factories[i]->key()] = i; 00025 cbBackend->insertItem(m_factories[i]->name()); 00026 i++; 00027 } 00028 connect(pbBackendConfigure, SIGNAL(clicked()), this, SLOT(slotConfigureStorage())); 00029 connect(cbBackend, SIGNAL(activated(int)), this, SLOT(slotFactorySelected(int))); 00030 } 00031 00032 QString SettingsAdvanced::selectedFactory() const 00033 { 00034 return m_factories[cbBackend->currentItem()]->key(); 00035 } 00036 00037 void SettingsAdvanced::selectFactory(const QString& key) 00038 { 00039 cbBackend->setCurrentItem(m_keyPos[key]); 00040 pbBackendConfigure->setEnabled((m_factories[m_keyPos[key]]->isConfigurable())); 00041 } 00042 00043 void SettingsAdvanced::slotConfigureStorage() 00044 { 00045 m_factories[cbBackend->currentItem()]->configure(); 00046 } 00047 00048 void SettingsAdvanced::slotFactorySelected(int pos) 00049 { 00050 pbBackendConfigure->setEnabled(m_factories[pos]->isConfigurable()); 00051 } 00052 00053 } //namespace Akregator 00054 #include "settings_advanced.moc"