[z3-checkins] r13170 - in z3/zopejam/trunk/src/zopejam: . icons/menu icons/other icons/toolbar

hathawsh at codespeak.net hathawsh at codespeak.net
Wed Jun 8 09:21:00 CEST 2005


Author: hathawsh
Date: Wed Jun  8 09:20:53 2005
New Revision: 13170

Added:
   z3/zopejam/trunk/src/zopejam/icons/other/cancel.png   (contents, props changed)
   z3/zopejam/trunk/src/zopejam/icons/other/clear_right.png   (contents, props changed)
   z3/zopejam/trunk/src/zopejam/icons/other/find.png   (contents, props changed)
Removed:
   z3/zopejam/trunk/src/zopejam/icons/menu/filter.png
   z3/zopejam/trunk/src/zopejam/icons/menu/find.png
   z3/zopejam/trunk/src/zopejam/icons/toolbar/filter.png
   z3/zopejam/trunk/src/zopejam/icons/toolbar/find.png
Modified:
   z3/zopejam/trunk/src/zopejam/main.py
   z3/zopejam/trunk/src/zopejam/resources.xrc
Log:
Replaced multi-line filter with a simple filter box

Deleted: /z3/zopejam/trunk/src/zopejam/icons/menu/filter.png
==============================================================================
Binary file. No diff available.

Deleted: /z3/zopejam/trunk/src/zopejam/icons/menu/find.png
==============================================================================
Binary file. No diff available.

Added: z3/zopejam/trunk/src/zopejam/icons/other/cancel.png
==============================================================================
Binary file. No diff available.

Added: z3/zopejam/trunk/src/zopejam/icons/other/clear_right.png
==============================================================================
Binary file. No diff available.

Added: z3/zopejam/trunk/src/zopejam/icons/other/find.png
==============================================================================
Binary file. No diff available.

Deleted: /z3/zopejam/trunk/src/zopejam/icons/toolbar/filter.png
==============================================================================
Binary file. No diff available.

Deleted: /z3/zopejam/trunk/src/zopejam/icons/toolbar/find.png
==============================================================================
Binary file. No diff available.

Modified: z3/zopejam/trunk/src/zopejam/main.py
==============================================================================
--- z3/zopejam/trunk/src/zopejam/main.py	(original)
+++ z3/zopejam/trunk/src/zopejam/main.py	Wed Jun  8 09:20:53 2005
@@ -28,7 +28,6 @@
         'rename', 'close', 'quit',
         # Edit menu
         'undo', 'redo', 'cut', 'copy', 'paste', 'delete',
-        'filter', 'find',
         # Tools menu
         'test', 'restart',
         # Help menu
@@ -39,7 +38,6 @@
         'new', 'open', 'openproject',
         'save', 'saveall', 'close',
         'undo', 'redo', 'cut', 'copy', 'paste',
-        'filter', 'find',
         'test',
         ]
 
@@ -97,99 +95,22 @@
         self.frame.Close()
 
 
-class FilterRow:
-    _ctrl_names = [
-        'before_text', 'field_choice', 'operator_choice',
-        'value_box', 'clear_button', 'and_button',
-        ]
-
-    def __init__(self, gui, dir_list, row_index):
-        self.gui = gui
-        self.dir_list = dir_list
-        self.suppress_event = False
-        filter_list = xrc.XRCCTRL(self.dir_list.panel, 'filter_list_panel')
-        self.panel = gui.resources.LoadPanel(filter_list, 'filter_panel')
-
-        for name in self._ctrl_names:
-            c = xrc.XRCCTRL(self.panel, name)
-            assert c is not None
-            setattr(self, name, c)
-
-        self.setRowIndex(row_index)
-        filter_list.GetSizer().Insert(row_index, self.panel, flag=wx.EXPAND)
-        self.dir_list.panel.Layout()
-
-        self.timer = wx.Timer(self.value_box)
-        self.field_choice.Bind(wx.EVT_CHOICE, self.onChange)
-        self.operator_choice.Bind(wx.EVT_CHOICE, self.onChange)
-        self.value_box.Bind(wx.EVT_COMBOBOX, self.onChange)
-        self.value_box.Bind(wx.EVT_TEXT, self.onDelayChange)
-        self.value_box.Bind(wx.EVT_TEXT_ENTER, self.onChange)
-        self.value_box.Bind(wx.EVT_TIMER, self.onChange)
-        self.clear_button.Bind(wx.EVT_BUTTON, self.onClear)
-        self.and_button.Bind(wx.EVT_BUTTON, self.onAnd)
-
-    def setRowIndex(self, i):
-        if i == 0:
-            self.before_text.SetLabel('Filter:')
-        else:
-            self.before_text.SetLabel('and')
-
-    def onDelayChange(self, event):
-        self.timer.Start(1000, oneShot=True)
-
-    def onChange(self, event):
-        self.timer.Stop()
-        if not self.suppress_event:
-            self.dir_list.onChangeFilter(event)
-
-    def onClear(self, event):
-        self.timer.Stop()
-        rows = self.dir_list.filter_rows
-        i = rows.index(self)
-        self.suppress_event = True
-        try:
-            if i > 0 or len(rows) > 1:
-                # Remove this row
-                filter_list = xrc.XRCCTRL(
-                    self.dir_list.panel, 'filter_list_panel')
-                sizer = filter_list.GetSizer()
-                sizer.Detach(self.panel)
-                self.panel.Destroy()
-                self.dir_list.panel.Layout()
-                del rows[i]
-                while i < len(rows):
-                    rows[i].setRowIndex(i)
-                    i += 1
-                sizer.Layout()
-            else:
-                # Clear this row
-                self.field_choice.SetSelection(0)
-                self.operator_choice.SetSelection(0)
-                self.value_box.SetValue('')
-        finally:
-            self.suppress_event = False
-        self.dir_list.onChangeFilter(event)
-
-    def onAnd(self, event):
-        self.timer.Stop()
-        rows = self.dir_list.filter_rows
-        i = rows.index(self) + 1
-        self.suppress_event = True
-        try:
-            row = FilterRow(self.gui, self.dir_list, i)
-            rows.insert(i, row)
-        finally:
-            self.suppress_event = False
-
-
 class DirectiveList:
 
     def __init__(self, gui, panel):
         self.gui = gui
         self.panel = panel
-        row = FilterRow(gui, self, 0)
-        self.filter_rows = [row]
+
+        self.filter_expr = xrc.XRCCTRL(panel, 'filter_expr')
+        self.filter_clear = xrc.XRCCTRL(panel, 'filter_clear')
+        self.filter_clear.Bind(wx.EVT_LEFT_DOWN, self.onClearFilter)
+        parent = self.filter_expr.GetParent()
+        self.has_filter = False
+        self.suppress_filter_event = False
+        self.filter_expr.Bind(wx.EVT_SET_FOCUS, self.onFocusFilter)
+        self.filter_expr.Bind(wx.EVT_KILL_FOCUS, self.onBlurFilter)
+        self.filter_expr.Bind(wx.EVT_TEXT, self.onChangeFilter)
+
         self.listctrl = xrc.XRCCTRL(panel, 'dir_list')
         images = wx.ImageList(16, 16)
         image = wx.Image(os.path.join(here, 'icons', 'other', 'tree.png'))
@@ -204,8 +125,37 @@
         self.listctrl.InsertColumn(2, 'Name')
         self.listctrl.InsertStringItem(0, 'test')
 
+    def onFocusFilter(self, event):
+        if not self.has_filter:
+            self.suppress_filter_event = True
+            try:
+                self.filter_expr.SetValue('')
+            finally:
+                self.suppress_filter_event = False
+
+    def onBlurFilter(self, event):
+        if not self.has_filter:
+            self.suppress_filter_event = True
+            try:
+                self.filter_expr.SetValue('Entire Directive')
+            finally:
+                self.suppress_filter_event = False
+
+    def onClearFilter(self, event):
+        self.has_filter = False
+        self.filter_clear.Enable(False)
+        self.suppress_filter_event = True
+        try:
+            self.filter_expr.SetValue('')
+        finally:
+            self.suppress_filter_event = False
+        self.filter_expr.SetFocus()
+
     def onChangeFilter(self, event):
-        pass
+        if self.suppress_filter_event:
+            return
+        self.has_filter = bool(self.filter_expr.GetValue())
+        self.filter_clear.Enable(self.has_filter)
 
 
 class Command:

Modified: z3/zopejam/trunk/src/zopejam/resources.xrc
==============================================================================
--- z3/zopejam/trunk/src/zopejam/resources.xrc	(original)
+++ z3/zopejam/trunk/src/zopejam/resources.xrc	Wed Jun  8 09:20:53 2005
@@ -1,58 +1,5 @@
 <?xml version="1.0" encoding="ascii"?>
 <resource>
-  <object class="wxPanel" name="filter_panel">
-    <object class="wxFlexGridSizer">
-      <cols>6</cols>
-      <object class="sizeritem">
-        <object class="wxStaticText" name="before_text">
-          <label>Filter:</label>
-                        </object>
-        <flag>wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag>
-                      </object>
-      <object class="sizeritem">
-        <object class="wxChoice" name="field_choice">
-          <content>
-            <item>directive</item>
-            <item>name</item>
-            <item>type</item>
-            <item>class</item>
-          </content>
-        </object>
-        <flag>wxALIGN_CENTRE</flag>
-      </object>
-      <object class="sizeritem">
-        <object class="wxChoice" name="operator_choice">
-          <content>
-            <item>contains</item>
-            <item>is</item>
-            <item>regex</item>
-          </content>
-          <selection>0</selection>
-        </object>
-        <flag>wxALIGN_CENTRE</flag>
-                      </object>
-      <hgap>8</hgap>
-      <object class="sizeritem">
-        <object class="wxComboBox" name="value_box">
-          <content/>
-                        </object>
-        <flag>wxEXPAND|wxALIGN_CENTRE</flag>
-                      </object>
-      <object class="sizeritem">
-        <object class="wxButton" name="clear_button">
-          <label>Clear</label>
-                        </object>
-        <flag>wxALIGN_CENTRE</flag>
-                      </object>
-      <growablecols>3</growablecols>
-      <object class="sizeritem">
-        <object class="wxButton" name="and_button">
-          <label>And...</label>
-                        </object>
-        <flag>wxALIGN_CENTRE</flag>
-                      </object>
-    </object>
-  </object>
   <object class="wxMenuBar" name="jam_menubar">
     <object class="wxMenu" name="filemenu">
       <label>&amp;File</label>
@@ -140,17 +87,6 @@
         <bitmap>icons/menu/editdelete.png</bitmap>
         <accel>Ctrl+D</accel>
       </object>
-      <object class="separator"/>
-      <object class="wxMenuItem" name="filter">
-        <label>&amp;Filiter</label>
-        <checkable>1</checkable>
-        <checked>1</checked>
-      </object>
-      <object class="wxMenuItem" name="find">
-        <label>&amp;Find...</label>
-        <bitmap>icons/menu/find.png</bitmap>
-        <accel>Ctrl+F</accel>
-      </object>
     </object>
     <object class="wxMenu" name="addmenu">
       <label>&amp;Add</label>
@@ -241,18 +177,6 @@
         <label>Paste</label>
       </object>
       <object class="separator"/>
-      <object class="tool" name="filter">
-        <bitmap>icons/toolbar/filter.png</bitmap>
-        <toggle>1</toggle>
-        <tooltip>Filter the list of directives</tooltip>
-        <label>Filter</label>
-      </object>
-      <object class="tool" name="find">
-        <bitmap>icons/toolbar/find.png</bitmap>
-        <tooltip>Find directives</tooltip>
-        <label>Find</label>
-      </object>
-      <object class="separator"/>
       <object class="tool" name="test">
         <bitmap>icons/toolbar/launch.png</bitmap>
         <tooltip>Test the configuration</tooltip>
@@ -288,14 +212,54 @@
                 <object class="wxPanel" name="directive_list_panel">
                   <object class="wxFlexGridSizer">
                     <object class="sizeritem">
-                      <object class="wxPanel" name="filter_list_panel">
-                        <object class="wxFlexGridSizer">
-                          <cols>1</cols>
-                          <vgap>4</vgap>
-                          <growablecols>0</growablecols>
+                      <object class="wxFlexGridSizer">
+                        <cols>2</cols>
+                        <rows>2</rows>
+                        <object class="sizeritem">
+                          <object class="wxStaticText">
+                            <label>Filter:</label>
+                          </object>
+                          <flag>wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag>
+                          <border>4</border>
+                        </object>
+                        <object class="sizeritem">
+                          <object class="wxPanel">
+                            <object class="wxFlexGridSizer">
+                              <cols>3</cols>
+                              <object class="sizeritem">
+                                <object class="wxStaticBitmap" name="filter_type">
+                                  <style>wxNO_BORDER</style>
+                                  <bitmap>icons/other/find.png</bitmap>
+                                </object>
+                                <flag>wxALL|wxALIGN_CENTRE</flag>
+                                <border>2</border>
+                              </object>
+                              <object class="sizeritem">
+                                <object class="wxTextCtrl" name="filter_expr">
+                                  <value>Entire Directive</value>
+                                  <style>wxTE_PROCESS_ENTER|wxNO_BORDER</style>
+                                </object>
+                                <flag>wxEXPAND</flag>
+                                <minsize>200, 1</minsize>
+                              </object>
+                              <object class="sizeritem">
+                                <object class="wxStaticBitmap" name="filter_clear">
+                                  <bitmap>icons/other/cancel.png</bitmap>
+                                  <style>wxNO_BORDER</style>
+                                  <enabled>0</enabled>
+                                </object>
+                                <flag>wxALL|wxALIGN_CENTRE</flag>
+                                <border>2</border>
+                              </object>
+                            </object>
+                            <style>wxSUNKEN_BORDER</style>
+                            <bg>#FFFFFF</bg>
+                          </object>
+                          <flag>wxBOTTOM|wxRIGHT</flag>
+                          <border>1</border>
                         </object>
                       </object>
-                      <flag>wxALL|wxEXPAND</flag>
+                      <flag>wxALIGN_RIGHT</flag>
                     </object>
                     <cols>1</cols>
                     <growablerows>1</growablerows>


More information about the z3-checkins mailing list