[Thunar-workers] CVS: design/ui ChangeLog, 1.33, 1.34 ThunarIconView.py, 1.3, 1.4 ThunarListView.py, 1.5, 1.6 ThunarModel.py, 1.1, 1.2 ThunarView.py, 1.5, 1.6 ThunarWindow.py, 1.22, 1.23 thunar.ui, 1.11, 1.12
Benedikt Meurer
benny at xfce.org
Mon Mar 28 20:02:28 CEST 2005
Update of /var/cvs/thunar/design/ui
In directory espresso.foo-projects.org:/tmp/cvs-serv26914
Modified Files:
ChangeLog ThunarIconView.py ThunarListView.py ThunarModel.py
ThunarView.py ThunarWindow.py thunar.ui
Log Message:
2005-03-28 Benedikt Meurer <benny at xfce.org>
* thunar.ui, ThunarWindow.py: Add 'Invert Selection' to the 'Edit'
menu.
* ThunarIconView.py, ThunarListView.py, ThunarView.py, ThunarModel.py:
Implement the new 'Invert Selection' and 'Select by Pattern' actions.
* ThunarWindow.py: Add dialog for the 'Select by Pattern' action.
Index: ChangeLog
===================================================================
RCS file: /var/cvs/thunar/design/ui/ChangeLog,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- ChangeLog 24 Mar 2005 18:17:40 -0000 1.33
+++ ChangeLog 28 Mar 2005 18:02:25 -0000 1.34
@@ -1,3 +1,11 @@
+2005-03-28 Benedikt Meurer <benny at xfce.org>
+
+ * thunar.ui, ThunarWindow.py: Add 'Invert Selection' to the 'Edit'
+ menu.
+ * ThunarIconView.py, ThunarListView.py, ThunarView.py, ThunarModel.py:
+ Implement the new 'Invert Selection' and 'Select by Pattern' actions.
+ * ThunarWindow.py: Add dialog for the 'Select by Pattern' action.
+
2005-03-24 Benedikt Meurer <benny at xfce.org>
* ThunarPathBar.py: Don't display forward history as suggested by
Index: ThunarIconView.py
===================================================================
RCS file: /var/cvs/thunar/design/ui/ThunarIconView.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ThunarIconView.py 16 Mar 2005 10:49:05 -0000 1.3
+++ ThunarIconView.py 28 Mar 2005 18:02:25 -0000 1.4
@@ -58,6 +58,25 @@
return list
+ def select_by_pattern(self, pattern):
+ self.unselect_all()
+ for iter in self.get_model().match(pattern):
+ path = self.get_model().get_path(iter)
+ self.select_path(path)
+
+
+ def invert_selection(self):
+ model = self.get_model()
+ iter = model.get_iter_first()
+ while iter:
+ path = model.get_path(iter)
+ if self.path_is_selected(path):
+ self.unselect_path(path)
+ else:
+ self.select_path(path)
+ iter = model.iter_next(iter)
+
+
def _activated(self, path):
iter = self.get_model().get_iter(path)
info = self.get_model().get(iter, ThunarModel.COLUMN_FILEINFO)[0]
Index: ThunarListView.py
===================================================================
RCS file: /var/cvs/thunar/design/ui/ThunarListView.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- ThunarListView.py 16 Mar 2005 10:49:05 -0000 1.5
+++ ThunarListView.py 28 Mar 2005 18:02:25 -0000 1.6
@@ -113,6 +113,25 @@
self.get_selection().select_all()
+ def select_by_pattern(self, pattern):
+ selection = self.get_selection()
+ selection.unselect_all()
+ for iter in self.get_model().match(pattern):
+ selection.select_iter(iter)
+
+
+ def invert_selection(self):
+ selection = self.get_selection()
+ model = self.get_model()
+ iter = model.get_iter_first()
+ while iter:
+ if selection.iter_is_selected(iter):
+ selection.unselect_iter(iter)
+ else:
+ selection.select_iter(iter)
+ iter = model.iter_next(iter)
+
+
def _activated(self, path):
iter = self.get_model().get_iter(path)
info = self.get_model().get(iter, ThunarModel.COLUMN_FILEINFO)[0]
Index: ThunarModel.py
===================================================================
RCS file: /var/cvs/thunar/design/ui/ThunarModel.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- ThunarModel.py 27 Feb 2005 18:13:49 -0000 1.1
+++ ThunarModel.py 28 Mar 2005 18:02:25 -0000 1.2
@@ -22,7 +22,7 @@
# 02111-1307, USA.
#
-import dircache, os
+import dircache, fnmatch, os
import pygtk
pygtk.require('2.0')
@@ -70,6 +70,17 @@
])
+ def match(self, pattern):
+ result = []
+ iter = self.get_iter_first()
+ while iter:
+ info = self.get(iter, self.COLUMN_FILEINFO)[0]
+ if fnmatch.fnmatch(info.get_visible_name(), pattern):
+ result.append(iter)
+ iter = self.iter_next(iter)
+ return result
+
+
def _compare(self, model, iter1, iter2):
info1 = self.get(iter1, self.COLUMN_FILEINFO)[0]
info2 = self.get(iter2, self.COLUMN_FILEINFO)[0]
Index: ThunarView.py
===================================================================
RCS file: /var/cvs/thunar/design/ui/ThunarView.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- ThunarView.py 16 Mar 2005 10:49:05 -0000 1.5
+++ ThunarView.py 28 Mar 2005 18:02:25 -0000 1.6
@@ -42,6 +42,14 @@
pass
+ def select_by_pattern(self, pattern):
+ pass
+
+
+ def invert_selection(self):
+ pass
+
+
def activated(self, info, new_window = False):
self.emit('activated', info, new_window)
Index: ThunarWindow.py
===================================================================
RCS file: /var/cvs/thunar/design/ui/ThunarWindow.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- ThunarWindow.py 20 Mar 2005 17:10:19 -0000 1.22
+++ ThunarWindow.py 28 Mar 2005 18:02:25 -0000 1.23
@@ -82,7 +82,8 @@
('cut-files', gtk.STOCK_CUT, 'Cu_t Files', '<Control>X'),
('paste-files', gtk.STOCK_PASTE, '_Paste Files', '<Control>V'),
('select-all-files', None, 'Select _All Files', '<Control>S', None, lambda ign, self: self.view.select_all()),
- ('select-by-pattern', None, 'Select by Pattern', None),
+ ('select-by-pattern', None, 'Select b_y Pattern', None, None, lambda ign, self: self._action_select_by_pattern()),
+ ('invert-selection', None, '_Invert Selection', '<Control>I', None, lambda ign, self: self.view.invert_selection()),
('edit-toolbars', None, '_Edit Toolbars...', None),
('preferences', gtk.STOCK_PREFERENCES, 'Prefere_nces...', None),
], self)
@@ -134,7 +135,6 @@
self.action_group.get_action('copy-files').set_property('sensitive', False)
self.action_group.get_action('cut-files').set_property('sensitive', False)
self.action_group.get_action('paste-files').set_property('sensitive', False)
- self.action_group.get_action('select-by-pattern').set_property('sensitive', False)
self.action_group.get_action('edit-toolbars').set_property('sensitive', False)
self.action_group.get_action('preferences').set_property('sensitive', False)
self.action_group.get_action('go-back').set_property('sensitive', False)
@@ -462,6 +462,33 @@
return False
+ def _action_select_by_pattern(self):
+ dialog = gtk.Dialog('Select by pattern', self, gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_NO_SEPARATOR | gtk.DIALOG_MODAL, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK))
+ dialog.set_default_response(gtk.RESPONSE_OK)
+ dialog.set_default_size(390, 50)
+ dialog.set_border_width(6)
+
+ hbox = gtk.HBox(False, 10)
+ hbox.set_border_width(6)
+ dialog.vbox.pack_start(hbox, True, True, 0)
+ hbox.show()
+
+ label = gtk.Label('Pattern:')
+ hbox.pack_start(label, False, False, 0)
+ label.show()
+
+ entry = gtk.Entry()
+ entry.set_activates_default(True)
+ hbox.pack_start(entry, True, True, 0)
+ entry.show()
+
+ if dialog.run() == gtk.RESPONSE_OK:
+ pattern = entry.get_chars(0, -1)
+ self.view.select_by_pattern(pattern)
+
+ dialog.destroy()
+
+
def _action_open_location_other(self):
if self.pathbar and self.pathbar.__class__ == ThunarLocationBar:
self.pathbar.focus()
Index: thunar.ui
===================================================================
RCS file: /var/cvs/thunar/design/ui/thunar.ui,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- thunar.ui 20 Mar 2005 17:10:19 -0000 1.11
+++ thunar.ui 28 Mar 2005 18:02:26 -0000 1.12
@@ -40,6 +40,7 @@
<separator />
<menuitem action="select-all-files" />
<menuitem action="select-by-pattern" />
+ <menuitem action="invert-selection" />
<separator />
<menuitem action="edit-toolbars" />
<menuitem action="preferences" />
More information about the Thunar-workers
mailing list