Esempio n. 1
0
 def _create_cat_tree(self):
     self.cat_tree = CategoriesTree(self, self.db_error_handler)
     self.cat_tree.SetMinSize((-1, 200))
     return self.cat_tree
Esempio n. 2
0
 def _create_cat_tree(self):
     self.cat_tree = CategoriesTree(self, self.db_error_handler)
     self.cat_tree.SetMinSize((-1, 200))
     return self.cat_tree
Esempio n. 3
0
class CategoriesEditor(wx.Dialog):
    """
    Dialog used to edit categories of a timeline.

    The edits happen immediately. In other words: when the dialog is closing
    all edits have been applied already.
    """

    def __init__(self, parent, timeline):
        wx.Dialog.__init__(self, parent, title=_("Edit Categories"), name="categories_editor", 
                           style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
        self.db = timeline
        self._create_gui()
        self._bind()

    def ok_to_edit(self):
        """
        This method is called from the categories tree control when
        right-clicked to verify that editing is ok. But in this case
        editing has already been approved by opening the CategoriesEditor
        so we just return True
        """
        return True
    
    def edit_ends(self):
        """
        This method is called from the categories tree control when
        editing ends to reset edit-ok state. But that will be done anyway
        when we close the CategoriesEditor, so we do nothing.
        """
    
    def _create_gui(self):
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self._create_cat_tree(), flag=wx.ALL|wx.EXPAND, border=BORDER, proportion=1)
        sizer.Add(self._create_buttons(), flag=wx.ALL|wx.EXPAND, border=BORDER)
        self.SetSizerAndFit(sizer)
        self.cat_tree.initialize_from_db(self.db)

    def _bind(self):
        self.Bind(wx.EVT_CLOSE, self._window_on_close)
        self.Bind(wx.EVT_SIZE, self._on_size, self)
        self.Bind(wx.EVT_TREE_SEL_CHANGED, self._cat_tree_on_sel_changed, self.cat_tree)
        self.Bind(wx.EVT_BUTTON, self._btn_edit_on_click, id=wx.ID_EDIT)
        self.Bind(wx.EVT_BUTTON, self._btn_add_on_click, id=wx.ID_ADD)
        self.Bind(wx.EVT_BUTTON, self._btn_del_on_click, id=wx.ID_DELETE)
        self.Bind(wx.EVT_BUTTON, self._btn_close_on_click, id=wx.ID_CLOSE)

    def _create_cat_tree(self):
        self.cat_tree = CategoriesTree(self, self.db_error_handler)
        self.cat_tree.SetMinSize((-1, 200))
        return self.cat_tree

    def _create_buttons(self):
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self._create_edit_button(), flag=wx.RIGHT, border=BORDER)
        sizer.Add(self._create_add_button(), flag=wx.RIGHT, border=BORDER)
        sizer.Add(self._create_delete_button(), flag=wx.RIGHT, border=BORDER)
        sizer.Add(self._create_close_button(), flag=wx.LEFT, border=BORDER)
        self._enable_buttons(False)
        return sizer

    def _create_edit_button(self):
        self.btn_edit = wx.Button(self, wx.ID_EDIT)
        return self.btn_edit

    def _create_add_button(self):
        return wx.Button(self, wx.ID_ADD)

    def _create_delete_button(self):
        self.btn_del = wx.Button(self, wx.ID_DELETE)
        return self.btn_del

    def _create_close_button(self):
        return wx.Button(self, wx.ID_CLOSE)

    def _enable_buttons(self, enabled):
        self.btn_del.Enable(enabled)
        self.btn_edit.Enable(enabled)
        
    def _updateButtons(self):
        selected_category = self.cat_tree.get_selected_category() is not None
        self._enable_buttons(selected_category)

    def _btn_edit_on_click(self, e):
        selected_category = self.cat_tree.get_selected_category()
        if selected_category is not None:
            edit_category(self, self.db, selected_category,
                          self.db_error_handler)
            self._updateButtons()

    def _btn_add_on_click(self, e):
        add_category(self, self.db, self.db_error_handler)
        self._updateButtons()

    def _btn_del_on_click(self, e):
        selected_category = self.cat_tree.get_selected_category()
        if selected_category is not None:
            delete_category(self, self.db, selected_category, self.db_error_handler)
            self._updateButtons()

    def _cat_tree_on_sel_changed(self, e):
        self._updateButtons()

    def _on_size(self, evt):
        self.Layout()
        
    def _window_on_close(self, e):
        self.cat_tree.destroy()
        self.EndModal(wx.ID_CLOSE)

    def _btn_close_on_click(self, e):
        self.Close()

    def db_error_handler(self, e):
        gui_utils.handle_db_error_in_dialog(self, e)
Esempio n. 4
0
class CategoriesEditor(wx.Dialog):
    """
    Dialog used to edit categories of a timeline.

    The edits happen immediately. In other words: when the dialog is closing
    all edits have been applied already.
    """
    def __init__(self, parent, timeline):
        wx.Dialog.__init__(self,
                           parent,
                           title=_("Edit Categories"),
                           name="categories_editor",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
        self.db = timeline
        self._create_gui()
        self._bind()

    def ok_to_edit(self):
        """
        This method is called from the categories tree control when
        right-clicked to verify that editing is ok. But in this case
        editing has already been approved by opening the CategoriesEditor
        so we just return True
        """
        return True

    def edit_ends(self):
        """
        This method is called from the categories tree control when
        editing ends to reset edit-ok state. But that will be done anyway
        when we close the CategoriesEditor, so we do nothing.
        """

    def _create_gui(self):
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self._create_cat_tree(),
                  flag=wx.ALL | wx.EXPAND,
                  border=BORDER,
                  proportion=1)
        sizer.Add(self._create_buttons(),
                  flag=wx.ALL | wx.EXPAND,
                  border=BORDER)
        self.SetSizerAndFit(sizer)
        self.cat_tree.initialize_from_db(self.db)

    def _bind(self):
        self.Bind(wx.EVT_CLOSE, self._window_on_close)
        self.Bind(wx.EVT_SIZE, self._on_size, self)
        self.Bind(wx.EVT_TREE_SEL_CHANGED, self._cat_tree_on_sel_changed,
                  self.cat_tree)
        self.Bind(wx.EVT_BUTTON, self._btn_edit_on_click, id=wx.ID_EDIT)
        self.Bind(wx.EVT_BUTTON, self._btn_add_on_click, id=wx.ID_ADD)
        self.Bind(wx.EVT_BUTTON, self._btn_del_on_click, id=wx.ID_DELETE)
        self.Bind(wx.EVT_BUTTON, self._btn_close_on_click, id=wx.ID_CLOSE)

    def _create_cat_tree(self):
        self.cat_tree = CategoriesTree(self, self.db_error_handler)
        self.cat_tree.SetMinSize((-1, 200))
        return self.cat_tree

    def _create_buttons(self):
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self._create_edit_button(), flag=wx.RIGHT, border=BORDER)
        sizer.Add(self._create_add_button(), flag=wx.RIGHT, border=BORDER)
        sizer.Add(self._create_delete_button(), flag=wx.RIGHT, border=BORDER)
        sizer.Add(self._create_close_button(), flag=wx.LEFT, border=BORDER)
        self._enable_buttons(False)
        return sizer

    def _create_edit_button(self):
        self.btn_edit = wx.Button(self, wx.ID_EDIT)
        return self.btn_edit

    def _create_add_button(self):
        return wx.Button(self, wx.ID_ADD)

    def _create_delete_button(self):
        self.btn_del = wx.Button(self, wx.ID_DELETE)
        return self.btn_del

    def _create_close_button(self):
        return wx.Button(self, wx.ID_CLOSE)

    def _enable_buttons(self, enabled):
        self.btn_del.Enable(enabled)
        self.btn_edit.Enable(enabled)

    def _updateButtons(self):
        selected_category = self.cat_tree.get_selected_category() is not None
        self._enable_buttons(selected_category)

    def _btn_edit_on_click(self, e):
        selected_category = self.cat_tree.get_selected_category()
        if selected_category is not None:
            edit_category(self, self.db, selected_category,
                          self.db_error_handler)
            self._updateButtons()

    def _btn_add_on_click(self, e):
        add_category(self, self.db, self.db_error_handler)
        self._updateButtons()

    def _btn_del_on_click(self, e):
        selected_category = self.cat_tree.get_selected_category()
        if selected_category is not None:
            delete_category(self, self.db, selected_category,
                            self.db_error_handler)
            self._updateButtons()

    def _cat_tree_on_sel_changed(self, e):
        self._updateButtons()

    def _on_size(self, evt):
        self.Layout()

    def _window_on_close(self, e):
        self.cat_tree.destroy()
        self.EndModal(wx.ID_CLOSE)

    def _btn_close_on_click(self, e):
        self.Close()

    def db_error_handler(self, e):
        gui_utils.handle_db_error_in_dialog(self, e)