ekiga r7272 - trunk/lib/engine/framework



Author: jpuydt
Date: Tue Oct 21 16:57:57 2008
New Revision: 7272
URL: http://svn.gnome.org/viewvc/ekiga?rev=7272&view=rev

Log:
Allow form fields to be advanced in the framework, first step to fix bug #556324.

Modified:
   trunk/lib/engine/framework/form-builder.cpp
   trunk/lib/engine/framework/form-builder.h
   trunk/lib/engine/framework/form-dumper.cpp
   trunk/lib/engine/framework/form-dumper.h
   trunk/lib/engine/framework/form-visitor.h

Modified: trunk/lib/engine/framework/form-builder.cpp
==============================================================================
--- trunk/lib/engine/framework/form-builder.cpp	(original)
+++ trunk/lib/engine/framework/form-builder.cpp	Tue Oct 21 16:57:57 2008
@@ -74,13 +74,15 @@
 
       visitor.boolean (iter_bool->name,
 		       iter_bool->description,
-		       iter_bool->value);
+		       iter_bool->value,
+		       iter_bool->advanced);
       iter_bool++;
       break;
 
     case TEXT:
 
-      visitor.text (iter_text->name, iter_text->description, iter_text->value);
+      visitor.text (iter_text->name, iter_text->description,
+		    iter_text->value, iter_text->advanced);
       iter_text++;
       break;
 
@@ -88,7 +90,8 @@
 
       visitor.private_text (iter_private_text->name,
 			    iter_private_text->description,
-			    iter_private_text->value);
+			    iter_private_text->value,
+			    iter_private_text->advanced);
       iter_private_text++;
       break;
 
@@ -96,7 +99,8 @@
 
       visitor.multi_text (iter_multi_text->name,
 			  iter_multi_text->description,
-			  iter_multi_text->value);
+			  iter_multi_text->value,
+			  iter_multi_text->advanced);
       iter_multi_text++;
       break;
 
@@ -105,7 +109,8 @@
       visitor.single_choice (iter_single_choice->name,
 			     iter_single_choice->description,
 			     iter_single_choice->value,
-			     iter_single_choice->choices);
+			     iter_single_choice->choices,
+			     iter_single_choice->advanced);
       iter_single_choice++;
       break;
 
@@ -114,7 +119,8 @@
       visitor.multiple_choice (iter_multiple_choice->name,
 			       iter_multiple_choice->description,
 			       iter_multiple_choice->values,
-			       iter_multiple_choice->choices);
+			       iter_multiple_choice->choices,
+			       iter_multiple_choice->advanced);
       iter_multiple_choice++;
       break;
 
@@ -123,7 +129,8 @@
       visitor.editable_set (iter_editable_set->name,
 			    iter_editable_set->description,
 			    iter_editable_set->values,
-			    iter_editable_set->proposed_values);
+			    iter_editable_set->proposed_values,
+			    iter_editable_set->advanced);
       iter_editable_set++;
       break;
 
@@ -265,36 +272,40 @@
 void
 Ekiga::FormBuilder::boolean (const std::string name,
 			     const std::string description,
-			     bool value)
+			     bool value,
+			     bool advanced)
 {
-  booleans.push_back (BooleanField (name, description, value));
+  booleans.push_back (BooleanField (name, description, value, advanced));
   ordering.push_back (BOOLEAN);
 }
 
 void
 Ekiga::FormBuilder::text (const std::string name,
 			  const std::string description,
-			  const std::string value)
+			  const std::string value,
+			  bool advanced)
 {
-  texts.push_back (TextField (name, description, value));
+  texts.push_back (TextField (name, description, value, advanced));
   ordering.push_back (TEXT);
 }
 
 void
 Ekiga::FormBuilder::private_text (const std::string name,
 				  const std::string description,
-				  const std::string value)
+				  const std::string value,
+				  bool advanced)
 {
-  private_texts.push_back (TextField (name, description, value));
+  private_texts.push_back (TextField (name, description, value, advanced));
   ordering.push_back (PRIVATE_TEXT);
 }
 
 void
 Ekiga::FormBuilder::multi_text (const std::string name,
 				const std::string description,
-				const std::string value)
+				const std::string value,
+				bool advanced)
 {
-  multi_texts.push_back (MultiTextField (name, description, value));
+  multi_texts.push_back (MultiTextField (name, description, value, advanced));
   ordering.push_back (MULTI_TEXT);
 }
 
@@ -302,9 +313,11 @@
 Ekiga::FormBuilder::single_choice (const std::string name,
 				   const std::string description,
 				   const std::string value,
-				   const std::map<std::string, std::string> choices)
+				   const std::map<std::string, std::string> choices,
+				   bool advanced)
 {
-  single_choices.push_back (SingleChoiceField (name, description, value, choices));
+  single_choices.push_back (SingleChoiceField (name, description,
+					       value, choices, advanced));
   ordering.push_back (SINGLE_CHOICE);
 }
 
@@ -312,10 +325,11 @@
 Ekiga::FormBuilder::multiple_choice (const std::string name,
 				     const std::string description,
 				     const std::set<std::string> values,
-				     const std::map<std::string, std::string> choices)
+				     const std::map<std::string, std::string> choices,
+				     bool advanced)
 {
   multiple_choices.push_back (MultipleChoiceField (name, description,
-						   values, choices));
+						   values, choices, advanced));
   ordering.push_back (MULTIPLE_CHOICE);
 }
 
@@ -323,9 +337,10 @@
 Ekiga::FormBuilder::editable_set (const std::string name,
 				  const std::string description,
 				  const std::set<std::string> values,
-				  const std::set<std::string> proposed_values)
+				  const std::set<std::string> proposed_values,
+				  bool advanced)
 {
-  editable_sets.push_back (EditableSetField (name, description,
-					     values, proposed_values));
+  editable_sets.push_back (EditableSetField (name, description, values,
+					     proposed_values, advanced));
   ordering.push_back (EDITABLE_SET);
 }

Modified: trunk/lib/engine/framework/form-builder.h
==============================================================================
--- trunk/lib/engine/framework/form-builder.h	(original)
+++ trunk/lib/engine/framework/form-builder.h	Tue Oct 21 16:57:57 2008
@@ -90,34 +90,41 @@
 
     void boolean (const std::string name,
 		  const std::string description,
-		  bool value);
+		  bool value,
+		  bool advanced = false);
 
     void text (const std::string text,
 	       const std::string description,
-	       const std::string value);
+	       const std::string value,
+	       bool advanced = false);
 
     void private_text (const std::string text,
 		       const std::string description,
-		       const std::string value);
+		       const std::string value,
+		       bool advanced = false);
 
     void multi_text (const std::string text,
 		     const std::string description,
-		     const std::string value);
+		     const std::string value,
+		     bool advanced = false);
 
     void single_choice (const std::string name,
 			const std::string description,
 			const std::string value,
-			const std::map<std::string, std::string> choices);
+			const std::map<std::string, std::string> choices,
+			bool advanced = false);
 
     void multiple_choice (const std::string name,
 			  const std::string description,
 			  const std::set<std::string> values,
-			  const std::map<std::string, std::string> choices);
+			  const std::map<std::string, std::string> choices,
+			  bool advanced = false);
 
     void editable_set (const std::string name,
 		       const std::string description,
 		       const std::set<std::string> values,
-		       const std::set<std::string> proposed_values);
+		       const std::set<std::string> proposed_values,
+		       bool advanced = false);
   private:
 
     struct HiddenField
@@ -128,47 +135,54 @@
 
       const std::string name;
       const std::string value;
+      bool advanced;
     };
 
     struct BooleanField
     {
       BooleanField (const std::string _name,
 		    const std::string _description,
-		    bool _value): name(_name), description(_description),
-				  value(_value)
+		    bool _value,
+		    bool _advanced): name(_name), description(_description),
+				     value(_value), advanced(_advanced)
       {}
 
       const std::string name;
       const std::string description;
       bool value;
+      bool advanced;
     };
 
     struct TextField
     {
       TextField (const std::string _name,
 		 const std::string _description,
-		 const std::string _value): name(_name),
-					    description(_description),
-					    value(_value)
+		 const std::string _value,
+		 bool _advanced): name(_name),
+				  description(_description),
+				  value(_value), advanced(_advanced)
       {}
 
       const std::string name;
       const std::string description;
       const std::string value;
+      bool advanced;
     };
 
     struct MultiTextField
     {
       MultiTextField (const std::string _name,
 		      const std::string _description,
-		      const std::string _value): name(_name),
-						 description(_description),
-						 value(_value)
+		      const std::string _value,
+		      bool _advanced): name(_name),
+				       description(_description),
+				       value(_value), advanced(_advanced)
       {}
 
       const std::string name;
       const std::string description;
       const std::string value;
+      bool advanced;
     };
 
     struct SingleChoiceField
@@ -176,15 +190,17 @@
       SingleChoiceField (const std::string _name,
 			 const std::string _description,
 			 const std::string _value,
-			 const std::map<std::string, std::string> _choices):
+			 const std::map<std::string, std::string> _choices,
+			 bool _advanced):
 	name(_name), description(_description),
-	value(_value), choices(_choices)
+	value(_value), choices(_choices), advanced(_advanced)
       {}
 
       const std::string name;
       const std::string description;
       const std::string value;
       const std::map<std::string, std::string> choices;
+      bool advanced;
     };
 
 
@@ -193,15 +209,17 @@
       MultipleChoiceField (const std::string _name,
 			   const std::string _description,
 			   const std::set<std::string> _values,
-			   const std::map<std::string, std::string> _choices):
+			   const std::map<std::string, std::string> _choices,
+			   bool _advanced):
 	name(_name), description(_description),
-	values(_values), choices(_choices)
+	values(_values), choices(_choices), advanced(_advanced)
       {}
 
       const std::string name;
       const std::string description;
       const std::set<std::string> values;
       const std::map<std::string, std::string> choices;
+      bool advanced;
     };
 
     struct EditableSetField
@@ -209,15 +227,17 @@
       EditableSetField (const std::string _name,
 			const std::string _description,
 			const std::set<std::string> _values,
-			const std::set<std::string> _proposed_values):
+			const std::set<std::string> _proposed_values,
+			bool _advanced):
 	name(_name), description(_description),
-	values(_values), proposed_values(_proposed_values)
+	values(_values), proposed_values(_proposed_values), advanced(_advanced)
       {}
 
       const std::string name;
       const std::string description;
       const std::set<std::string> values;
       const std::set<std::string> proposed_values;
+      bool advanced;
     };
 
     typedef enum {

Modified: trunk/lib/engine/framework/form-dumper.cpp
==============================================================================
--- trunk/lib/engine/framework/form-dumper.cpp	(original)
+++ trunk/lib/engine/framework/form-dumper.cpp	Tue Oct 21 16:57:57 2008
@@ -79,7 +79,8 @@
 void
 Ekiga::FormDumper::boolean (const std::string name,
 			    const std::string description,
-			    bool value)
+			    bool value,
+			    bool advanced)
 {
   out << "Boolean field " << name
       << " (default value: ";
@@ -88,48 +89,62 @@
   else
     out << "false";
   out << "):" << std::endl
-      << description << std::endl;
+      << description
+      << (advanced?"[advanced]":"")
+      << std::endl;
 }
 
 void
 Ekiga::FormDumper::text (const std::string name,
 			 const std::string description,
-			 const std::string value)
+			 const std::string value,
+			 bool advanced)
 {
   out << "Text field " << name
       << " (default value: " << value << "): " << std::endl
-      << description << std::endl;
+      << description
+      << (advanced?"[advanced]":"")
+      << std::endl;
 }
 
 void
 Ekiga::FormDumper::private_text (const std::string name,
 				 const std::string description,
-				 const std::string value)
+				 const std::string value,
+				 bool advanced)
 {
   out << "Private text field " << name
       << " (default value: " << value << "): " << std::endl
-      << description << std::endl;
+      << description
+      << (advanced?"[advanced]":"")
+      << std::endl;
 }
 
 void
 Ekiga::FormDumper::multi_text (const std::string name,
 			       const std::string description,
-			       const std::string value)
+			       const std::string value,
+			       bool advanced)
 {
   out << "Multiline text field " << name
       << " (default value: " << value << "): " << std::endl
-      << description << std::endl;
+      << description
+      << (advanced?"[advanced]":"")
+      << std::endl;
 }
 
 void
 Ekiga::FormDumper::single_choice (const std::string name,
 				  const std::string description,
 				  const std::string value,
-				  const std::map<std::string, std::string> choices)
+				  const std::map<std::string, std::string> choices,
+				  bool advanced)
 {
   out << "Single choice list " << name
       << " (default choice: " << value << "): " << std::endl
-      << description << std::endl
+      << description
+      << (advanced?"[advanced]":"")
+      << std::endl
       << "where choices are :" << std::endl;
   for (std::map<std::string, std::string>::const_iterator iter = choices.begin ();
        iter != choices.end ();
@@ -141,10 +156,13 @@
 Ekiga::FormDumper::multiple_choice (const std::string name,
 				    const std::string description,
 				    const std::set<std::string> values,
-				    const std::map<std::string, std::string> choices)
+				    const std::map<std::string, std::string> choices,
+				    bool advanced)
 {
   out << "Multiple choice list " << name << ":" << std::endl
-      << description << std::endl
+      << description
+      << (advanced?"[advanced]":"")
+      << std::endl
       << "where choices are :" << std::endl;
   for (std::map<std::string, std::string>::const_iterator iter = choices.begin ();
        iter != choices.end ();
@@ -163,10 +181,12 @@
 Ekiga::FormDumper::editable_set (const std::string name,
 				 const std::string description,
 				 const std::set<std::string> values,
-				 const std::set<std::string> proposed_values)
+				 const std::set<std::string> proposed_values,
+				 bool advanced)
 {
   out << "Editable list " << name << ":" << std::endl
-      << description << std::endl
+      << description
+      << (advanced?"[advanced]":"")
       << "where current set is :" << std::endl;
   for (std::set<std::string>::const_iterator iter = values.begin ();
        iter != values.end ();

Modified: trunk/lib/engine/framework/form-dumper.h
==============================================================================
--- trunk/lib/engine/framework/form-dumper.h	(original)
+++ trunk/lib/engine/framework/form-dumper.h	Tue Oct 21 16:57:57 2008
@@ -64,41 +64,49 @@
     void link (const std::string link,
                        const std::string uri);
 
-    void error (const std::string );
+    void error (const std::string msg);
 
     void hidden (const std::string name,
 		 const std::string value);
 
     void boolean (const std::string name,
 		  const std::string description,
-		  bool value);
+		  bool value,
+		  bool advanced);
 
     void text (const std::string name,
 	       const std::string description,
-	       const std::string value);
+	       const std::string value,
+	       bool advanced);
 
     void private_text (const std::string name,
 		       const std::string description,
-		       const std::string value);
+		       const std::string value,
+		       bool advanced);
 
     void multi_text (const std::string name,
 		     const std::string description,
-		     const std::string value);
+		     const std::string value,
+		     bool advanced);
 
     void single_choice (const std::string name,
 			const std::string description,
 			const std::string value,
-			const std::map<std::string, std::string> choices);
+			const std::map<std::string, std::string> choices,
+			bool advanced);
 
     void multiple_choice (const std::string name,
 			  const std::string description,
 			  const std::set<std::string> values,
-			  const std::map<std::string, std::string> choices);
+			  const std::map<std::string, std::string> choices,
+			  bool advanced);
 
     void editable_set (const std::string name,
 		       const std::string description,
 		       const std::set<std::string> values,
-		       const std::set<std::string> proposed_values);
+		       const std::set<std::string> proposed_values,
+		       bool advanced);
+
   private:
 
     std::ostream &out;

Modified: trunk/lib/engine/framework/form-visitor.h
==============================================================================
--- trunk/lib/engine/framework/form-visitor.h	(original)
+++ trunk/lib/engine/framework/form-visitor.h	Tue Oct 21 16:57:57 2008
@@ -61,26 +61,30 @@
     virtual void link (const std::string link,
                        const std::string uri) = 0;
 
-    virtual void error (const std::string error) = 0;
+    virtual void error (const std::string msg) = 0;
 
     virtual void hidden (const std::string name,
 			 const std::string value) = 0;
 
     virtual void boolean (const std::string name,
 			  const std::string description,
-			  bool value) = 0;
+			  bool value,
+			  bool advanced) = 0;
 
     virtual void text (const std::string name,
 		       const std::string description,
-		       const std::string value) = 0;
+		       const std::string value,
+		       bool advanced) = 0;
 
     virtual void private_text (const std::string name,
 			       const std::string description,
-			       const std::string value) = 0;
+			       const std::string value,
+			       bool advanced) = 0;
 
     virtual void multi_text (const std::string name,
 			     const std::string description,
-			     const std::string value) = 0;
+			     const std::string value,
+			     bool advanced) = 0;
 
     virtual void single_choice (const std::string name,
 				const std::string description,
@@ -88,7 +92,8 @@
 				/* pairs (value, name),
 				 * where value is internal and name shown to
 				 * the user (hence translated) */
-				const std::map<std::string, std::string> choices) = 0;
+				const std::map<std::string,std::string> choices,
+				bool advanced) = 0;
 
     virtual void multiple_choice (const std::string name,
 				  const std::string description,
@@ -96,12 +101,14 @@
 				  /* pairs (value, name),
 				   * where value is internal and name shown to
 				   * the user (hence translated) */
-				  const std::map<std::string, std::string> choices) = 0;
+				  const std::map<std::string,std::string> choices,
+				  bool advanced) = 0;
 
     virtual void editable_set (const std::string name,
 			       const std::string description,
 			       const std::set<std::string> values,
-			       const std::set<std::string> proposed_values) = 0;
+			       const std::set<std::string> proposed_values,
+			       bool advanced) = 0;
   };
 
 /**



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