Просмотр исходного кода

Add update button to resource-browser in order to refresh the resource list

Daniele Bartolini 12 лет назад
Родитель
Сommit
0045064f92

+ 14 - 3
tools/editors/resource-browser/resource-browser.py

@@ -32,7 +32,7 @@ from pycrown import Repository
 
 class ResourceBrowser:
 	def __init__(self, repository):
-		repository.scan()
+		self.m_repository = repository
 
 		builder = Gtk.Builder()
 		builder.add_from_file("ui/resource-browser.glade")
@@ -50,8 +50,7 @@ class ResourceBrowser:
 		self.m_list_view.append_column(column)
 
 		# Populate list model
-		for res in repository.all_resources():
-			self.m_list_store.append([res])
+		self.update_list_model()
 
 		self.m_list_filter = self.m_list_store.filter_new()
 		self.m_list_filter.set_visible_func(self.visible_func)
@@ -68,6 +67,18 @@ class ResourceBrowser:
 	def on_delete(self, *args):
 		Gtk.main_quit(*args)
 
+	def update_list_model(self):
+		self.m_repository.scan()
+
+		self.m_list_store.clear()
+
+		for res in self.m_repository.all_resources():
+			self.m_list_store.append([res])
+
+	# Refresh the repository contents
+	def on_update_button_clicked(self, button):
+		self.update_list_model()
+
 	# We call refilter whenever the user types into the filter entry
 	def on_filter_entry_text_changed(self, entry):
 		self.m_list_filter.refilter()

+ 37 - 10
tools/editors/resource-browser/ui/resource-browser.glade

@@ -18,17 +18,44 @@
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
         <child>
-          <object class="GtkEntry" id="entry1">
+          <object class="GtkBox" id="box3">
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="invisible_char">●</property>
-            <property name="caps_lock_warning">False</property>
-            <property name="primary_icon_name">edit-find-symbolic</property>
-            <property name="secondary_icon_name">edit-clear-symbolic</property>
-            <property name="primary_icon_activatable">False</property>
-            <property name="primary_icon_sensitive">False</property>
-            <property name="placeholder_text">Find resource</property>
-            <signal name="changed" handler="on_filter_entry_text_changed" swapped="no"/>
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkEntry" id="entry1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="invisible_char">●</property>
+                <property name="invisible_char_set">True</property>
+                <property name="caps_lock_warning">False</property>
+                <property name="primary_icon_name">edit-find-symbolic</property>
+                <property name="secondary_icon_name">edit-clear-symbolic</property>
+                <property name="primary_icon_activatable">False</property>
+                <property name="primary_icon_sensitive">False</property>
+                <property name="placeholder_text">Find resource</property>
+                <signal name="changed" handler="on_filter_entry_text_changed" swapped="no"/>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button3">
+                <property name="label">gtk-refresh</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+                <signal name="clicked" handler="on_update_button_clicked" swapped="no"/>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>

+ 2 - 0
tools/pycrown/Repository.py

@@ -88,6 +88,8 @@ class Repository:
 
 	# Scans the root path to find resources
 	def scan(self):
+		# Clear the resources
+		self.m_resources = []
 
 		for dirname, dirnames, filenames in os.walk(self.m_root_path):
 			for filename in filenames: