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)19 BookmarksPrefsSettings::BookmarksPrefsSettings(QObject *parent)
20     : QObject(parent)
21 {
22 }
23 
~BookmarksPrefsSettings()24 BookmarksPrefsSettings::~BookmarksPrefsSettings()
25 {
26 }
27 
load()28 void 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()46 void 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)60 bool 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