Files
federated-calendar/data/ui/new-calendar-page.ui
T
Georges Basile Stavracas Neto f0060b7699 new-calendar-page: Use the new discoverer
The new discoverer is a vast improvement over the code
that use used to have here. Right now, we fail to use
Soup to detect the URL, and that's been reported multiple
times already.

Use the new web discoverer code, and adjust the UI to
match the new code. Namely, use a GtkPopover to show
the credentials widget.

Fixes #380
2019-07-13 16:04:31 -03:00

358 lines
14 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GcalNewCalendarPage" parent="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<property name="margin-top">24</property>
<property name="margin-bottom">24</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<!-- Local calendar -->
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<style>
<class name="view" />
<class name="frame" />
</style>
<!-- Calendar name -->
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="margin">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Calendar Name</property>
<property name="xalign">0.0</property>
</object>
</child>
<child>
<object class="GtkEntry" id="local_calendar_name_entry">
<property name="visible">True</property>
<property name="placeholder-text" translatable="yes">Calendar Name</property>
<signal name="notify::text" handler="on_local_calendar_name_entry_text_changed_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
</child>
</object>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
</object>
</child>
<!-- Color -->
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="margin">12</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Color</property>
<property name="xalign">0.0</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="local_calendar_color_button">
<property name="visible">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Import a Calendar</property>
<property name="xalign">0.0</property>
<attributes>
<attribute name="scale" value="1.3" />
<attribute name="weight" value="bold" />
</attributes>
</object>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="row_spacing">12</property>
<property name="column_spacing">12</property>
<!-- Online Accounts reference label-->
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">Alternatively, enter the web address of an online calendar you want to import, or open a supported calendar file.</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">2</property>
</packing>
</child>
<!-- URL entry -->
<child>
<object class="GtkEntry" id="calendar_address_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="placeholder-text">https://example.com/calendar.ics</property>
<signal name="notify::text" handler="on_url_entry_text_changed_cb" object="GcalNewCalendarPage" swapped="no" />
<signal name="activate" handler="on_calendar_address_activated_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<!-- File Chooser button -->
<child>
<object class="GtkFileChooserButton" id="calendar_file_chooser_button">
<property name="visible">True</property>
<property name="filter">calendar_file_filter</property>
<property name="title" translatable="yes">Open a File</property>
<signal name="file-set" handler="on_file_chooser_button_file_set_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkRevealer" id="web_sources_revealer">
<property name="transition_type">crossfade</property>
<property name="transition_duration">200</property>
<child>
<object class="GtkBox" id="web_sources_listbox_box">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="web_sources_calendar_label">
<property name="visible">True</property>
<property name="label" translatable="yes">Calendars</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold" />
</attributes>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="height_request">100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="GtkViewport" id="viewport">
<property name="visible">True</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkListBox" id="web_sources_listbox">
<property name="visible">True</property>
<property name="activate_on_single_click">False</property>
<property name="selection_mode">none</property>
<style>
<class name="calendar-list" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">2</property>
</packing>
</child>
<!-- Online Accounts reference label-->
<child>
<object class="GtkLabel" id="web_description_label">
<property name="visible">True</property>
<property name="label" translatable="yes">If the calendar belongs to one of your online accounts, you can add it through the &lt;a href=&quot;GOA&quot;&gt;online account settings&lt;/a&gt;.</property>
<property name="use_markup">True</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
<signal name="activate-link" handler="on_web_description_label_link_activated_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
<property name="width">2</property>
</packing>
</child>
</object>
</child>
</template>
<!-- Credentials popover -->
<object class="GtkPopover" id="credentials_popover">
<property name="relative-to">calendar_address_entry</property>
<property name="position">top</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="margin">12</property>
<child>
<object class="GtkGrid" id="credentials_grid">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="border_width">12</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkLabel" id="credentials_user_dim_label">
<property name="visible">True</property>
<property name="label" translatable="yes">User</property>
<property name="xalign">1</property>
<style>
<class name="dim-label" />
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="credentials_password_dim_label">
<property name="visible">True</property>
<property name="label" translatable="yes">Password</property>
<property name="xalign">1</property>
<style>
<class name="dim-label" />
</style>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="credentials_user_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<signal name="activate" handler="on_credential_entry_activate_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="credentials_password_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="visibility">False</property>
<signal name="activate" handler="on_credential_entry_activate_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
<object class="GtkButton" id="credentials_cancel_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Cancel</property>
<signal name="clicked" handler="on_credential_button_clicked_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
</child>
<child>
<object class="GtkButton" id="credentials_connect_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Connect</property>
<signal name="clicked" handler="on_credential_button_clicked_cb" object="GcalNewCalendarPage" swapped="no" />
<style>
<class name="suggested-action" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<!-- Calendar file filter -->
<object class="GtkFileFilter" id="calendar_file_filter">
<patterns>
<pattern>*.ical</pattern>
<pattern>*.icalendar</pattern>
<pattern>*.ics</pattern>
<pattern>*.ifb</pattern>
<pattern>*.vcs</pattern>
</patterns>
<mime-types>
<mime-type>text/calendar</mime-type>
</mime-types>
</object>
<!-- Headerbar buttons -->
<object class="GtkButton" id="cancel_button">
<property name="visible">True</property>
<property name="label" translatable="yes">Cancel</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_cancel_button_clicked_cb" object="GcalNewCalendarPage" swapped="no" />
</object>
<object class="GtkButton" id="add_button">
<property name="visible">True</property>
<property name="label" translatable="yes">Add</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_add_button_clicked_cb" object="GcalNewCalendarPage" swapped="no" />
<style>
<class name="suggested-action"/>
</style>
</object>
</interface>