diff --git a/data/pixmaps/pitivi.png b/data/pixmaps/pitivi.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5726dd8eb01b2cd8af0b760e8b2945a47a1041 Binary files /dev/null and b/data/pixmaps/pitivi.png differ diff --git a/data/ui/greeter.ui b/data/ui/greeter.ui index 2fecb1016f7744306cf5d8216c3b716c0fd4b76e..edd05b9b8b0d486c297e8ae5f6ae69916c0565af 100644 --- a/data/ui/greeter.ui +++ b/data/ui/greeter.ui @@ -2,6 +2,67 @@ + + True + False + center + 30 + 10 + vertical + + + recent_projects_labelbox + True + False + + + recent_projects_label + True + False + start + Recent Projects + + + False + True + 0 + + + + + True + False + end + 12 + True + Updated + + + False + True + 1 + + + + + False + True + 0 + + + + + recent_projects_listbox + True + False + + + False + True + 1 + + + True True @@ -11,7 +72,7 @@ True False - + True False vertical @@ -69,71 +130,18 @@ - + True False - center - 30 - 10 vertical - - recent_projects_labelbox - True - False - - - recent_projects_label - True - False - start - Recent Projects - - - False - True - 0 - - - - - True - False - end - 12 - True - Updated - - - False - True - 1 - - - - - False - True - 0 - - - - - recent_projects_listbox - True - False - - - False - True - 1 - + False True - 2 + 1 @@ -141,4 +149,52 @@ + + True + False + center + True + vertical + + + True + False + pitivi + 0 + + + False + True + 0 + + + + + empty_greeter_msg_title + True + False + 32 + Welcome to Pitivi + + + False + True + 1 + + + + + empty_greeter_msg_subtitle + True + False + 18 + Beautiful, powerful and intuitive movie editor + + + False + True + 2 + + + diff --git a/pitivi/greeterperspective.py b/pitivi/greeterperspective.py index 3bc5adf0be695bb675023743508208b9c49da546..e84696424b9232d56437e481cb3f17f4143f22eb 100644 --- a/pitivi/greeterperspective.py +++ b/pitivi/greeterperspective.py @@ -76,6 +76,9 @@ class GreeterPerspective(Perspective): self.new_project_action = None self.open_project_action = None + self.__topvbox = None + self.__welcome_vbox = None + self.__recent_projects_vbox = None self.__recent_projects_listbox = None self.__project_filter = self.__create_project_filter() self.__infobar = None @@ -91,6 +94,9 @@ class GreeterPerspective(Perspective): builder.add_from_file(os.path.join(get_ui_dir(), "greeter.ui")) self.toplevel_widget = builder.get_object("scrolled_window") + self.__topvbox = builder.get_object("topvbox") + self.__welcome_vbox = builder.get_object("welcome_vbox") + self.__recent_projects_vbox = builder.get_object("recent_projects_vbox") self.__recent_projects_listbox = builder.get_object("recent_projects_listbox") self.__recent_projects_listbox.set_selection_mode(Gtk.SelectionMode.NONE) @@ -109,7 +115,32 @@ class GreeterPerspective(Perspective): def refresh(self): """Refreshes the perspective.""" self.toplevel_widget.grab_focus() - self.__show_recent_projects() + + # Clear the currently displayed list of recent projects. + for child in self.__recent_projects_listbox.get_children(): + self.__recent_projects_listbox.remove(child) + + recent_items = [item for item in self.app.recent_manager.get_items() + if item.get_display_name().endswith(self.__project_filter)] + + # If there are recent projects, display them, else display welcome screen. + if recent_items: + for item in recent_items[:MAX_RECENT_PROJECTS]: + self.__recent_projects_listbox.add(ProjectInfoRow(item)) + self.headerbar.set_title(_("Select a Project")) + child = self.__recent_projects_vbox + self.__recent_projects_listbox.show_all() + else: + self.headerbar.set_title("Pitivi") + child = self.__welcome_vbox + + children = self.__topvbox.get_children() + if children: + current_child = children[0] + if current_child == child: + return + self.__topvbox.remove(current_child) + self.__topvbox.pack_start(child, False, False, 0) def __setup_css(self): css_provider = Gtk.CssProvider() @@ -122,7 +153,6 @@ class GreeterPerspective(Perspective): def __create_headerbar(self): headerbar = Gtk.HeaderBar() headerbar.set_show_close_button(True) - headerbar.set_title(_("Select a Project")) new_project_button = Gtk.Button.new_with_label(_("New")) new_project_button.set_tooltip_text(_("Create a new project")) @@ -158,20 +188,6 @@ class GreeterPerspective(Perspective): self.app.shortcuts.add("greeter.open-project", ["o"], _("Open a project"), group="win") - def __show_recent_projects(self): - """Displays recent projects.""" - # Clear the currently displayed list. - for child in self.__recent_projects_listbox.get_children(): - self.__recent_projects_listbox.remove(child) - - recent_items = [item for item in self.app.recent_manager.get_items() - if item.get_display_name().endswith(self.__project_filter)] - - for item in recent_items[:MAX_RECENT_PROJECTS]: - self.__recent_projects_listbox.add(ProjectInfoRow(item)) - - self.__recent_projects_listbox.show_all() - @staticmethod def __create_project_filter(): filter_ = [] diff --git a/pitivi/utils/ui.py b/pitivi/utils/ui.py index 4c28b8be700aa7c087a860826137587f60f8767b..424b6de6a8b4443587a05d3500c964db655b310c 100644 --- a/pitivi/utils/ui.py +++ b/pitivi/utils/ui.py @@ -109,6 +109,11 @@ DOCUMENT_FONT = _get_font("document-font-name", "Sans") MONOSPACE_FONT = _get_font("monospace-font-name", "Monospace") GREETER_PERSPECTIVE_CSS = """ + #empty_greeter_msg_title { + font-size: 125%; + font-weight: bold; + } + #recent_projects_listbox { border: 1px solid alpha(@borders, 0.6); } @@ -126,7 +131,9 @@ GREETER_PERSPECTIVE_CSS = """ font-weight: bold; } - #project_uri_label, #project_last_updated_label { + #project_uri_label, + #project_last_updated_label, + #empty_greeter_msg_subtitle { opacity: 0.55; }