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
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;
}