Source code for timelinelib.wxgui.dialogs.slideshow.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
import webbrowser
from timelinelib.wxgui.framework import Dialog
from timelinelib.wxgui.dialogs.slideshow.controller import SlideshowDialogController
from timelinelib.wxgui.utils import display_error_message
from timelinelib.wxgui.utils import get_user_ack
[docs]class SlideshowDialog(Dialog):
"""
<BoxSizerVertical>
<StaticBoxSizerVertical
label="$(events_label)"
border="ALL"
proportion="1">
<RadioButton
label="Only visible events"
border="TOP|BOTTOM|LEFT"
name="rb_visible_events" />
<RadioButton
label="All events"
border="BOTTOM|LEFT"
name="rb_all_events" />
</StaticBoxSizerVertical>
<StaticBoxSizerVertical
label="$(target_dir_label)"
border="BOTTOM|LEFT|RIGHT"
proportion="0">
<BoxSizerHorizontal>
<TextCtrl
border="BOTTOM|LEFT"
width="200"
name="tb_target_dir" />
<Button
label="..."
border="BOTTOM|LEFT"
width="25"
name="tb_target"
event_EVT_BUTTON="on_change_dir" />
</BoxSizerHorizontal>
</StaticBoxSizerVertical>
<DialogButtonsOkCancelSizer
border="LEFT|RIGHT|BOTTOM"
event_EVT_BUTTON__ID_OK="on_start"
/>
</BoxSizerVertical>
"""
[docs] def __init__(self, parent, db, canvas):
self._db = db
self._canvas = canvas
Dialog.__init__(self, SlideshowDialogController, parent, {
"events_label": _("Select Events"),
"target_dir_label": _("Save html pages at")
}, title=_("Start Slide Show"))
self.controller.on_init(db, canvas)
[docs] def ChangeDir(self):
dialog = wx.DirDialog(self, _("Select html pages directory"), "")
if dialog.ShowModal() == wx.ID_OK:
self.tb_target_dir.SetValue(dialog.GetPath())
dialog.Destroy()
[docs] def AllEventsSelected(self):
return self.rb_all_events.GetValue()
[docs] def GetTargetDir(self):
return self.tb_target_dir.GetValue()
[docs] def InvalidTargetDir(self, message):
display_error_message(message)
self.tb_target_dir.SetFocus()
[docs] def GetUserAck(self, query):
return get_user_ack(query)
[docs] def DisplayStartPage(self, page_path):
webbrowser.open(page_path, new=1)
[docs]def open_slideshow_dialog(db, canvas):
dialog = SlideshowDialog(None, db, canvas)
try:
dialog.ShowModal()
finally:
dialog.Destroy()