1 // 2 // C++ Implementation: %{MODULE} 3 // 4 // Description: 5 // 6 // 7 // Author: Roie Kerstein <sf_kersteinroie@bezeqint.net>, (C) 2004 8 // 9 // License: GPL v2 10 // 11 // 12 #include "addbookmarksprefssettings.h" 13 14 #include <kdebug.h> 15 #include <ksharedconfig.h> 16 17 #include <kconfiggroup.h> 18 BookmarksPrefsSettings(QObject * parent)19BookmarksPrefsSettings::BookmarksPrefsSettings(QObject *parent) 20 : QObject(parent) 21 { 22 } 23 ~BookmarksPrefsSettings()24BookmarksPrefsSettings::~BookmarksPrefsSettings() 25 { 26 } 27 load()28void BookmarksPrefsSettings::load() 29 { 30 KSharedConfig::Ptr configfile = KSharedConfig::openConfig(); 31 m_isfolderforeachcontact = Always; 32 m_contactslist.clear(); 33 if (configfile->accessMode() == KConfigBase::NoAccess) { 34 kDebug(14501) << "load: failed to open config file for reading"; 35 return; 36 } 37 if (!configfile->hasGroup("Bookmarks Plugin")) { 38 kDebug(14501) << "load: no config found in file"; 39 return; 40 } 41 KConfigGroup group = configfile->group("Bookmarks Plugin"); 42 m_isfolderforeachcontact = (UseSubfolders)group.readEntry("UseSubfolderForEachContact", 0); 43 m_contactslist = group.readEntry("ContactsList", QStringList()); 44 } 45 save()46void BookmarksPrefsSettings::save() 47 { 48 KSharedConfig::Ptr configfile = KSharedConfig::openConfig(); 49 50 if (configfile->accessMode() != KConfigBase::ReadWrite) { 51 kDebug(14501) << "save: failed to open config file for writing"; 52 return; 53 } 54 KConfigGroup group = configfile->group("Bookmarks Plugin"); 55 group.writeEntry("UseSubfolderForEachContact", (int)m_isfolderforeachcontact); 56 group.writeEntry("ContactsList", m_contactslist); 57 configfile->sync(); 58 } 59 useSubfolderForContact(QString nickname)60bool BookmarksPrefsSettings::useSubfolderForContact(QString nickname) 61 { 62 if (!nickname.isEmpty()) { 63 switch (m_isfolderforeachcontact) { 64 case Never: 65 return false; 66 case Always: 67 return true; 68 case SelectedContacts: 69 return m_contactslist.indexOf(nickname) != -1; 70 case UnselectedContacts: 71 return m_contactslist.indexOf(nickname) == -1; 72 } 73 } 74 return false; 75 } 76