44
45
- see the quick start manual (User Manual button).
49
def _userManualCb(unused_button):
50
"""Handle a click on the Help button."""
54
def _cheatsheetCb(unused_button):
55
"""Show the cheatsheet section of the user manual"""
56
show_user_manual("cheatsheet")
47
58
def __init__(self, app):
49
60
self.builder = Gtk.Builder()
55
66
self.recent_chooser = self.builder.get_object("recentchooser2")
56
67
# FIXME: gtk creates a combo box with only one item, but there is no
57
68
# simple way to hide it.
58
filter = Gtk.RecentFilter()
59
filter.set_name(_("Projects"))
69
_filter = Gtk.RecentFilter()
70
_filter.set_name(_("Projects"))
61
72
for asset in GES.list_assets(GES.Formatter):
62
filter.add_pattern('*.' + asset.get_meta(GES.META_FORMATTER_EXTENSION))
64
self.recent_chooser.add_filter(filter)
73
_filter.add_pattern('*.' + asset.get_meta(GES.META_FORMATTER_EXTENSION))
75
self.recent_chooser.add_filter(_filter)
77
missing_button = self.builder.get_object("missing_deps_button")
66
79
if not missing_soft_deps:
67
self.builder.get_object("missing_deps_button").hide()
69
82
self.app.projectManager.connect("new-project-failed", self._projectFailedCb)
70
83
self.app.projectManager.connect("new-project-loaded", self._projectLoadedCb)
73
86
vbox = self.builder.get_object("topvbox")
74
87
self.infobar = Gtk.InfoBar()
75
88
vbox.pack_start(self.infobar, True, True, 0)
76
if self.app.version_information:
77
self._appVersionInfoReceivedCb(None, self.app.version_information)
89
if self.app.getLatest():
90
self._appVersionInfoReceivedCb(self.app, None)
79
92
self.app.connect("version-info-received", self._appVersionInfoReceivedCb)
91
104
uri = self.recent_chooser.get_current_uri()
92
105
self.app.projectManager.loadProject(uri)
94
def _keyPressCb(self, widget, event):
107
def _keyPressCb(self, unused_widget, event):
95
108
"""Handle a key press event on the dialog."""
96
109
if event.keyval == Gdk.KEY_Escape:
97
110
# The user pressed "Esc".
102
115
self.app.gui.openProject()
104
117
def _onMissingDepsButtonClickedCb(self, unused_button):
118
"""Handle a click on the Missing Deps button."""
105
119
DepsManager(self.app, parent_window=self.window)
107
def _userManualCb(self, unused_button):
108
"""Handle a click on the Help button."""
111
def _cheatsheetCb(self, unused_button):
112
"""Show the cheatsheet section of the user manual"""
113
show_user_manual("cheatsheet")
115
def _deleteCb(self, unused_widget, event):
121
def _deleteCb(self, unused_widget, unused_event):
116
122
"""Handle a click on the X button of the dialog."""
117
123
self.app.projectManager.newBlankProject()
126
"""Will show the interal window and position the wizard"""
120
127
self.window.set_transient_for(self.app.gui)
121
128
self.window.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
122
129
self.window.show()
132
"""Will hide the internal window"""
125
133
self.window.hide()
127
135
def _projectFailedCb(self, unused_project_manager, unused_uri,
129
137
"""Handle the failure of a project open operation."""
132
def _projectLoadedCb(self, unused_project_manager, project, fully_loaded):
140
def _projectLoadedCb(self, unused_project_manager, unused_project, fully_loaded):
133
141
"""Handle the success of a project load operation.
135
143
All the create or load project usage scenarios must generate
144
152
"""Handle the start of a project load operation."""
147
def _appVersionInfoReceivedCb(self, pitivi, version):
148
# current version, don't show message
149
if version["status"].upper() == "CURRENT":
155
def _appVersionInfoReceivedCb(self, app, unused_version_information):
156
"""Handle version info"""
158
# current version, don't show message
152
# new current version, reset counter
153
if self.app.settings.lastCurrentVersion != version["current"]:
154
self.app.settings.lastCurrentVersion = version["current"]
161
latest_version = app.getLatest()
162
if self.app.settings.lastCurrentVersion != latest_version:
163
# new latest version, reset counter
164
self.app.settings.lastCurrentVersion = latest_version
155
165
self.app.settings.displayCounter = 0
157
# current version info already showed 5 times, don't show again
158
167
if self.app.settings.displayCounter >= 5:
168
# current version info already showed 5 times, don't show again
161
171
# increment counter, create infobar and show info
162
172
self.app.settings.displayCounter = self.app.settings.displayCounter + 1
163
text = _("Pitivi %s is available." % version["current"])
173
text = _("Pitivi %s is available." % latest_version)
164
174
label = Gtk.Label(label=text)
165
175
self.infobar.get_content_area().add(label)
166
176
self.infobar.set_message_type(Gtk.MessageType.INFO)