[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>&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>&Filiter</label>
- <checkable>1</checkable>
- <checked>1</checked>
- </object>
- <object class="wxMenuItem" name="find">
- <label>&Find...</label>
- <bitmap>icons/menu/find.png</bitmap>
- <accel>Ctrl+F</accel>
- </object>
</object>
<object class="wxMenu" name="addmenu">
<label>&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