summaryrefslogtreecommitdiffabout
path: root/kaddressbook/extensionmanager.cpp
Unidiff
Diffstat (limited to 'kaddressbook/extensionmanager.cpp') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/extensionmanager.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/kaddressbook/extensionmanager.cpp b/kaddressbook/extensionmanager.cpp
index 9114cdc..98561dc 100644
--- a/kaddressbook/extensionmanager.cpp
+++ b/kaddressbook/extensionmanager.cpp
@@ -69,121 +69,123 @@ ExtensionManager::~ExtensionManager()
69} 69}
70 70
71void ExtensionManager::restoreSettings() 71void ExtensionManager::restoreSettings()
72{ 72{
73 mActionExtensions->setCurrentItem( KABPrefs::instance()->mCurrentExtension ); 73 mActionExtensions->setCurrentItem( KABPrefs::instance()->mCurrentExtension );
74 int i = 1; 74 int i = 1;
75 mCurrentExtensionWidget = mExtensionWidgetList.at( i-1 ); 75 mCurrentExtensionWidget = mExtensionWidgetList.at( i-1 );
76 while ( mCurrentExtensionWidget ) { 76 while ( mCurrentExtensionWidget ) {
77 if( i != KABPrefs::instance()->mCurrentExtension ) 77 if( i != KABPrefs::instance()->mCurrentExtension )
78 mCurrentExtensionWidget->hide(); 78 mCurrentExtensionWidget->hide();
79 mCurrentExtensionWidget = mExtensionWidgetList.at( ++i-1 ); 79 mCurrentExtensionWidget = mExtensionWidgetList.at( ++i-1 );
80 80
81 } 81 }
82 setActiveExtension( mActionExtensions->currentItem() ); 82 setActiveExtension( mActionExtensions->currentItem() );
83} 83}
84 84
85void ExtensionManager::saveSettings() 85void ExtensionManager::saveSettings()
86{ 86{
87 KABPrefs::instance()->mCurrentExtension = mActionExtensions->currentItem(); 87 KABPrefs::instance()->mCurrentExtension = mActionExtensions->currentItem();
88} 88}
89 89
90void ExtensionManager::reconfigure() 90void ExtensionManager::reconfigure()
91{ 91{
92 saveSettings(); 92 saveSettings();
93 createExtensionWidgets(); 93 createExtensionWidgets();
94 restoreSettings(); 94 restoreSettings();
95} 95}
96 96
97bool ExtensionManager::isQuickEditVisible() const 97bool ExtensionManager::isQuickEditVisible() const
98{ 98{
99 return ( mCurrentExtensionWidget && 99 return ( mCurrentExtensionWidget &&
100 mCurrentExtensionWidget->identifier() == "contact_editor" ); 100 mCurrentExtensionWidget->identifier() == "contact_editor" );
101} 101}
102 102
103void ExtensionManager::setSelectionChanged() 103void ExtensionManager::setSelectionChanged()
104{ 104{
105 if ( mCurrentExtensionWidget ) 105 if ( mCurrentExtensionWidget )
106 mCurrentExtensionWidget->contactsSelectionChanged(); 106 mCurrentExtensionWidget->contactsSelectionChanged();
107} 107}
108 108
109void ExtensionManager::setActiveExtension( int id ) 109void ExtensionManager::setActiveExtension( int id )
110{ 110{
111 //qDebug("+++++++++++++++++++ExtensionManager::setActiveExtension %d ", id); 111 //qDebug("+++++++++++++++++++ExtensionManager::setActiveExtension %d ", id);
112 if ( id == 0 ) { 112 if ( id == 0 ) {
113 hide(); 113 hide();
114 mCurrentExtensionWidget = 0; 114 mCurrentExtensionWidget = 0;
115#ifndef DESKTOP_VERSION 115#ifndef DESKTOP_VERSION
116//US our screen is so small, that we better hide the detailscreen, just in case. 116//US our screen is so small, that we better hide the detailscreen, just in case.
117 mCore->setDetailsToState( ); 117//US mCore->setDetailsToState( );
118#endif //KAB_EMBEDDED 118#endif //KAB_EMBEDDED
119 } else if ( id > 0 ) { 119 } else if ( id > 0 ) {
120 if ( mCurrentExtensionWidget ) 120 if ( mCurrentExtensionWidget )
121 mCurrentExtensionWidget->hide(); 121 mCurrentExtensionWidget->hide();
122 122
123 mCurrentExtensionWidget = mExtensionWidgetList.at( id - 1 ); 123 mCurrentExtensionWidget = mExtensionWidgetList.at( id - 1 );
124 124
125 if ( mCurrentExtensionWidget ) { 125 if ( mCurrentExtensionWidget ) {
126#ifndef DESKTOP_VERSION 126#ifndef DESKTOP_VERSION
127//US our screen is so small, that we better hide the detailscreen, just in case. 127//US our screen is so small, that we better hide the detailscreen, just in case.
128 mCore->setDetailsVisible( false ); 128//US mCore->setDetailsVisible( false );
129#endif //KAB_EMBEDDED 129#endif //KAB_EMBEDDED
130 show(); 130 show();
131 mWidgetBox->show(); 131 mWidgetBox->show();
132 mCurrentExtensionWidget->show(); 132 mCurrentExtensionWidget->show();
133 } else { 133 } else {
134 hide(); 134 hide();
135 mCurrentExtensionWidget = 0; 135 mCurrentExtensionWidget = 0;
136#ifndef DESKTOP_VERSION 136#ifndef DESKTOP_VERSION
137//US our screen is so small, that we better hide the detailscreen, just in case. 137//US our screen is so small, that we better hide the detailscreen, just in case.
138 mCore->setDetailsToState( ); 138//US mCore->setDetailsToState( );
139#endif //KAB_EMBEDDED 139#endif //KAB_EMBEDDED
140 } 140 }
141 } 141 }
142
143 emit changedActiveExtension( id );
142} 144}
143 145
144void ExtensionManager::createExtensionWidgets() 146void ExtensionManager::createExtensionWidgets()
145{ 147{
146 // clear extension widget list 148 // clear extension widget list
147 mExtensionWidgetList.setAutoDelete( true ); 149 mExtensionWidgetList.setAutoDelete( true );
148 QPtrListIterator<ExtensionWidget> wdgIt( mExtensionWidgetList ); 150 QPtrListIterator<ExtensionWidget> wdgIt( mExtensionWidgetList );
149 ExtensionWidget *wdg = 0; 151 ExtensionWidget *wdg = 0;
150 while ( ( wdg = wdgIt.current() ) != 0 ) 152 while ( ( wdg = wdgIt.current() ) != 0 )
151 mExtensionWidgetList.remove( wdg ); 153 mExtensionWidgetList.remove( wdg );
152 154
153 mExtensionWidgetList.setAutoDelete( false ); 155 mExtensionWidgetList.setAutoDelete( false );
154 156
155 QStringList extensionNames( i18n( "None" ) ); 157 QStringList extensionNames( i18n( "None" ) );
156 158
157 // add addressee editor as default 159 // add addressee editor as default
158 160
159 QHBoxLayout *hbl = new QHBoxLayout (mWidgetBox ); 161 QHBoxLayout *hbl = new QHBoxLayout (mWidgetBox );
160 162
161 wdg = new AddresseeEditorWidget( mCore, true, mWidgetBox ); 163 wdg = new AddresseeEditorWidget( mCore, true, mWidgetBox );
162 hbl->addWidget( wdg ); 164 hbl->addWidget( wdg );
163 //wdg->hide(); 165 //wdg->hide();
164 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ), 166 connect( wdg, SIGNAL( modified( const KABC::Addressee::List& ) ),
165 SIGNAL( modified( const KABC::Addressee::List& ) ) ); 167 SIGNAL( modified( const KABC::Addressee::List& ) ) );
166 mExtensionWidgetList.append( wdg ); 168 mExtensionWidgetList.append( wdg );
167 extensionNames.append( wdg->title() ); 169 extensionNames.append( wdg->title() );
168 170
169 // load the other extensions 171 // load the other extensions
170 QStringList activeExtensions = KABPrefs::instance()->mActiveExtensions; 172 QStringList activeExtensions = KABPrefs::instance()->mActiveExtensions;
171 173
172#ifndef KAB_EMBEDDED 174#ifndef KAB_EMBEDDED
173 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/Extension" ); 175 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/Extension" );
174 KTrader::OfferList::ConstIterator it; 176 KTrader::OfferList::ConstIterator it;
175 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 177 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
176 if ( !(*it)->hasServiceType( "KAddressBook/Extension" ) ) 178 if ( !(*it)->hasServiceType( "KAddressBook/Extension" ) )
177 continue; 179 continue;
178 180
179 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); 181 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
180 if ( !factory ) { 182 if ( !factory ) {
181 kdDebug(5720) << "ExtensionManager::loadExtensions(): Factory creation failed" << endl; 183 kdDebug(5720) << "ExtensionManager::loadExtensions(): Factory creation failed" << endl;
182 continue; 184 continue;
183 } 185 }
184 186
185 ExtensionFactory *extensionFactory = static_cast<ExtensionFactory*>( factory ); 187 ExtensionFactory *extensionFactory = static_cast<ExtensionFactory*>( factory );
186 188
187 if ( !extensionFactory ) { 189 if ( !extensionFactory ) {
188 kdDebug(5720) << "ExtensionManager::loadExtensions(): Cast failed" << endl; 190 kdDebug(5720) << "ExtensionManager::loadExtensions(): Cast failed" << endl;
189 continue; 191 continue;