Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / conditions.cpp
index 936346f25e49f1f710db9945884ccf00d9d47c29..d35f18cf1f66391e942ce2ef2422ec77c9de0ca6 100644 (file)
@@ -1,10 +1,9 @@
-#define __SP_CONDITIONS_CPP__
-
 /*
  * SVG conditional attribute evaluation
  *
  * Authors:
  *   Andrius R. <knutux@gmail.com>
+ *   Abhishek Sharma
  *
  * Copyright (C) 2006 authors
  *
@@ -19,7 +18,7 @@
 #include <glibmm/ustring.h>
 #include "conditions.h"
 #include "xml/repr.h"
-#include "dialogs/rdf.h"
+#include "rdf.h"
 
 typedef bool (* condition_evaluator)(SPItem const *item, gchar const *value);
 
@@ -39,20 +38,16 @@ static Condition _condition_handlers[] = {
     { "requiredExtensions", evaluateRequiredExtensions },
 };
 
-/* function which evaluates if item should be displayed */
+// function which evaluates if item should be displayed
 bool sp_item_evaluate(SPItem const *item) {
-    Inkscape::XML::Node *grepr = SP_OBJECT_REPR (item);
-    
-    for ( unsigned int i = 0 ; i < sizeof(_condition_handlers)/sizeof(_condition_handlers[0]) ; i++ ) {
-        gchar const *value = grepr->attribute(_condition_handlers[i].attribute);
-        if ( NULL == value )
-            continue;
-
-        if (!_condition_handlers[i].evaluator(item, value))
-            return false;
+    bool needDisplay = true;
+    for ( unsigned int i = 0 ; needDisplay && (i < sizeof(_condition_handlers) / sizeof(_condition_handlers[0])) ; i++ ) {
+        gchar const *value = item->getAttribute(_condition_handlers[i].attribute);
+        if ( value && !_condition_handlers[i].evaluator(item, value) ) {
+            needDisplay = false;
+        }
     }
-
-    return true;
+    return needDisplay;
 }
 
 #define ISALNUM(c)    (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9'))
@@ -258,7 +253,7 @@ static bool evaluateSingleFeature(gchar const *value) {
     return false;
 }
 
-static bool evaluateRequiredFeatures(SPItem const *item, gchar const *value) {
+static bool evaluateRequiredFeatures(SPItem const */*item*/, gchar const *value) {
     if ( NULL == value )
         return true;
 
@@ -275,7 +270,7 @@ static bool evaluateRequiredFeatures(SPItem const *item, gchar const *value) {
     return true;
 }
 
-static bool evaluateRequiredExtensions(SPItem const *item, gchar const *value) {
+static bool evaluateRequiredExtensions(SPItem const */*item*/, gchar const *value) {
     if ( NULL == value )
         return true;
     return false;
@@ -459,4 +454,4 @@ zu Zulu
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :