Source code for timelinelib.wxgui.dialogs.milestone.view

# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg
#
# This file is part of Timeline.
#
# Timeline is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Timeline is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Timeline.  If not, see <http://www.gnu.org/licenses/>.


import wx

from timelinelib.wxgui.framework import Dialog
from timelinelib.wxgui.dialogs.milestone.controller import EditMilestoneDialogController
from timelinelib.db.utils import safe_locking


[docs]class EditMilestoneDialog(Dialog): """ <BoxSizerVertical> <StaticBoxSizerVertical label="$(groupbox_text)" border="ALL" > <FlexGridSizer rows="0" columns="2" border="ALL"> <StaticText label="$(when_text)" align="ALIGN_CENTER_VERTICAL" /> <TimePicker time_type="$(time_type)" config="$(config)" name="dtp_time" /> <StaticText label="$(description_text)" align="ALIGN_CENTER_VERTICAL" /> <TextCtrl name="txt_description" /> <StaticText label="$(description_label)" align="ALIGN_CENTER_VERTICAL" /> <TextCtrl name="txt_label" /> <StaticText align="ALIGN_CENTER_VERTICAL" label="$(category_label)" /> <CategoryChoice name="category_choice" allow_add="True" timeline="$(db)" align="ALIGN_LEFT" /> <StaticText label="$(colour_text)" align="ALIGN_CENTER_VERTICAL" /> <ColourSelect name="colorpicker" align="ALIGN_CENTER_VERTICAL" width="60" height="30" /> </FlexGridSizer> </StaticBoxSizerVertical> <DialogButtonsOkCancelSizer border="LEFT|BOTTOM|RIGHT" event_EVT_BUTTON__ID_OK="on_ok_clicked" /> </BoxSizerVertical> """
[docs] def __init__(self, parent, title, db, config, milestone): Dialog.__init__(self, EditMilestoneDialogController, parent, { "groupbox_text": _("Milestone Properties"), "when_text": _("When:"), "time_type": db.time_type, "description_text": _("Description:"), "description_label": _("Label:"), "category_label": _("Category:"), "colour_text": _("Colour:"), "config": config, "db": db, }, title=title) self.controller.on_init(db, milestone) self._milestone = milestone self.txt_label.Bind(wx.EVT_CHAR, self.handle_keypress)
[docs] def GetTime(self): return self.dtp_time.get_value()
[docs] def SetTime(self, start_time): self.dtp_time.set_value(start_time)
[docs] def GetDescription(self): return self.txt_description.GetValue()
[docs] def SetDescription(self, description): if description is None: self.txt_description.SetValue("") else: self.txt_description.SetValue(description)
[docs] def GetLabel(self): return self.txt_label.GetValue()
[docs] def SetLable(self, label): self.txt_label.SetValue(label)
[docs] def GetCategory(self): return self.category_choice.GetSelectedCategory()
[docs] def SetCategory(self, value): self.category_choice.Populate(select=value)
[docs] def GetColour(self): return self.colorpicker.GetValue()
[docs] def SetColor(self, color): self.colorpicker.SetValue(color)
[docs] def handle_keypress(self, evt): self.txt_label.Clear() evt.Skip()
[docs]def open_milestone_editor_for(main_frame, parent, config, db, event=None): def create_milestone_editor(): if event is None: label = _("Create Milestone") else: label = _("Edit Milestone") return EditMilestoneDialog(parent, label, db, config, event) def edit_function(): dialog = create_milestone_editor() dialog.ShowModal() dialog.Destroy() safe_locking(main_frame.controller, edit_function)