Commit d9c8f6c8 authored by Harish Fulara's avatar Harish Fulara

ui: welcome msg for empty greeter

parent 8c6df932
Pipeline #18942 passed with stage
in 51 minutes and 17 seconds
......@@ -2,6 +2,67 @@
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="recent_projects_vbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="margin_top">30</property>
<property name="margin_bottom">10</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="recent_projects_labelbox">
<property name="name">recent_projects_labelbox</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="recent_projects_label">
<property name="name">recent_projects_label</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Recent Projects</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="updated_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="margin_right">12</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Updated</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkListBox" id="recent_projects_listbox">
<property name="name">recent_projects_listbox</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="visible">True</property>
<property name="can_focus">True</property>
......@@ -11,7 +72,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="topvbox">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
......@@ -69,71 +130,18 @@
</packing>
</child>
<child>
<object class="GtkBox" id="recent_projects_topvbox">
<object class="GtkBox" id="topvbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="margin_top">30</property>
<property name="margin_bottom">10</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="recent_projects_labelbox">
<property name="name">recent_projects_labelbox</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="recent_projects_label">
<property name="name">recent_projects_label</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Recent Projects</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="updated_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="margin_right">12</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Updated</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkListBox" id="recent_projects_listbox">
<property name="name">recent_projects_listbox</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="position">1</property>
</packing>
</child>
</object>
......@@ -141,4 +149,52 @@
</object>
</child>
</object>
<object class="GtkBox" id="welcome_vbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">pitivi</property>
<property name="icon_size">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="name">empty_greeter_msg_title</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">32</property>
<property name="label" translatable="yes">Welcome to Pitivi</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="name">empty_greeter_msg_subtitle</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">18</property>
<property name="label" translatable="yes">Beautiful, powerful and intuitive movie editor</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</interface>
......@@ -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", ["<Primary>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_ = []
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment