• Skip to content
  • Skip to link menu
KDE 4.0 API Reference
  • KDE API Reference
  • kdeutils
  • Sitemap
  • Contact Us
 

kdelirc

modes.cpp

Go to the documentation of this file.
00001 //
00002 //
00003 // C++ Implementation: $MODULE$
00004 //
00005 // Description:
00006 //
00007 //
00008 // Author: Gav Wood <gav@kde.org>, (C) 2003
00009 //
00010 // Copyright: See COPYING file that comes with this distribution
00011 //
00012 //
00013 #include <kconfig.h>
00014 #include <kdebug.h>
00015 
00016 #include "modes.h"
00017 #include "mode.h"
00018 
00019 Modes::Modes()
00020 {
00021 }
00022 
00023 
00024 Modes::~Modes()
00025 {
00026 }
00027 
00028 void Modes::loadFromConfig(KConfig &theConfig)
00029 {
00030     clear();
00031     int numModes = theConfig.readNumEntry("Modes");
00032     for(int i = 0; i < numModes; i++)
00033     {
00034         add(Mode().loadFromConfig(theConfig, i));
00035     }
00036 
00037     for(iterator i = begin(); i != end(); ++i)
00038         theDefaults[i.key()] = theConfig.readEntry("Default" + i.key(),QString());
00039 }
00040 
00041 void Modes::generateNulls(const QStringList &theRemotes)
00042 {
00043     for(QStringList::const_iterator i = theRemotes.begin(); i != theRemotes.end(); ++i)
00044     {   if(!contains(*i) || !operator[](*i).contains("")) operator[](*i)[""] = Mode(*i, "");
00045         if(!theDefaults.contains(*i)) theDefaults[*i].isEmpty();
00046     }
00047 }
00048 
00049 bool Modes::isDefault(const Mode &mode) const
00050 {
00051     if(theDefaults[mode.remote()] == mode.name())
00052         return true;
00053 //  if(theDefaults[mode.remote()].isEmpty() || theDefaults[mode.remote()].isNull())
00054 //      return mode.name().isEmpty();
00055     return false;
00056 }
00057 
00058 const Mode Modes::getDefault(const QString &remote) const
00059 {
00060 //  if(theDefaults[remote] == QString())
00061 //      return Mode(remote, "");
00062     if(contains(remote))
00063         if(operator[](remote).contains(theDefaults[remote]))
00064             return operator[](remote)[theDefaults[remote]];
00065         else return Mode(remote, "");
00066     else return Mode(remote, "");
00067 
00068 }
00069 
00070 void Modes::purgeAllModes(KConfig &theConfig)
00071 {
00072     int numModes = theConfig.readNumEntry("Modes");
00073     for(int i = 0; i < numModes; i++)
00074     {   QString Prefix = "Mode" + QString().setNum(i);
00075         theConfig.deleteEntry(Prefix + "Name");
00076         theConfig.deleteEntry(Prefix + "Remote");
00077     }
00078 }
00079 
00080 void Modes::saveToConfig(KConfig &theConfig)
00081 {
00082     int index = 0;
00083     purgeAllModes(theConfig);
00084     for(iterator i = begin(); i != end(); ++i)
00085         for(QMap<QString, Mode>::iterator j = (*i).begin(); j != (*i).end(); ++j,index++)
00086             (*j).saveToConfig(theConfig, index);
00087     theConfig.writeEntry("Modes", index);
00088 
00089     for(iterator i = begin(); i != end(); ++i)
00090         if(theDefaults[i.key()] == QString())
00091             theConfig.writeEntry("Default" + i.key(), "");
00092         else
00093             theConfig.writeEntry("Default" + i.key(), theDefaults[i.key()]);
00094 }
00095 
00096 const Mode &Modes::getMode(const QString &remote, const QString &mode) const
00097 {
00098     return operator[](remote)[mode];
00099 }
00100 
00101 ModeList Modes::getModes(const QString &remote) const
00102 {
00103     ModeList ret;
00104     for(QMap<QString, Mode>::const_iterator i = operator[](remote).begin(); i != operator[](remote).end(); ++i)
00105         ret += *i;
00106     return ret;
00107 }
00108 
00109 void Modes::erase(const Mode &mode)
00110 {
00111     operator[](mode.remote()).erase(mode.name());
00112 }
00113 
00114 void Modes::add(const Mode &mode)
00115 {
00116     kDebug() << "adding a mode " << mode.name() << " to remote " << mode.remote() ;
00117     operator[](mode.remote())[mode.name()] = mode;
00118 }
00119 
00120 void Modes::rename(Mode &mode, const QString name)
00121 {
00122     bool was = isDefault(mode);
00123     erase(mode);
00124     mode.setName(name);
00125     if(was) setDefault(mode);
00126     add(mode);
00127 }
00128 

kdelirc

Skip menu "kdelirc"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members

kdeutils

Skip menu "kdeutils"
  • ark
  • kcalc
  • kcharselect
  • kdelirc
  • kdessh
  • kdf
  • kfloppy
  • kgpg
  • kjots
  • klaptopdaemon
  • kmilo
  • ksim
  • ktimer
  • kwallet
  • superkaramba
Generated for kdeutils by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal