Start of integration of CategoryWindow in the main UI
author"German Poo-Caaman~o <gpoo@gnome.org>"
Wed, 03 Jan 2007 17:18:48 -0300
changeset 21 c0faaa069012
parent 20 fe0b5713ef32
child 22 d8bd72d64c59
Start of integration of CategoryWindow in the main UI
blogic/app.py
dialogs/blogic.glade
--- a/blogic/app.py	Wed Jan 03 17:00:24 2007 -0300
+++ b/blogic/app.py	Wed Jan 03 17:18:48 2007 -0300
@@ -28,6 +28,7 @@
 import gtkspell
 from gettext import bindtextdomain, textdomain
 from gettext import gettext as _
+from categories import CategoryDialog
 
 from kiwi.environ import environ
 
@@ -116,6 +117,7 @@
 
 		# Categories of Blogs
 		self.categories_combo = self.gxml.get_widget('categories')
+		self.label_categories = self.gxml.get_widget('label_categories')
 		model = gtk.ListStore(str, str)
 		self.categories_combo.set_model(model)
 		self.categories_combo.set_text_column(0)
@@ -411,7 +413,7 @@
 		blog = self.blog_get_data(blog_name)
 		self.system = blog["system"]
 
-		print "blog_id", blog["blog_id"]
+		print "get_blog::blog_id:", blog["blog_id"]
 
 		self.blog_engine = BlogEngine.Blog(blog["system"], 
 			                             blog["url"], 
@@ -424,6 +426,8 @@
 	
 		return True
 	
+	### FIXME: It shouldn't use neither categoryName or categoryId.
+	### both of them should be abstracted.
 	def on_blogs_changed(self, widget, user_data=None):
 		"""Update the categories associated to a specific blog"""
 		blog_id = self.blog_engine.get_blog_id()
@@ -461,6 +465,7 @@
 	#	for id in self.blogs.keys():
 	#		categories[id] = self.blog_engine.get_category_list(id)
 	#	return categories
+		print "get_categories::blog_name:", blog_name
 		self.categories = self.blog_get_categories(blog_name)
 
 		model = self.categories_combo.get_model()
@@ -476,6 +481,31 @@
 		model.set_sort_column_id(0, gtk.SORT_ASCENDING)
 		self.categories_combo.set_active(0)
 
+	def on_button_categories_clicked(self, *args):
+		blog_id = self.blog_engine.get_blog_id()
+		print "on_button_categories_clicked::blog_id", blog_id
+		category_list = self.blog_engine.get_category_list(blog_id)
+		categories = []
+		for cat in category_list:
+			categories += [ (cat['categoryId'], 
+			                 False, False, 
+			                 cat['categoryName']) ]
+
+		dialog = CategoryDialog(data=categories)
+		dialog.set_default_size(300,250)
+		dialog.show_all()
+		result = dialog.run()
+
+		if result == gtk.RESPONSE_OK:
+			primary, secondary = dialog.get_categories_choosen()
+
+			text = '<b>%s</b>' % ('; ').join(primary.values())
+			text += ', %s' % ('; ').join(secondary.values())
+			self.label_categories.set_text(text)
+			self.label_categories.set_use_markup(True)
+
+		dialog.hide()
+
 	def on_post_activate(self, widget, user_data=None):
 		self.post(True)
 
--- a/dialogs/blogic.glade	Wed Jan 03 17:00:24 2007 -0300
+++ b/dialogs/blogic.glade	Wed Jan 03 17:18:48 2007 -0300
@@ -1073,56 +1073,19 @@
 			  <property name="spacing">6</property>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox134">
+			    <widget class="GtkButton" id="button_categories">
 			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label186">
-				  <property name="width_request">79</property>
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">_Category:</property>
-				  <property name="use_underline">True</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				  <property name="mnemonic_widget">categories</property>
-				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				  <property name="width_chars">-1</property>
-				  <property name="single_line_mode">False</property>
-				  <property name="angle">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Category:</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NONE</property>
+			      <property name="focus_on_click">True</property>
+			      <signal name="clicked" handler="on_button_categories_clicked" last_modification_time="Wed, 03 Jan 2007 18:55:42 GMT"/>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
 			      <property name="expand">False</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkComboBoxEntry" id="categories">
-			      <property name="visible">True</property>
-			      <property name="add_tearoffs">False</property>
-			      <property name="has_frame">True</property>
-			      <property name="focus_on_click">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">True</property>
+			      <property name="fill">False</property>
 			    </packing>
 			  </child>
 
@@ -1131,7 +1094,7 @@
 			      <property name="visible">True</property>
 			      <property name="label" translatable="yes">...</property>
 			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
+			      <property name="use_markup">True</property>
 			      <property name="justify">GTK_JUSTIFY_LEFT</property>
 			      <property name="wrap">False</property>
 			      <property name="selectable">False</property>
@@ -1150,6 +1113,20 @@
 			      <property name="fill">True</property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkComboBoxEntry" id="categories">
+			      <property name="visible">True</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="has_frame">True</property>
+			      <property name="focus_on_click">True</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>