[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

kdenonbeta/kdedebian/kapture/libcapture



CVS commit by mornfall: 

Convert the filters to newish macros. Flag them as appropriate. Move the
default parseArgs into FilterGrouper, so it's not duplicated and
regulate its use by using HasFlags appropriately. Most filters work like
before now.


  M +6 -6      filters.cpp   1.20
  M +29 -12    filters.h   1.16


--- kdenonbeta/kdedebian/kapture/libcapture/filters.cpp  #1.19:1.20
@@ -67,4 +67,10 @@ void FilterGrouper::addNode (TreeNode *n
 }
                                                                     /* }}} */
+Param::Map FilterGrouper::parseArgs (string s)
+{
+    Param::Map r;
+    Param::set (r, "string", ParamStr::create (s));
+    return r;
+};
 
 /* === PkgExistFilter === */
@@ -106,10 +112,4 @@ bool PkgNameFilter::filterCondition (Tre
 }
                                                                 /* }}} */
-Param::Map PkgNameFilter::parseArgs (string s)
-{
-    Param::Map r;
-    Param::set (r, "string", ParamStr::create (s));
-    return r;
-};
 
 /* === PkgDescrFilter === */

--- kdenonbeta/kdedebian/kapture/libcapture/filters.h  #1.15:1.16
@@ -34,4 +34,5 @@
     GRP_CLASS(t,_n) \
     bool filterCondition (TreeNode *);
+#define FILT_FLAGS(f) unsigned flags () { return IsFilter | f; };
 
 namespace capture {
@@ -47,4 +48,5 @@ namespace capture {
             virtual void addNode (TreeNode *, TreeNode *);
             virtual bool filterCondition (TreeNode *) = 0;
+            Param::Map parseArgs (string s);
             virtual unsigned flags () { return IsFilter; };
     };
@@ -59,5 +61,5 @@ namespace capture {
         public:
             FILT_CLASS (PkgExistFilter, "Remove ghost packages");
-            GRP_FLAGS (IsSystem);
+            FILT_FLAGS (IsSystem);
     };
                                                                     /* }}} */
@@ -68,6 +70,5 @@ namespace capture {
         public:
             FILT_CLASS (PkgNameFilter, "Package Name");
-            GRP_FLAGS (IsFilter | HasParser);
-            Param::Map parseArgs (string s);
+            FILT_FLAGS (HasParser);
         protected:
             std::string m_str;
@@ -77,15 +78,31 @@ namespace capture {
      * ----------------------------------------------------------------------
      */
-    FILTER_DEF (PkgDescrFilter, "Short Description", FilterGrouper, 0, std::string m_str;);
+    class PkgDescrFilter : public FilterGrouper {
+        public:
+            FILT_CLASS (PkgDescrFilter, "Short Description");
+            FILT_FLAGS (HasParser);
+        protected:
+            std::string m_str;
+    };
                                                                     /* }}} */
-    /* PkgTagFilter - match package tags against expression             {{{
-     * ----------------------------------------------------------------------
-     */
-    FILTER_DEF (PkgTagFilter, "Package Tags", FilterGrouper, PkgManager::TagsChange, bool m_filter; Tagexpr *m_expr;);
+    // PkgTagFilter - match package tags against expression            {{{
+    // ----------------------------------------------------------------------
+    class PkgTagFilter : public FilterGrouper {
+        public:
+            FILT_CLASS (PkgTagFilter, "Package Tags");
+            GRP_AFFECT (PkgManager::TagsChange);
+            FILT_FLAGS (HasParser);
+        protected:
+            bool m_filter;
+            Tagexpr *m_expr;
+    };
                                                                     /* }}} */
-    /* PkgChangedFilter - filter to remove unchanged packages           {{{
-     * ----------------------------------------------------------------------
-     */
-    FILTER_DEF (PkgChangedFilter, "Changed Only", FilterGrouper, PkgManager::InstallChange);
+    // PkgChangedFilter - filter to remove unchanged packages          {{{
+    // ----------------------------------------------------------------------
+    class PkgChangedFilter : public FilterGrouper {
+        public:
+            FILT_CLASS (PkgChangedFilter, "Changed Only");
+            GRP_AFFECT (PkgManager::InstallChange);
+    };
                                                                     /* }}} */
     /* PkgStatusFilter - filter on the status field of package         {{{




Reply to: