* static method 'mergePath' is now normal method 'merge'
authormishas <mikhail.sobolev@gmail.com>
Thu, 12 Apr 2007 07:13:20 +0000 (07:13 +0000)
committermishas <mikhail.sobolev@gmail.com>
Thu, 12 Apr 2007 07:13:20 +0000 (07:13 +0000)
 * added qualifier const the myKeyPath
 * implemented method 'merge'

git-svn-id: file:///svnroot/simple-launcher/trunk@169 3ba93dab-e023-0410-b42a-de7732cf370a

gconf-wrapper.cc
gconf-wrapper.h

index e1120d6..cad3e04 100644 (file)
@@ -32,6 +32,21 @@ void GConfItem::allocateClient() {
 GConfKey::GConfKey(const std::string& path): myKeyPath(path) {
 }
 
+std::string GConfKey::merge(const std::string& path) const {
+  std::string result = myKeyPath;
+
+  if (path.empty()) {
+    // this is actually a bad situation, what to do??
+  } else if (path[0] == '/') {
+    result.append(path);
+  } else {
+    result.append("/");
+    result.append(path);
+  }
+
+  return result;
+}
+
 GConfStringValue::GConfStringValue(const GConfKey& key, const std::string& name, const std::string& defaultValue):
   GConfOption(key, name),
   myDefaultValue(defaultValue) {
index 198b146..9fbf284 100644 (file)
@@ -44,15 +44,15 @@ public:
 
   const std::string& path() const { return myKeyPath; }
 
-  static std::string mergePath(const std::string&, const std::string);
+  std::string merge(const std::string&) const;
 
 private:
-  std::string myKeyPath;
+  const std::string myKeyPath;
 };
 
 class GConfOption : public GConfItem {
 protected:
-  GConfOption(const GConfKey& key, const std::string& path): myIsSynchronized(false), myPath(GConfKey::mergePath(key.path(), path)) { }
+  GConfOption(const GConfKey& key, const std::string& path): myIsSynchronized(false), myPath(key.merge(path)) { }
 
   void setGConfValue(const GConfValue *);
   GConfValue *getGConfValue(GConfValueType) const;