Merge branch 'master' of gitlab.gnome.org:GNOME/gnome-calendar

This commit is contained in:
Matej Urbančič
2018-05-15 21:01:32 +02:00
27 changed files with 1747 additions and 1079 deletions
+41
View File
@@ -0,0 +1,41 @@
# Current problems
<!--
What are the problems that the current project has?
For example:
* User cannot use the keyboard to perform most common actions
or
* User cannot see documents from cloud services
-->
# Goals & use cases
<!--
What are the use cases that this proposal will cover? What are the end goals?
For example:
* User needs to share a file with their friends.
or
* It should be easy to edit a picture within the app.
-->
# Requirements
<!--
What does the solution needs to ensure for being succesful?
For example:
* Work on small form factors and touch
or
* Use the Meson build system and integrate with it
-->
# Relevant art
<!--
Is there any product that has implemented something similar? Put links to other
projects, pictures, links to other code, etc.
-->
# Proposal & plan
<!-- What's the solution and how should be achieved? It can be split in smaller
tasks of minimum change, so they can be delivered across several releases. -->
/label ~"1. Epic"
@@ -10,7 +10,7 @@
<description> <description>
<p> <p>
GNOME Calendar is a simple and beautiful calendar application designed to perfectly fit the GNOME GNOME Calendar is a simple and beautiful calendar application designed to perfectly fit the GNOME
desktop. By reusing the components which the GNOME desktop is build on, Calendar nicely integrates desktop. By reusing the components which the GNOME desktop is built on, Calendar nicely integrates
with the GNOME ecosystem. with the GNOME ecosystem.
</p> </p>
<p> <p>
+1 -1
View File
@@ -424,7 +424,7 @@ monthcell {
border: solid 1px alpha(@borders, 0.3); border: solid 1px alpha(@borders, 0.3);
border-width: 1px 0 0 1px; border-width: 1px 0 0 1px;
background: transparent; background: transparent;
padding: 1px 0 1px 0; padding: 1px 3px 0 3px;
transition: background-color 200ms; transition: background-color 200ms;
} }
+5
View File
@@ -22,6 +22,10 @@
<object class="GtkBox" id="color_box"> <object class="GtkBox" id="color_box">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="width-request">16</property>
<property name="height-request">16</property>
<style> <style>
<class name="icon-box" /> <class name="icon-box" />
</style> </style>
@@ -48,6 +52,7 @@
<object class="GtkLabel" id="hour_label"> <object class="GtkLabel" id="hour_label">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="no-show-all">True</property>
<style> <style>
<class name="dim-label" /> <class name="dim-label" />
</style> </style>
+1 -1
View File
@@ -89,7 +89,7 @@
<property name="visible">true</property> <property name="visible">true</property>
<property name="relief">none</property> <property name="relief">none</property>
<property name="label" translatable="yes">New Event…</property> <property name="label" translatable="yes">New Event…</property>
<signal name="clicked" handler="new_event_button_clicked_cb" object="GcalMonthPopover" /> <signal name="clicked" handler="new_event_button_clicked_cb" object="GcalMonthPopover" swapped="no" />
</object> </object>
</child> </child>
+1 -1
View File
@@ -37,7 +37,7 @@ calendar_schemadir = join_paths(calendar_datadir, 'glib-2.0', 'schemas')
calendar_buildtype = get_option('buildtype') calendar_buildtype = get_option('buildtype')
calendar_debug = calendar_minor_version.is_odd() or buildtype.contains('debug') calendar_debug = calendar_minor_version.is_odd() or buildtype.contains('debug')
enable_tracing = get_option('tracing') enable_tracing = get_option('tracing')
enable_gtk_doc = get_option('gtk_doc') enable_gtk_doc = get_option('documentation')
cc = meson.get_compiler('c') cc = meson.get_compiler('c')
+1 -1
View File
@@ -1,2 +1,2 @@
option('tracing', type: 'boolean', value: false, description: 'add extra debugging information') option('tracing', type: 'boolean', value: false, description: 'add extra debugging information')
option('gtk_doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation') option('documentation', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
+2 -1
View File
@@ -162,7 +162,8 @@
} }
], ],
"config-opts" : [ "config-opts" : [
"-Dtracing=true" "-Dtracing=true",
"-Ddocumentation=true"
] ]
} }
] ]
+179 -137
View File
@@ -7,10 +7,9 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-calendar gnome-3-24\n" "Project-Id-Version: gnome-calendar gnome-3-24\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
"calendar&keywords=I18N+L10N&component=General\n" "POT-Creation-Date: 2018-03-20 20:44+0000\n"
"POT-Creation-Date: 2017-08-23 09:38+0000\n" "PO-Revision-Date: 2018-04-05 15:39+0300\n"
"PO-Revision-Date: 2017-09-01 16:37+0300\n"
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n" "Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n" "Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n" "Language: be\n"
@@ -19,11 +18,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.8.11\n" "X-Generator: Poedit 2.0.6\n"
#: data/appdata/org.gnome.Calendar.appdata.xml.in:7 #: data/appdata/org.gnome.Calendar.appdata.xml.in:7
#: data/org.gnome.Calendar.desktop.in:3 data/ui/quick-add-popover.ui:187 #: data/org.gnome.Calendar.desktop.in:3 data/ui/quick-add-popover.ui:187
#: data/ui/window.ui:184 src/gcal-application.c:479 #: data/ui/window.ui:187 src/gcal-application.c:640 src/main.c:36
msgid "Calendar" msgid "Calendar"
msgstr "Каляндар" msgstr "Каляндар"
@@ -79,38 +78,50 @@ msgstr "org.gnome.Calendar"
msgid "Calendar;Event;Reminder;" msgid "Calendar;Event;Reminder;"
msgstr "Каляндар;Падзея;Напамін;" msgstr "Каляндар;Падзея;Напамін;"
#: data/org.gnome.calendar.gschema.xml:6 #: data/org.gnome.calendar.gschema.xml.in:6
msgid "Window maximized" msgid "Window maximized"
msgstr "Акно разгорнута" msgstr "Акно разгорнута"
#: data/org.gnome.calendar.gschema.xml:7 #: data/org.gnome.calendar.gschema.xml.in:7
msgid "Window maximized state" msgid "Window maximized state"
msgstr "Стан разгорнутага вакна" msgstr "Стан разгорнутага вакна"
#: data/org.gnome.calendar.gschema.xml:11 #: data/org.gnome.calendar.gschema.xml.in:11
msgid "Window size" msgid "Window size"
msgstr "Памер акна" msgstr "Памер акна"
#: data/org.gnome.calendar.gschema.xml:12 #: data/org.gnome.calendar.gschema.xml.in:12
msgid "Window size (width and height)." msgid "Window size (width and height)."
msgstr "Памер акна (шырыня і вышыня)." msgstr "Памер акна (шырыня і вышыня)."
#: data/org.gnome.calendar.gschema.xml:16 #: data/org.gnome.calendar.gschema.xml.in:16
msgid "Window position" msgid "Window position"
msgstr "Знаходжанне вакна" msgstr "Знаходжанне вакна"
#: data/org.gnome.calendar.gschema.xml:17 #: data/org.gnome.calendar.gschema.xml.in:17
msgid "Window position (x and y)." msgid "Window position (x and y)."
msgstr "Знаходжанне вакна (x і y)." msgstr "Знаходжанне вакна (x і y)."
#: data/org.gnome.calendar.gschema.xml:21 #: data/org.gnome.calendar.gschema.xml.in:21
msgid "Type of the active view" msgid "Type of the active view"
msgstr "Тып актыўнага выгляда" msgstr "Тып актыўнага выгляда"
#: data/org.gnome.calendar.gschema.xml:22 #: data/org.gnome.calendar.gschema.xml.in:22
msgid "Type of the active window view, default value is: monthly view" msgid "Type of the active window view, default value is: monthly view"
msgstr "Тып актыўнага выгляда вакна, значэнне па змаўчанні: штомесячны выгляд" msgstr "Тып актыўнага выгляда вакна, значэнне па змаўчанні: штомесячны выгляд"
#: data/org.gnome.calendar.gschema.xml.in:26
msgid "Weather Service Configuration"
msgstr "Канфігурацыя службы надвор'я"
#: data/org.gnome.calendar.gschema.xml.in:27
msgid ""
"Whether weather reports are shown, automatic locations are used and a "
"location-name"
msgstr ""
"Ці паказваць надвор'е, ці вызначаць месцазнаходжанне аўтаматычна і "
"месцазнаходжанне"
#: data/ui/alarm-row.ui:34 #: data/ui/alarm-row.ui:34
msgid "Toggles the sound of the alarm" msgid "Toggles the sound of the alarm"
msgstr "Уключае гук будзільніка" msgstr "Уключае гук будзільніка"
@@ -119,124 +130,124 @@ msgstr "Уключае гук будзільніка"
msgid "Remove the alarm" msgid "Remove the alarm"
msgstr "Выдаліць будзільнік" msgstr "Выдаліць будзільнік"
#: data/ui/edit-dialog.ui:18 data/ui/source-dialog.ui:762 #: data/ui/edit-dialog.ui:16 data/ui/source-dialog.ui:762
#: data/ui/source-dialog.ui:869 src/gcal-source-dialog.c:1102 #: data/ui/source-dialog.ui:869 src/gcal-source-dialog.c:1162
msgid "Cancel" msgid "Cancel"
msgstr "Адмена" msgstr "Адмена"
#: data/ui/edit-dialog.ui:38 #: data/ui/edit-dialog.ui:36
msgid "Click to select the calendar" msgid "Click to select the calendar"
msgstr "Націсніце каб выбраць каляндар" msgstr "Націсніце каб выбраць каляндар"
#: data/ui/edit-dialog.ui:110 src/gcal-edit-dialog.c:688 #: data/ui/edit-dialog.ui:108 src/gcal-edit-dialog.c:277
msgid "Done" msgid "Done"
msgstr "Выканана" msgstr "Выканана"
#: data/ui/edit-dialog.ui:140 #: data/ui/edit-dialog.ui:146
msgid "Title" msgid "Title"
msgstr "Загаловак" msgstr "Загаловак"
#: data/ui/edit-dialog.ui:158 #: data/ui/edit-dialog.ui:164
msgid "Date" msgid "Date"
msgstr "Дата" msgstr "Дата"
#: data/ui/edit-dialog.ui:174 #: data/ui/edit-dialog.ui:180
msgid "Repeat" msgid "Repeat"
msgstr "Паўтараць" msgstr "Паўтараць"
#: data/ui/edit-dialog.ui:192 #: data/ui/edit-dialog.ui:198
msgid "Reminders" msgid "Reminders"
msgstr "Напаміны" msgstr "Напаміны"
#: data/ui/edit-dialog.ui:210 #: data/ui/edit-dialog.ui:216
msgid "Notes" msgid "Notes"
msgstr "Запісы" msgstr "Запісы"
#: data/ui/edit-dialog.ui:226 data/ui/source-dialog.ui:563 #: data/ui/edit-dialog.ui:232 data/ui/source-dialog.ui:563
msgid "Location" msgid "Location"
msgstr "Знаходжанне" msgstr "Знаходжанне"
#: data/ui/edit-dialog.ui:293 #: data/ui/edit-dialog.ui:301
msgid "Time" msgid "Time"
msgstr "Час" msgstr "Час"
#: data/ui/edit-dialog.ui:348 #: data/ui/edit-dialog.ui:354
msgid "All Day" msgid "All Day"
msgstr "Увесь дзень" msgstr "Увесь дзень"
#: data/ui/edit-dialog.ui:393 #: data/ui/edit-dialog.ui:399
msgid "Add reminder…" msgid "Add reminder…"
msgstr "Дадаць напамін..." msgstr "Дадаць напамін..."
#: data/ui/edit-dialog.ui:424 #: data/ui/edit-dialog.ui:430
msgid "No Repeat" msgid "No Repeat"
msgstr "Не паўтараць" msgstr "Не паўтараць"
#: data/ui/edit-dialog.ui:425 #: data/ui/edit-dialog.ui:431
msgid "Daily" msgid "Daily"
msgstr "Штодзённа" msgstr "Штодзённа"
#: data/ui/edit-dialog.ui:426 #: data/ui/edit-dialog.ui:432
msgid "Monday – Friday" msgid "Monday – Friday"
msgstr "Панядзелак - Пятніца" msgstr "Панядзелак - Пятніца"
#: data/ui/edit-dialog.ui:427 #: data/ui/edit-dialog.ui:433
msgid "Weekly" msgid "Weekly"
msgstr "Штотыдзень" msgstr "Штотыдзень"
#: data/ui/edit-dialog.ui:428 #: data/ui/edit-dialog.ui:434
msgid "Monthly" msgid "Monthly"
msgstr "Штомесяц" msgstr "Штомесяц"
#: data/ui/edit-dialog.ui:429 #: data/ui/edit-dialog.ui:435
msgid "Yearly" msgid "Yearly"
msgstr "Штогод" msgstr "Штогод"
#: data/ui/edit-dialog.ui:457 #: data/ui/edit-dialog.ui:463
msgid "Forever" msgid "Forever"
msgstr "Заўсёды" msgstr "Заўсёды"
#: data/ui/edit-dialog.ui:458 #: data/ui/edit-dialog.ui:464
msgid "No. of occurrences" msgid "No. of occurrences"
msgstr "Колькасць уваходжанняў" msgstr "Колькасць уваходжанняў"
#: data/ui/edit-dialog.ui:459 #: data/ui/edit-dialog.ui:465
msgid "Until Date" msgid "Until Date"
msgstr "Да даты" msgstr "Да даты"
#: data/ui/edit-dialog.ui:553 #: data/ui/edit-dialog.ui:560
msgid "Delete Event" msgid "Delete Event"
msgstr "Выдаліць Падзею" msgstr "Выдаліць Падзею"
#: data/ui/edit-dialog.ui:590 #: data/ui/edit-dialog.ui:599
msgid "5 minutes" msgid "5 minutes"
msgstr "5 хвілінаў" msgstr "5 хвілінаў"
#: data/ui/edit-dialog.ui:599 #: data/ui/edit-dialog.ui:608
msgid "10 minutes" msgid "10 minutes"
msgstr "10 хвілінаў" msgstr "10 хвілінаў"
#: data/ui/edit-dialog.ui:608 #: data/ui/edit-dialog.ui:617
msgid "30 minutes" msgid "30 minutes"
msgstr "30 хвілінаў" msgstr "30 хвілінаў"
#: data/ui/edit-dialog.ui:617 #: data/ui/edit-dialog.ui:626
msgid "1 hour" msgid "1 hour"
msgstr "1 гадзіна" msgstr "1 гадзіна"
#: data/ui/edit-dialog.ui:625 #: data/ui/edit-dialog.ui:634
msgid "1 day" msgid "1 day"
msgstr "1 дзень" msgstr "1 дзень"
#: data/ui/edit-dialog.ui:634 #: data/ui/edit-dialog.ui:643
msgid "2 days" msgid "2 days"
msgstr "2 дні" msgstr "2 дні"
#: data/ui/edit-dialog.ui:643 #: data/ui/edit-dialog.ui:652
msgid "3 days" msgid "3 days"
msgstr "3 дні" msgstr "3 дні"
#: data/ui/edit-dialog.ui:652 #: data/ui/edit-dialog.ui:661
msgid "1 week" msgid "1 week"
msgstr "1 тыдзень" msgstr "1 тыдзень"
@@ -320,7 +331,7 @@ msgctxt "shortcut window"
msgid "Year view" msgid "Year view"
msgstr "Гадавы выгляд" msgstr "Гадавы выгляд"
#: data/ui/menus.ui:6 data/ui/menus.ui:36 #: data/ui/menus.ui:6
msgid "Add Eve_nt…" msgid "Add Eve_nt…"
msgstr "Дадаць па_дзею…" msgstr "Дадаць па_дзею…"
@@ -340,22 +351,22 @@ msgstr "_Пра дастасаванне"
msgid "_Quit" msgid "_Quit"
msgstr "_Выхад" msgstr "_Выхад"
#: data/ui/menus.ui:40 #: data/ui/menus.ui:36
msgid "_Synchronize"
msgstr "_Сінхранізацыя"
#: data/ui/menus.ui:49
msgid "From Web…" msgid "From Web…"
msgstr "З інтэрнэту…" msgstr "З інтэрнэту…"
#: data/ui/menus.ui:53 #: data/ui/menus.ui:40
msgid "New Local Calendar…" msgid "New Local Calendar…"
msgstr "Новы лакальны каляндар…" msgstr "Новы лакальны каляндар…"
#: data/ui/menus.ui:57 #: data/ui/menus.ui:44
msgid "From File…" msgid "From File…"
msgstr "З файла…" msgstr "З файла…"
#: data/ui/month-popover.ui:91
msgid "New Event…"
msgstr "Новая падзея…"
#: data/ui/quick-add-popover.ui:117 #: data/ui/quick-add-popover.ui:117
msgid "Edit Details…" msgid "Edit Details…"
msgstr "Рэдагавваць падрабязнасці…" msgstr "Рэдагавваць падрабязнасці…"
@@ -365,15 +376,15 @@ msgstr "Рэдагавваць падрабязнасці…"
msgid "Add" msgid "Add"
msgstr "Дадаць" msgstr "Дадаць"
#: data/ui/search-view.ui:76 #: data/ui/search-popover.ui:76
msgid "No results found" msgid "No results found"
msgstr "Вынікаў не знойдзена" msgstr "Вынікаў не знойдзена"
#: data/ui/search-view.ui:92 #: data/ui/search-popover.ui:92
msgid "Try a different search" msgid "Try a different search"
msgstr "Паспрабаваць разнастайны пошук" msgstr "Паспрабаваць разнастайны пошук"
#: data/ui/source-dialog.ui:53 src/gcal-window.c:1129 src/gcal-window.c:1133 #: data/ui/source-dialog.ui:53 src/gcal-window.c:1039 src/gcal-window.c:1043
msgid "Undo" msgid "Undo"
msgstr "Адмяніць апошняе дзеянне" msgstr "Адмяніць апошняе дзеянне"
@@ -456,11 +467,16 @@ msgstr ""
msgid "Calendar Address" msgid "Calendar Address"
msgstr "Адрас каляндара" msgstr "Адрас каляндара"
#: data/ui/source-dialog.ui:729 src/gcal-source-dialog.c:2193 #: data/ui/source-dialog.ui:729 src/gcal-source-dialog.c:2285
#: src/gcal-source-dialog.c:2199 #: src/gcal-source-dialog.c:2291
msgid "Add Calendar" msgid "Add Calendar"
msgstr "Дадаць каляндар" msgstr "Дадаць каляндар"
#: data/ui/source-dialog.ui:745 data/ui/window.ui:344
#: src/gcal-source-dialog.c:862 src/gcal-source-dialog.c:2314
msgid "Calendar Settings"
msgstr "Налады каляндара"
#: data/ui/source-dialog.ui:806 #: data/ui/source-dialog.ui:806
msgid "User" msgid "User"
msgstr "Карыстальнік" msgstr "Карыстальнік"
@@ -469,12 +485,16 @@ msgstr "Карыстальнік"
msgid "Password" msgid "Password"
msgstr "Пароль" msgstr "Пароль"
#: data/ui/source-dialog.ui:866
msgid "Enter your credentials"
msgstr "Увядзіце мандаты"
#: data/ui/source-dialog.ui:878 #: data/ui/source-dialog.ui:878
msgid "Connect" msgid "Connect"
msgstr "Далучыцца" msgstr "Далучыцца"
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:763 #: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:754
#: src/views/gcal-week-view.c:287 #: src/views/gcal-week-view.c:278
msgid "00:00" msgid "00:00"
msgstr "00:00" msgstr "00:00"
@@ -482,94 +502,104 @@ msgstr "00:00"
msgid ":" msgid ":"
msgstr ":" msgstr ":"
#: data/ui/time-selector.ui:78 src/views/gcal-week-view.c:442 #: data/ui/time-selector.ui:78 src/views/gcal-week-view.c:432
msgid "AM" msgid "AM"
msgstr "AM" msgstr "AM"
#: data/ui/time-selector.ui:79 src/views/gcal-week-view.c:442 #: data/ui/time-selector.ui:79 src/views/gcal-week-view.c:432
msgid "PM" msgid "PM"
msgstr "PM" msgstr "PM"
#: data/ui/window.ui:64 #: data/ui/weather-settings.ui:12 data/ui/window.ui:407
msgid "_Weather"
msgstr "_Надвор'е"
#: data/ui/weather-settings.ui:30
msgid "Show Weather"
msgstr "Паказаць надвор'е"
#: data/ui/weather-settings.ui:53
msgid "Automatic Location"
msgstr "Аўтаматычна вызначаць месцазнаходжанне"
#: data/ui/window.ui:67
msgid "Week" msgid "Week"
msgstr "Тыдзень" msgstr "Тыдзень"
#: data/ui/window.ui:79 #: data/ui/window.ui:82
msgid "Month" msgid "Month"
msgstr "Месяц" msgstr "Месяц"
#: data/ui/window.ui:93 #: data/ui/window.ui:96
msgid "Year" msgid "Year"
msgstr "Год" msgstr "Год"
#: data/ui/window.ui:187 data/ui/year-view.ui:84 src/views/gcal-year-view.c:275 #: data/ui/window.ui:190 data/ui/year-view.ui:88 src/views/gcal-year-view.c:279
#: src/views/gcal-year-view.c:509 #: src/views/gcal-year-view.c:514
msgid "Today" msgid "Today"
msgstr "Сёння" msgstr "Сёння"
#: data/ui/window.ui:261 #: data/ui/window.ui:271
msgid "Manage your calendars" msgid "Manage your calendars"
msgstr "Кіраванне вашым каляндаром" msgstr "Кіраванне вашым каляндаром"
#: data/ui/window.ui:278 #: data/ui/window.ui:288
msgctxt "tooltip" msgctxt "tooltip"
msgid "Search for events" msgid "Search for events"
msgstr "Пошук падзей" msgstr "Пошук падзей"
#: data/ui/window.ui:334 src/gcal-source-dialog.c:844 #: data/ui/window.ui:391
#: src/gcal-source-dialog.c:2222 msgid "Add Eve_nt"
msgid "Calendar Settings" msgstr "Дадаць па_дзею"
msgstr "Налады каляндара"
#: data/ui/year-view.ui:95 #: data/ui/window.ui:400
msgid "_Synchronize"
msgstr "_Сінхранізацыя"
#: data/ui/year-view.ui:133
msgid "No events" msgid "No events"
msgstr "Няма падзеяў" msgstr "Няма падзеяў"
#: data/ui/year-view.ui:117 src/views/gcal-month-view.c:2322 #: data/ui/year-view.ui:155
msgid "Add Event…" msgid "Add Event…"
msgstr "Дадаць падзею…" msgstr "Дадаць падзею…"
#: src/gcal-application.c:89 #: src/gcal-application.c:88
msgid "Quit GNOME Calendar"
msgstr "Выйсці з календара GNOME"
#: src/gcal-application.c:93
msgid "Display version number" msgid "Display version number"
msgstr "Паказаць нумар версіі" msgstr "Паказаць нумар версіі"
#: src/gcal-application.c:94 #: src/gcal-application.c:98
msgid "Enable debug messages" msgid "Enable debug messages"
msgstr "Уключыць адладачныя паведамленні" msgstr "Уключыць адладачныя паведамленні"
#: src/gcal-application.c:99 #: src/gcal-application.c:103
msgid "Open calendar on the passed date" msgid "Open calendar on the passed date"
msgstr "Адкрыць паляндар на прайшоўшую дату" msgstr "Адкрыць паляндар на прайшоўшую дату"
#: src/gcal-application.c:104 #: src/gcal-application.c:108
msgid "Open calendar showing the passed event" msgid "Open calendar showing the passed event"
msgstr "Адкрыць каляндар і паказаць прайшоўшыя падзеі" msgstr "Адкрыць каляндар і паказаць прайшоўшыя падзеі"
#: src/gcal-application.c:285 #: src/gcal-application.c:595
msgid "— Calendar management"
msgstr "— Кіраванне каляндаром"
#: src/gcal-application.c:467
#, c-format #, c-format
msgid "Copyright © %d The Calendar authors" msgid "Copyright © 2012–%d The Calendar authors"
msgstr "Аўтарскія правы © %d аўтары Каляндара" msgstr "Аўтаркія правы © 2012–%d аўтары Календара"
#: src/gcal-application.c:473 #: src/gcal-application.c:646
#, c-format
msgid "Copyright © %d–%d The Calendar authors"
msgstr "Аўтаркія правы © %d–%d аўтары Каляндара"
#: src/gcal-application.c:486
msgid "translator-credits" msgid "translator-credits"
msgstr "" msgstr ""
"Uladzimir Manulenka <vlma@tut.by>\n" "Uladzimir Manulenka <vlma@tut.by>\n"
"Юрась Шумовіч <shumovichy@gmail.com>" "Юрась Шумовіч <shumovichy@gmail.com>"
#: src/gcal-edit-dialog.c:688 #: src/gcal-edit-dialog.c:277
msgid "Save" msgid "Save"
msgstr "Захаваць" msgstr "Захаваць"
#: src/gcal-edit-dialog.c:1001 #: src/gcal-edit-dialog.c:1037
#, c-format #, c-format
msgid "%d minute before" msgid "%d minute before"
msgid_plural "%d minutes before" msgid_plural "%d minutes before"
@@ -577,7 +607,7 @@ msgstr[0] "%d хвіліна да"
msgstr[1] "%d хвіліны да" msgstr[1] "%d хвіліны да"
msgstr[2] "%d хвілінаў да" msgstr[2] "%d хвілінаў да"
#: src/gcal-edit-dialog.c:1009 #: src/gcal-edit-dialog.c:1045
#, c-format #, c-format
msgid "%d hour before" msgid "%d hour before"
msgid_plural "%d hours before" msgid_plural "%d hours before"
@@ -585,7 +615,7 @@ msgstr[0] "%d гадзіна да"
msgstr[1] "%d гадзіны да" msgstr[1] "%d гадзіны да"
msgstr[2] "%d гадзінаў да" msgstr[2] "%d гадзінаў да"
#: src/gcal-edit-dialog.c:1017 #: src/gcal-edit-dialog.c:1053
#, c-format #, c-format
msgid "%d day before" msgid "%d day before"
msgid_plural "%d days before" msgid_plural "%d days before"
@@ -593,7 +623,7 @@ msgstr[0] "%d дзень да"
msgstr[1] "%d дні да" msgstr[1] "%d дні да"
msgstr[2] "%d дзён да" msgstr[2] "%d дзён да"
#: src/gcal-edit-dialog.c:1025 #: src/gcal-edit-dialog.c:1061
#, c-format #, c-format
msgid "%d week before" msgid "%d week before"
msgid_plural "%d weeks before" msgid_plural "%d weeks before"
@@ -601,12 +631,12 @@ msgstr[0] "%d тыдзень да"
msgstr[1] "%d тыдні да" msgstr[1] "%d тыдні да"
msgstr[2] "%d тыдняў да" msgstr[2] "%d тыдняў да"
#: src/gcal-edit-dialog.c:1328 src/gcal-quick-add-popover.c:680 #: src/gcal-edit-dialog.c:1367 src/gcal-quick-add-popover.c:682
msgid "Unnamed event" msgid "Unnamed event"
msgstr "Падзея без назвы" msgstr "Падзея без назвы"
#. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue") #. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue")
#: src/gcal-event-widget.c:364 #: src/gcal-event-widget.c:420
#, c-format #, c-format
msgid "At %s" msgid "At %s"
msgstr "У %s" msgstr "У %s"
@@ -721,14 +751,17 @@ msgid "December"
msgstr "Снежань" msgstr "Снежань"
#: src/gcal-quick-add-popover.c:286 #: src/gcal-quick-add-popover.c:286
#, c-format
msgid "from Today" msgid "from Today"
msgstr "з сённяшняга дня" msgstr "з сённяшняга дня"
#: src/gcal-quick-add-popover.c:290 #: src/gcal-quick-add-popover.c:290
#, c-format
msgid "from Tomorrow" msgid "from Tomorrow"
msgstr "з заўтрашняга дня" msgstr "з заўтрашняга дня"
#: src/gcal-quick-add-popover.c:294 #: src/gcal-quick-add-popover.c:294
#, c-format
msgid "from Yesterday" msgid "from Yesterday"
msgstr "з учарашняга дня" msgstr "з учарашняга дня"
@@ -742,14 +775,17 @@ msgid "from %1$s %2$s"
msgstr "з %1$s %2$s" msgstr "з %1$s %2$s"
#: src/gcal-quick-add-popover.c:323 #: src/gcal-quick-add-popover.c:323
#, c-format
msgid "to Today" msgid "to Today"
msgstr "да сённяшняга дня" msgstr "да сённяшняга дня"
#: src/gcal-quick-add-popover.c:327 #: src/gcal-quick-add-popover.c:327
#, c-format
msgid "to Tomorrow" msgid "to Tomorrow"
msgstr "да заўтрашняга дня" msgstr "да заўтрашняга дня"
#: src/gcal-quick-add-popover.c:331 #: src/gcal-quick-add-popover.c:331
#, c-format
msgid "to Yesterday" msgid "to Yesterday"
msgstr "да учарашняга дня" msgstr "да учарашняга дня"
@@ -769,14 +805,17 @@ msgid "New Event %1$s %2$s"
msgstr "Новая падзея %1$s %2$s" msgstr "Новая падзея %1$s %2$s"
#: src/gcal-quick-add-popover.c:373 #: src/gcal-quick-add-popover.c:373
#, c-format
msgid "New Event Today" msgid "New Event Today"
msgstr "Новая падзея сёння" msgstr "Новая падзея сёння"
#: src/gcal-quick-add-popover.c:377 #: src/gcal-quick-add-popover.c:377
#, c-format
msgid "New Event Tomorrow" msgid "New Event Tomorrow"
msgstr "Новая падзея заўтра" msgstr "Новая падзея заўтра"
#: src/gcal-quick-add-popover.c:381 #: src/gcal-quick-add-popover.c:381
#, c-format
msgid "New Event Yesterday" msgid "New Event Yesterday"
msgstr "Новая падзея ўчора" msgstr "Новая падзея ўчора"
@@ -875,61 +914,61 @@ msgstr "Новая падзея %d снежня"
msgid "%1$s, %2$s – %3$s" msgid "%1$s, %2$s – %3$s"
msgstr "%1$s, %2$s – %3$s" msgstr "%1$s, %2$s – %3$s"
#: src/gcal-search-view.c:358 #: src/gcal-search-popover.c:303
msgid "All day" msgid "All day"
msgstr "Увесь дзень" msgstr "Увесь дзень"
#: src/gcal-search-view.c:563 #: src/gcal-search-popover.c:563
msgid "Use the entry above to search for events." msgid "Use the entry above to search for events."
msgstr "Карыстайцеся полем зверху для пошуку падзеяў." msgstr "Карыстайцеся полем зверху для пошуку падзеяў."
#. Dialog #. Dialog
#: src/gcal-source-dialog.c:1099 #: src/gcal-source-dialog.c:1159
msgid "Select a calendar file" msgid "Select a calendar file"
msgstr "Выбраць файл каляндара" msgstr "Выбраць файл каляндара"
#: src/gcal-source-dialog.c:1103 #: src/gcal-source-dialog.c:1163
msgid "Open" msgid "Open"
msgstr "Адкрыць" msgstr "Адкрыць"
#: src/gcal-source-dialog.c:1110 #: src/gcal-source-dialog.c:1170
msgid "Calendar files" msgid "Calendar files"
msgstr "Файлы каляндара" msgstr "Файлы каляндара"
#. update the source properties #. update the source properties
#: src/gcal-source-dialog.c:1144 #: src/gcal-source-dialog.c:1204
msgid "Unnamed Calendar" msgid "Unnamed Calendar"
msgstr "Каляндар без назвы" msgstr "Каляндар без назвы"
#. Update notification label #. Update notification label
#: src/gcal-source-dialog.c:1750 #: src/gcal-source-dialog.c:1810
#, c-format #, c-format
msgid "Calendar <b>%s</b> removed" msgid "Calendar <b>%s</b> removed"
msgstr "Каляндар <b>%s</b> выдалены" msgstr "Каляндар <b>%s</b> выдалены"
#: src/gcal-source-dialog.c:1953 src/gcal-source-dialog.c:2010 #: src/gcal-source-dialog.c:1859 src/gcal-source-dialog.c:1915
msgid "Off" msgid "Off"
msgstr "Выключыць" msgstr "Выключыць"
#: src/gcal-source-dialog.c:1953 src/gcal-source-dialog.c:2010 #: src/gcal-source-dialog.c:1859 src/gcal-source-dialog.c:1915
msgid "On" msgid "On"
msgstr "Уключыць" msgstr "Уключыць"
#: src/gcal-source-dialog.c:2009 #: src/gcal-source-dialog.c:1914
msgid "Expired" msgid "Expired"
msgstr "Састарэў" msgstr "Састарэў"
#: src/gcal-time-selector.c:84 #: src/gcal-time-selector.c:83
#, c-format #, c-format
msgid "%s AM" msgid "%s AM"
msgstr "%s AM" msgstr "%s AM"
#: src/gcal-time-selector.c:86 #: src/gcal-time-selector.c:85
#, c-format #, c-format
msgid "%s PM" msgid "%s PM"
msgstr "%s PM" msgstr "%s PM"
#: src/gcal-utils.c:1188 #: src/gcal-utils.c:1120
msgid "" msgid ""
"The event you are trying to modify is recurring. The changes you have " "The event you are trying to modify is recurring. The changes you have "
"selected should be applied to:" "selected should be applied to:"
@@ -937,44 +976,35 @@ msgstr ""
"Вы спрабуеце змяніць перыядычную падзею. Вылучаныя змены павінны быць ужыты " "Вы спрабуеце змяніць перыядычную падзею. Вылучаныя змены павінны быць ужыты "
"для:" "для:"
#: src/gcal-utils.c:1191 #: src/gcal-utils.c:1123
msgid "_Cancel" msgid "_Cancel"
msgstr "_Адмена" msgstr "_Адмена"
#: src/gcal-utils.c:1193 #: src/gcal-utils.c:1125
msgid "_Only This Event" msgid "_Only This Event"
msgstr "_Толькі гэтая падзея" msgstr "_Толькі гэтая падзея"
#: src/gcal-utils.c:1200 #: src/gcal-utils.c:1132
msgid "_Subsequent events" msgid "_Subsequent events"
msgstr "_Наступныя падзеі" msgstr "_Наступныя падзеі"
#: src/gcal-utils.c:1202 #: src/gcal-utils.c:1134
msgid "_All events" msgid "_All events"
msgstr "_Усе падзеі" msgstr "_Усе падзеі"
#: src/gcal-window.c:1129 #: src/gcal-window.c:1039
msgid "Another event deleted" msgid "Another event deleted"
msgstr "Выдалена яшчэ адна падзея" msgstr "Выдалена яшчэ адна падзея"
#: src/gcal-window.c:1133 #: src/gcal-window.c:1043
msgid "Event deleted" msgid "Event deleted"
msgstr "Пвдзея выдалена" msgstr "Пвдзея выдалена"
#. Translators: This is a date format in the sidebar of the year #: src/views/gcal-week-grid.c:751 src/views/gcal-week-view.c:275
#. * view when there is only one specified day selected. msgid "00 AM"
#. Translators: This is a date format in the sidebar of the year view. msgstr "00 AM"
#: src/views/gcal-month-view.c:225 src/views/gcal-year-view.c:290
#: src/views/gcal-year-view.c:512
msgid "%B %d"
msgstr "%B %d"
#: src/views/gcal-month-view.c:1186 #: src/views/gcal-week-header.c:398
msgid "Other events"
msgstr "Іншыя падзеі"
#. TODO: Warning: in some languages this string can be too long and may overlap with the number
#: src/views/gcal-month-view.c:1785 src/views/gcal-week-header.c:338
#, c-format #, c-format
msgid "Other event" msgid "Other event"
msgid_plural "Other %d events" msgid_plural "Other %d events"
@@ -982,11 +1012,7 @@ msgstr[0] "Іншая %d падзея"
msgstr[1] "Іншыя %d падзеі" msgstr[1] "Іншыя %d падзеі"
msgstr[2] "Іншых %d падзеяў" msgstr[2] "Іншых %d падзеяў"
#: src/views/gcal-week-grid.c:760 src/views/gcal-week-view.c:284 #: src/views/gcal-week-header.c:934
msgid "00 AM"
msgstr "00 AM"
#: src/views/gcal-week-header.c:871
#, c-format #, c-format
msgid "week %d" msgid "week %d"
msgstr "тыдзень %d" msgstr "тыдзень %d"
@@ -994,10 +1020,26 @@ msgstr "тыдзень %d"
#. Translators: This is a date format in the sidebar of the year #. Translators: This is a date format in the sidebar of the year
#. * view when the selection starts at the specified day and the #. * view when the selection starts at the specified day and the
#. * end is unspecified. #. * end is unspecified.
#: src/views/gcal-year-view.c:284 #: src/views/gcal-year-view.c:288
msgid "%B %d…" msgid "%B %d…"
msgstr "%B %d…" msgstr "%B %d…"
#. Translators: This is a date format in the sidebar of the year
#. * view when there is only one specified day selected.
#. Translators: This is a date format in the sidebar of the year view.
#: src/views/gcal-year-view.c:294 src/views/gcal-year-view.c:517
msgid "%B %d"
msgstr "%B %d"
#~ msgid "— Calendar management"
#~ msgstr "— Кіраванне каляндаром"
#~ msgid "Copyright © %d The Calendar authors"
#~ msgstr "Аўтарскія правы © %d аўтары Каляндара"
#~ msgid "Other events"
#~ msgstr "Іншыя падзеі"
#~ msgid "%1$s %2$d" #~ msgid "%1$s %2$d"
#~ msgstr "%1$s %2$d" #~ msgstr "%1$s %2$d"
+11 -11
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-calendar\n" "Project-Id-Version: gnome-calendar\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
"POT-Creation-Date: 2018-02-20 22:28+0000\n" "POT-Creation-Date: 2018-05-02 02:05+0000\n"
"PO-Revision-Date: 2018-02-22 09:54+0100\n" "PO-Revision-Date: 2018-05-04 00:26+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n" "Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: čeština <gnome-cs-list@gnome.org>\n" "Language-Team: čeština <gnome-cs-list@gnome.org>\n"
"Language: cs\n" "Language: cs\n"
@@ -34,7 +34,7 @@ msgstr "Kalendář pro GNOME"
msgid "" msgid ""
"GNOME Calendar is a simple and beautiful calendar application designed to " "GNOME Calendar is a simple and beautiful calendar application designed to "
"perfectly fit the GNOME desktop. By reusing the components which the GNOME " "perfectly fit the GNOME desktop. By reusing the components which the GNOME "
"desktop is build on, Calendar nicely integrates with the GNOME ecosystem." "desktop is built on, Calendar nicely integrates with the GNOME ecosystem."
msgstr "" msgstr ""
"Kalendář GNOME je jednoduchá a hezká kalendářová aplikace navržená tak, aby " "Kalendář GNOME je jednoduchá a hezká kalendářová aplikace navržená tak, aby "
"skvěle zapadla do pracovního prostředí GNOME. Díky využití komponent, na " "skvěle zapadla do pracovního prostředí GNOME. Díky využití komponent, na "
@@ -494,7 +494,7 @@ msgstr "Zadání přihlašovacích údajů"
msgid "Connect" msgid "Connect"
msgstr "Připojit se" msgstr "Připojit se"
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:754 #: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:753
#: src/views/gcal-week-view.c:278 #: src/views/gcal-week-view.c:278
msgid "00:00" msgid "00:00"
msgstr "00∶00" msgstr "00∶00"
@@ -637,7 +637,7 @@ msgid "Unnamed event"
msgstr "Událost bez názvu" msgstr "Událost bez názvu"
#. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue") #. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue")
#: src/gcal-event-widget.c:420 #: src/gcal-event-widget.c:422
#, c-format #, c-format
msgid "At %s" msgid "At %s"
msgstr "v místě %s" msgstr "v místě %s"
@@ -969,7 +969,7 @@ msgstr "%s odp."
msgid "%s PM" msgid "%s PM"
msgstr "%s dop." msgstr "%s dop."
#: src/gcal-utils.c:1093 #: src/gcal-utils.c:1120
msgid "" msgid ""
"The event you are trying to modify is recurring. The changes you have " "The event you are trying to modify is recurring. The changes you have "
"selected should be applied to:" "selected should be applied to:"
@@ -977,19 +977,19 @@ msgstr ""
"Událost, kterou se snažíte změnit, se opakuje. Mají se změny, které jste " "Událost, kterou se snažíte změnit, se opakuje. Mají se změny, které jste "
"zvolili, použít:" "zvolili, použít:"
#: src/gcal-utils.c:1096 #: src/gcal-utils.c:1123
msgid "_Cancel" msgid "_Cancel"
msgstr "_Zrušit" msgstr "_Zrušit"
#: src/gcal-utils.c:1098 #: src/gcal-utils.c:1125
msgid "_Only This Event" msgid "_Only This Event"
msgstr "Jen na tut_o událost" msgstr "Jen na tut_o událost"
#: src/gcal-utils.c:1105 #: src/gcal-utils.c:1132
msgid "_Subsequent events" msgid "_Subsequent events"
msgstr "I na navazující událo_sti" msgstr "I na navazující událo_sti"
#: src/gcal-utils.c:1107 #: src/gcal-utils.c:1134
msgid "_All events" msgid "_All events"
msgstr "_Všechny události" msgstr "_Všechny události"
@@ -1001,7 +1001,7 @@ msgstr "Smazána ještě jedna událost"
msgid "Event deleted" msgid "Event deleted"
msgstr "Událost smazána" msgstr "Událost smazána"
#: src/views/gcal-week-grid.c:751 src/views/gcal-week-view.c:275 #: src/views/gcal-week-grid.c:750 src/views/gcal-week-view.c:275
msgid "00 AM" msgid "00 AM"
msgstr "0" msgstr "0"
+16 -12
View File
@@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-calendar master\n" "Project-Id-Version: gnome-calendar master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
"POT-Creation-Date: 2018-02-20 22:28+0000\n" "POT-Creation-Date: 2018-05-02 02:05+0000\n"
"PO-Revision-Date: 2018-02-21 17:13+0100\n" "PO-Revision-Date: 2018-05-08 14:48+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: es <gnome-es-list@gnome.org>\n" "Language-Team: es <gnome-es-list@gnome.org>\n"
"Language: es\n" "Language: es\n"
@@ -30,10 +30,15 @@ msgid "Calendar for GNOME"
msgstr "Calendario para GNOME" msgstr "Calendario para GNOME"
#: data/appdata/org.gnome.Calendar.appdata.xml.in:11 #: data/appdata/org.gnome.Calendar.appdata.xml.in:11
#| msgid ""
#| "GNOME Calendar is a simple and beautiful calendar application designed to "
#| "perfectly fit the GNOME desktop. By reusing the components which the "
#| "GNOME desktop is build on, Calendar nicely integrates with the GNOME "
#| "ecosystem."
msgid "" msgid ""
"GNOME Calendar is a simple and beautiful calendar application designed to " "GNOME Calendar is a simple and beautiful calendar application designed to "
"perfectly fit the GNOME desktop. By reusing the components which the GNOME " "perfectly fit the GNOME desktop. By reusing the components which the GNOME "
"desktop is build on, Calendar nicely integrates with the GNOME ecosystem." "desktop is built on, Calendar nicely integrates with the GNOME ecosystem."
msgstr "" msgstr ""
"Calendario de GNOME es una aplicación de calendario bonita y sencilla " "Calendario de GNOME es una aplicación de calendario bonita y sencilla "
"diseñada para ajustarse perfectamente al escritorio GNOME. Al reutilizar " "diseñada para ajustarse perfectamente al escritorio GNOME. Al reutilizar "
@@ -491,7 +496,7 @@ msgstr "Introduzca sus credenciales"
msgid "Connect" msgid "Connect"
msgstr "Conectar" msgstr "Conectar"
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:754 #: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:753
#: src/views/gcal-week-view.c:278 #: src/views/gcal-week-view.c:278
msgid "00:00" msgid "00:00"
msgstr "00:00" msgstr "00:00"
@@ -563,7 +568,6 @@ msgid "Add Event…"
msgstr "Añadir evento…" msgstr "Añadir evento…"
#: src/gcal-application.c:88 #: src/gcal-application.c:88
#| msgid "Edit Calendar"
msgid "Quit GNOME Calendar" msgid "Quit GNOME Calendar"
msgstr "Salir de calendario de GNOME" msgstr "Salir de calendario de GNOME"
@@ -629,7 +633,7 @@ msgid "Unnamed event"
msgstr "Evento sin nombre" msgstr "Evento sin nombre"
#. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue") #. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue")
#: src/gcal-event-widget.c:420 #: src/gcal-event-widget.c:422
#, c-format #, c-format
msgid "At %s" msgid "At %s"
msgstr "El %s" msgstr "El %s"
@@ -961,7 +965,7 @@ msgstr "%s AM"
msgid "%s PM" msgid "%s PM"
msgstr "%s PM" msgstr "%s PM"
#: src/gcal-utils.c:1093 #: src/gcal-utils.c:1120
msgid "" msgid ""
"The event you are trying to modify is recurring. The changes you have " "The event you are trying to modify is recurring. The changes you have "
"selected should be applied to:" "selected should be applied to:"
@@ -969,19 +973,19 @@ msgstr ""
"El evento que intenta modificar es recurrente. Los cambios que ha " "El evento que intenta modificar es recurrente. Los cambios que ha "
"seleccionado se deben aplicar a:" "seleccionado se deben aplicar a:"
#: src/gcal-utils.c:1096 #: src/gcal-utils.c:1123
msgid "_Cancel" msgid "_Cancel"
msgstr "_Cancelar" msgstr "_Cancelar"
#: src/gcal-utils.c:1098 #: src/gcal-utils.c:1125
msgid "_Only This Event" msgid "_Only This Event"
msgstr "_Sólo este evento" msgstr "_Sólo este evento"
#: src/gcal-utils.c:1105 #: src/gcal-utils.c:1132
msgid "_Subsequent events" msgid "_Subsequent events"
msgstr "_Eventos próximos" msgstr "_Eventos próximos"
#: src/gcal-utils.c:1107 #: src/gcal-utils.c:1134
msgid "_All events" msgid "_All events"
msgstr "_Todos los eventos" msgstr "_Todos los eventos"
@@ -993,7 +997,7 @@ msgstr "Otro evento eliminado"
msgid "Event deleted" msgid "Event deleted"
msgstr "Evento eliminado" msgstr "Evento eliminado"
#: src/views/gcal-week-grid.c:751 src/views/gcal-week-view.c:275 #: src/views/gcal-week-grid.c:750 src/views/gcal-week-view.c:275
msgid "00 AM" msgid "00 AM"
msgstr "00 AM" msgstr "00 AM"
+79 -69
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-calendar master\n" "Project-Id-Version: gnome-calendar master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
"POT-Creation-Date: 2018-01-10 15:33+0000\n" "POT-Creation-Date: 2018-05-02 02:05+0000\n"
"PO-Revision-Date: 2018-01-15 12:00+0100\n" "PO-Revision-Date: 2018-05-06 16:46+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n" "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n" "Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n" "Language: fur\n"
@@ -16,11 +16,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.3\n" "X-Generator: Poedit 2.0.7\n"
#: data/appdata/org.gnome.Calendar.appdata.xml.in:7 #: data/appdata/org.gnome.Calendar.appdata.xml.in:7
#: data/org.gnome.Calendar.desktop.in:3 data/ui/quick-add-popover.ui:187 #: data/org.gnome.Calendar.desktop.in:3 data/ui/quick-add-popover.ui:187
#: data/ui/window.ui:187 src/gcal-application.c:540 #: data/ui/window.ui:187 src/gcal-application.c:640 src/main.c:36
msgid "Calendar" msgid "Calendar"
msgstr "Calendari" msgstr "Calendari"
@@ -32,11 +32,12 @@ msgstr "Calendari par GNOME"
msgid "" msgid ""
"GNOME Calendar is a simple and beautiful calendar application designed to " "GNOME Calendar is a simple and beautiful calendar application designed to "
"perfectly fit the GNOME desktop. By reusing the components which the GNOME " "perfectly fit the GNOME desktop. By reusing the components which the GNOME "
"desktop is build on, Calendar nicely integrates with the GNOME ecosystem." "desktop is built on, Calendar nicely integrates with the GNOME ecosystem."
msgstr "" msgstr ""
"GNOME Calendari a je une semplice e biele aplicazion calendari progjetade " "GNOME Calendari a je une semplice e biele aplicazion calendari progjetade "
"par incjastrâsi ben tal desktop GNOME. Doprant i components cun la cuâl il " "par incjastrâsi in maniere perfete tal scritori GNOME. Doprant i components "
"desktop GNOME al è costruît, Calendari si integre ben cul ecosisteme GNOME." "che cun chei al è costruît il scritori GNOME, Calendari si integre ben cul "
"ecosisteme GNOME."
#: data/appdata/org.gnome.Calendar.appdata.xml.in:16 #: data/appdata/org.gnome.Calendar.appdata.xml.in:16
msgid "" msgid ""
@@ -75,44 +76,44 @@ msgstr "org.gnome.Calendar"
msgid "Calendar;Event;Reminder;" msgid "Calendar;Event;Reminder;"
msgstr "Calendari;Lunari;Event;Events;Promemorie;" msgstr "Calendari;Lunari;Event;Events;Promemorie;"
#: data/org.gnome.calendar.gschema.xml:6 #: data/org.gnome.calendar.gschema.xml.in:6
msgid "Window maximized" msgid "Window maximized"
msgstr "Barcon slargjât" msgstr "Barcon slargjât"
#: data/org.gnome.calendar.gschema.xml:7 #: data/org.gnome.calendar.gschema.xml.in:7
msgid "Window maximized state" msgid "Window maximized state"
msgstr "Il stât slargjât dal barcon" msgstr "Il stât slargjât dal barcon"
#: data/org.gnome.calendar.gschema.xml:11 #: data/org.gnome.calendar.gschema.xml.in:11
msgid "Window size" msgid "Window size"
msgstr "Dimension barcon" msgstr "Dimension barcon"
#: data/org.gnome.calendar.gschema.xml:12 #: data/org.gnome.calendar.gschema.xml.in:12
msgid "Window size (width and height)." msgid "Window size (width and height)."
msgstr "La dimension dal barcon (largjece e altece)." msgstr "La dimension dal barcon (largjece e altece)."
#: data/org.gnome.calendar.gschema.xml:16 #: data/org.gnome.calendar.gschema.xml.in:16
msgid "Window position" msgid "Window position"
msgstr "Posizion barcon" msgstr "Posizion barcon"
#: data/org.gnome.calendar.gschema.xml:17 #: data/org.gnome.calendar.gschema.xml.in:17
msgid "Window position (x and y)." msgid "Window position (x and y)."
msgstr "La posizion dal barcon (x e y)." msgstr "La posizion dal barcon (x e y)."
#: data/org.gnome.calendar.gschema.xml:21 #: data/org.gnome.calendar.gschema.xml.in:21
msgid "Type of the active view" msgid "Type of the active view"
msgstr "Mût de viste ative" msgstr "Mût de viste ative"
#: data/org.gnome.calendar.gschema.xml:22 #: data/org.gnome.calendar.gschema.xml.in:22
msgid "Type of the active window view, default value is: monthly view" msgid "Type of the active window view, default value is: monthly view"
msgstr "" msgstr ""
"Il mût de viste dal barcon atîf, il valôr predefinît al è: viste mensîl" "Il mût de viste dal barcon atîf, il valôr predefinît al è: viste mensîl"
#: data/org.gnome.calendar.gschema.xml:26 #: data/org.gnome.calendar.gschema.xml.in:26
msgid "Weather Service Configuration" msgid "Weather Service Configuration"
msgstr "Configurazion dal servizi meteorologjic" msgstr "Configurazion dal servizi meteorologjic"
#: data/org.gnome.calendar.gschema.xml:27 #: data/org.gnome.calendar.gschema.xml.in:27
msgid "" msgid ""
"Whether weather reports are shown, automatic locations are used and a " "Whether weather reports are shown, automatic locations are used and a "
"location-name" "location-name"
@@ -137,7 +138,7 @@ msgstr "Anule"
msgid "Click to select the calendar" msgid "Click to select the calendar"
msgstr "Fâs clic par selezionâ il calendari" msgstr "Fâs clic par selezionâ il calendari"
#: data/ui/edit-dialog.ui:108 src/gcal-edit-dialog.c:275 #: data/ui/edit-dialog.ui:108 src/gcal-edit-dialog.c:277
msgid "Done" msgid "Done"
msgstr "Fat" msgstr "Fat"
@@ -374,15 +375,15 @@ msgstr "Modifiche detais…"
msgid "Add" msgid "Add"
msgstr "Zonte" msgstr "Zonte"
#: data/ui/search-view.ui:76 #: data/ui/search-popover.ui:76
msgid "No results found" msgid "No results found"
msgstr "Nissun risultât cjatât" msgstr "Nissun risultât cjatât"
#: data/ui/search-view.ui:92 #: data/ui/search-popover.ui:92
msgid "Try a different search" msgid "Try a different search"
msgstr "Prove une ricercje diferente" msgstr "Prove une ricercje diferente"
#: data/ui/source-dialog.ui:53 src/gcal-window.c:1272 src/gcal-window.c:1276 #: data/ui/source-dialog.ui:53 src/gcal-window.c:1039 src/gcal-window.c:1043
msgid "Undo" msgid "Undo"
msgstr "Anule" msgstr "Anule"
@@ -491,8 +492,8 @@ msgstr "Inserìs lis tôs credenziâls"
msgid "Connect" msgid "Connect"
msgstr "Conet" msgstr "Conet"
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:758 #: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:753
#: src/views/gcal-week-view.c:287 #: src/views/gcal-week-view.c:278
msgid "00:00" msgid "00:00"
msgstr "00:00" msgstr "00:00"
@@ -500,14 +501,26 @@ msgstr "00:00"
msgid ":" msgid ":"
msgstr ":" msgstr ":"
#: data/ui/time-selector.ui:78 src/views/gcal-week-view.c:442 #: data/ui/time-selector.ui:78 src/views/gcal-week-view.c:432
msgid "AM" msgid "AM"
msgstr "AM" msgstr "AM"
#: data/ui/time-selector.ui:79 src/views/gcal-week-view.c:442 #: data/ui/time-selector.ui:79 src/views/gcal-week-view.c:432
msgid "PM" msgid "PM"
msgstr "PM" msgstr "PM"
#: data/ui/weather-settings.ui:12 data/ui/window.ui:407
msgid "_Weather"
msgstr "_Timp"
#: data/ui/weather-settings.ui:30
msgid "Show Weather"
msgstr "Mostre timp"
#: data/ui/weather-settings.ui:53
msgid "Automatic Location"
msgstr "Posizion automatiche"
#: data/ui/window.ui:67 #: data/ui/window.ui:67
msgid "Week" msgid "Week"
msgstr "Setemane" msgstr "Setemane"
@@ -520,8 +533,8 @@ msgstr "Mês"
msgid "Year" msgid "Year"
msgstr "An" msgstr "An"
#: data/ui/window.ui:190 data/ui/year-view.ui:88 src/views/gcal-year-view.c:285 #: data/ui/window.ui:190 data/ui/year-view.ui:88 src/views/gcal-year-view.c:279
#: src/views/gcal-year-view.c:520 #: src/views/gcal-year-view.c:514
msgid "Today" msgid "Today"
msgstr "Vuê" msgstr "Vuê"
@@ -542,18 +555,6 @@ msgstr "_Zonte event"
msgid "_Synchronize" msgid "_Synchronize"
msgstr "_Sincronize" msgstr "_Sincronize"
#: data/ui/window.ui:407 data/ui/window.ui:428
msgid "_Weather"
msgstr "_Timp"
#: data/ui/window.ui:446
msgid "Show Weather"
msgstr "Mostre timp"
#: data/ui/window.ui:469
msgid "Automatic Location"
msgstr "Posizion automatiche"
#: data/ui/year-view.ui:133 #: data/ui/year-view.ui:133
msgid "No events" msgid "No events"
msgstr "Nissun event" msgstr "Nissun event"
@@ -562,73 +563,73 @@ msgstr "Nissun event"
msgid "Add Event…" msgid "Add Event…"
msgstr "Zonte event…" msgstr "Zonte event…"
#: src/gcal-application.c:90 #: src/gcal-application.c:88
msgid "Quit GNOME Calendar" msgid "Quit GNOME Calendar"
msgstr "Jes di Calendari GNOME" msgstr "Jes di Calendari GNOME"
#: src/gcal-application.c:95 #: src/gcal-application.c:93
msgid "Display version number" msgid "Display version number"
msgstr "Mostre il numar di version" msgstr "Mostre il numar di version"
#: src/gcal-application.c:100 #: src/gcal-application.c:98
msgid "Enable debug messages" msgid "Enable debug messages"
msgstr "Abilite messaçs di debug" msgstr "Abilite messaçs di debug"
#: src/gcal-application.c:105 #: src/gcal-application.c:103
msgid "Open calendar on the passed date" msgid "Open calendar on the passed date"
msgstr "Vierç il calendari te zornade dade" msgstr "Vierç il calendari te zornade dade"
#: src/gcal-application.c:110 #: src/gcal-application.c:108
msgid "Open calendar showing the passed event" msgid "Open calendar showing the passed event"
msgstr "Vierç il calendari mostrant l'event dât" msgstr "Vierç il calendari mostrant l'event dât"
#: src/gcal-application.c:497 #: src/gcal-application.c:595
#, c-format #, c-format
msgid "Copyright © 2012–%d The Calendar authors" msgid "Copyright © 2012–%d The Calendar authors"
msgstr "Copyright © 2012–%d i autôrs di Calendari" msgstr "Copyright © 2012–%d i autôrs di Calendari"
#: src/gcal-application.c:546 #: src/gcal-application.c:646
msgid "translator-credits" msgid "translator-credits"
msgstr "Fabio Tomat <f.t.public@gmail.com>" msgstr "Fabio Tomat <f.t.public@gmail.com>"
#: src/gcal-edit-dialog.c:275 #: src/gcal-edit-dialog.c:277
msgid "Save" msgid "Save"
msgstr "Salve" msgstr "Salve"
#: src/gcal-edit-dialog.c:1019 #: src/gcal-edit-dialog.c:1037
#, c-format #, c-format
msgid "%d minute before" msgid "%d minute before"
msgid_plural "%d minutes before" msgid_plural "%d minutes before"
msgstr[0] "%d minût prime" msgstr[0] "%d minût prime"
msgstr[1] "%d minûts prime" msgstr[1] "%d minûts prime"
#: src/gcal-edit-dialog.c:1027 #: src/gcal-edit-dialog.c:1045
#, c-format #, c-format
msgid "%d hour before" msgid "%d hour before"
msgid_plural "%d hours before" msgid_plural "%d hours before"
msgstr[0] "%d ore prime" msgstr[0] "%d ore prime"
msgstr[1] "%d oris prime" msgstr[1] "%d oris prime"
#: src/gcal-edit-dialog.c:1035 #: src/gcal-edit-dialog.c:1053
#, c-format #, c-format
msgid "%d day before" msgid "%d day before"
msgid_plural "%d days before" msgid_plural "%d days before"
msgstr[0] "%d zornade prime" msgstr[0] "%d zornade prime"
msgstr[1] "%d dîs prime" msgstr[1] "%d dîs prime"
#: src/gcal-edit-dialog.c:1043 #: src/gcal-edit-dialog.c:1061
#, c-format #, c-format
msgid "%d week before" msgid "%d week before"
msgid_plural "%d weeks before" msgid_plural "%d weeks before"
msgstr[0] "%d setemane prime" msgstr[0] "%d setemane prime"
msgstr[1] "%d setemanis prime" msgstr[1] "%d setemanis prime"
#: src/gcal-edit-dialog.c:1347 src/gcal-quick-add-popover.c:680 #: src/gcal-edit-dialog.c:1367 src/gcal-quick-add-popover.c:682
msgid "Unnamed event" msgid "Unnamed event"
msgstr "Event cence non" msgstr "Event cence non"
#. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue") #. Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue")
#: src/gcal-event-widget.c:420 #: src/gcal-event-widget.c:422
#, c-format #, c-format
msgid "At %s" msgid "At %s"
msgstr "A %s" msgstr "A %s"
@@ -743,14 +744,17 @@ msgid "December"
msgstr "Dicembar" msgstr "Dicembar"
#: src/gcal-quick-add-popover.c:286 #: src/gcal-quick-add-popover.c:286
#, c-format
msgid "from Today" msgid "from Today"
msgstr "di vuê" msgstr "di vuê"
#: src/gcal-quick-add-popover.c:290 #: src/gcal-quick-add-popover.c:290
#, c-format
msgid "from Tomorrow" msgid "from Tomorrow"
msgstr "di doman" msgstr "di doman"
#: src/gcal-quick-add-popover.c:294 #: src/gcal-quick-add-popover.c:294
#, c-format
msgid "from Yesterday" msgid "from Yesterday"
msgstr "di îr" msgstr "di îr"
@@ -764,14 +768,17 @@ msgid "from %1$s %2$s"
msgstr "dal/dai %2$s di %1$s" msgstr "dal/dai %2$s di %1$s"
#: src/gcal-quick-add-popover.c:323 #: src/gcal-quick-add-popover.c:323
#, c-format
msgid "to Today" msgid "to Today"
msgstr "a doman" msgstr "a doman"
#: src/gcal-quick-add-popover.c:327 #: src/gcal-quick-add-popover.c:327
#, c-format
msgid "to Tomorrow" msgid "to Tomorrow"
msgstr "a doman" msgstr "a doman"
#: src/gcal-quick-add-popover.c:331 #: src/gcal-quick-add-popover.c:331
#, c-format
msgid "to Yesterday" msgid "to Yesterday"
msgstr "a îr" msgstr "a îr"
@@ -791,14 +798,17 @@ msgid "New Event %1$s %2$s"
msgstr "Gnûf event %1$s %2$s" msgstr "Gnûf event %1$s %2$s"
#: src/gcal-quick-add-popover.c:373 #: src/gcal-quick-add-popover.c:373
#, c-format
msgid "New Event Today" msgid "New Event Today"
msgstr "Gnûf event vuê" msgstr "Gnûf event vuê"
#: src/gcal-quick-add-popover.c:377 #: src/gcal-quick-add-popover.c:377
#, c-format
msgid "New Event Tomorrow" msgid "New Event Tomorrow"
msgstr "Gnûf event doman" msgstr "Gnûf event doman"
#: src/gcal-quick-add-popover.c:381 #: src/gcal-quick-add-popover.c:381
#, c-format
msgid "New Event Yesterday" msgid "New Event Yesterday"
msgstr "Gnûf event îr" msgstr "Gnûf event îr"
@@ -897,11 +907,11 @@ msgstr "Gnûf event al/ai %d di dicembar"
msgid "%1$s, %2$s – %3$s" msgid "%1$s, %2$s – %3$s"
msgstr "%1$s, %2$s – %3$s" msgstr "%1$s, %2$s – %3$s"
#: src/gcal-search-view.c:358 #: src/gcal-search-popover.c:303
msgid "All day" msgid "All day"
msgstr "Dut il dì" msgstr "Dut il dì"
#: src/gcal-search-view.c:563 #: src/gcal-search-popover.c:563
msgid "Use the entry above to search for events." msgid "Use the entry above to search for events."
msgstr "Dopre la casele di test parsore par cirî i events." msgstr "Dopre la casele di test parsore par cirî i events."
@@ -942,17 +952,17 @@ msgstr "On"
msgid "Expired" msgid "Expired"
msgstr "Scjadût" msgstr "Scjadût"
#: src/gcal-time-selector.c:84 #: src/gcal-time-selector.c:83
#, c-format #, c-format
msgid "%s AM" msgid "%s AM"
msgstr "%s AM" msgstr "%s AM"
#: src/gcal-time-selector.c:86 #: src/gcal-time-selector.c:85
#, c-format #, c-format
msgid "%s PM" msgid "%s PM"
msgstr "%s PM" msgstr "%s PM"
#: src/gcal-utils.c:1090 #: src/gcal-utils.c:1120
msgid "" msgid ""
"The event you are trying to modify is recurring. The changes you have " "The event you are trying to modify is recurring. The changes you have "
"selected should be applied to:" "selected should be applied to:"
@@ -960,42 +970,42 @@ msgstr ""
"L'event che si sta cirint di modificâ al è ciclic. Lis modifichis " "L'event che si sta cirint di modificâ al è ciclic. Lis modifichis "
"selezionadis e varessin di jessi aplicadis a:" "selezionadis e varessin di jessi aplicadis a:"
#: src/gcal-utils.c:1093 #: src/gcal-utils.c:1123
msgid "_Cancel" msgid "_Cancel"
msgstr "_Anule" msgstr "_Anule"
#: src/gcal-utils.c:1095 #: src/gcal-utils.c:1125
msgid "_Only This Event" msgid "_Only This Event"
msgstr "_Dome chest event" msgstr "_Dome chest event"
#: src/gcal-utils.c:1102 #: src/gcal-utils.c:1132
msgid "_Subsequent events" msgid "_Subsequent events"
msgstr "_Events seguitîfs" msgstr "_Events seguitîfs"
#: src/gcal-utils.c:1104 #: src/gcal-utils.c:1134
msgid "_All events" msgid "_All events"
msgstr "_Ducj i events" msgstr "_Ducj i events"
#: src/gcal-window.c:1272 #: src/gcal-window.c:1039
msgid "Another event deleted" msgid "Another event deleted"
msgstr "Un altri event eliminât" msgstr "Un altri event eliminât"
#: src/gcal-window.c:1276 #: src/gcal-window.c:1043
msgid "Event deleted" msgid "Event deleted"
msgstr "Event eliminât" msgstr "Event eliminât"
#: src/views/gcal-week-grid.c:755 src/views/gcal-week-view.c:284 #: src/views/gcal-week-grid.c:750 src/views/gcal-week-view.c:275
msgid "00 AM" msgid "00 AM"
msgstr "00 AM" msgstr "00 AM"
#: src/views/gcal-week-header.c:400 #: src/views/gcal-week-header.c:398
#, c-format #, c-format
msgid "Other event" msgid "Other event"
msgid_plural "Other %d events" msgid_plural "Other %d events"
msgstr[0] "Altri event" msgstr[0] "Altri event"
msgstr[1] "Altris %d events" msgstr[1] "Altris %d events"
#: src/views/gcal-week-header.c:933 #: src/views/gcal-week-header.c:934
#, c-format #, c-format
msgid "week %d" msgid "week %d"
msgstr "setemane %d" msgstr "setemane %d"
@@ -1003,14 +1013,14 @@ msgstr "setemane %d"
#. Translators: This is a date format in the sidebar of the year #. Translators: This is a date format in the sidebar of the year
#. * view when the selection starts at the specified day and the #. * view when the selection starts at the specified day and the
#. * end is unspecified. #. * end is unspecified.
#: src/views/gcal-year-view.c:294 #: src/views/gcal-year-view.c:288
msgid "%B %d…" msgid "%B %d…"
msgstr "%d di %B…" msgstr "%d di %B…"
#. Translators: This is a date format in the sidebar of the year #. Translators: This is a date format in the sidebar of the year
#. * view when there is only one specified day selected. #. * view when there is only one specified day selected.
#. Translators: This is a date format in the sidebar of the year view. #. Translators: This is a date format in the sidebar of the year view.
#: src/views/gcal-year-view.c:300 src/views/gcal-year-view.c:523 #: src/views/gcal-year-view.c:294 src/views/gcal-year-view.c:517
msgid "%B %d" msgid "%B %d"
msgstr "%d di %B" msgstr "%d di %B"
+905 -434
View File
File diff suppressed because it is too large Load Diff
+23
View File
@@ -55,6 +55,8 @@ struct _GcalApplication
GcalWeatherService *weather_service; GcalWeatherService *weather_service;
GcalShellSearchProvider *search_provider; GcalShellSearchProvider *search_provider;
GcalClock *clock;
}; };
static void gcal_application_create_new_event (GSimpleAction *new_event, static void gcal_application_create_new_event (GSimpleAction *new_event,
@@ -121,6 +123,7 @@ static const GActionEntry gcal_app_entries[] = {
enum enum
{ {
PROP_0, PROP_0,
PROP_CLOCK,
PROP_MANAGER, PROP_MANAGER,
PROP_TIME_FORMAT, PROP_TIME_FORMAT,
PROP_WEATHER_SERVICE, PROP_WEATHER_SERVICE,
@@ -229,6 +232,7 @@ gcal_application_finalize (GObject *object)
g_clear_pointer (&self->initial_date, g_free); g_clear_pointer (&self->initial_date, g_free);
g_clear_pointer (&self->uuid, g_free); g_clear_pointer (&self->uuid, g_free);
g_clear_object (&self->colors_provider); g_clear_object (&self->colors_provider);
g_clear_object (&self->clock);
g_clear_object (&self->desktop_settings); g_clear_object (&self->desktop_settings);
g_clear_object (&self->manager); g_clear_object (&self->manager);
g_clear_object (&self->provider); g_clear_object (&self->provider);
@@ -250,6 +254,10 @@ gcal_application_get_property (GObject *object,
switch (property_id) switch (property_id)
{ {
case PROP_CLOCK:
g_value_set_object (value, self->clock);
break;
case PROP_MANAGER: case PROP_MANAGER:
g_value_set_object (value, self->manager); g_value_set_object (value, self->manager);
break; break;
@@ -506,6 +514,12 @@ gcal_application_class_init (GcalApplicationClass *klass)
application_class->dbus_register = gcal_application_dbus_register; application_class->dbus_register = gcal_application_dbus_register;
application_class->dbus_unregister = gcal_application_dbus_unregister; application_class->dbus_unregister = gcal_application_dbus_unregister;
properties[PROP_CLOCK] = g_param_spec_object ("clock",
"Clock",
"The internal clock of Calendar",
GCAL_TYPE_CLOCK,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
properties[PROP_MANAGER] = g_param_spec_object ("manager", properties[PROP_MANAGER] = g_param_spec_object ("manager",
"The manager object", "The manager object",
"The manager object", "The manager object",
@@ -533,6 +547,7 @@ gcal_application_init (GcalApplication *self)
{ {
g_application_add_main_option_entries (G_APPLICATION (self), gcal_application_goptions); g_application_add_main_option_entries (G_APPLICATION (self), gcal_application_goptions);
self->clock = gcal_clock_new ();
self->manager = gcal_manager_new (); self->manager = gcal_manager_new ();
g_signal_connect_swapped (self->manager, "source-added", G_CALLBACK (process_sources), self); g_signal_connect_swapped (self->manager, "source-added", G_CALLBACK (process_sources), self);
g_signal_connect_swapped (self->manager, "source-changed", G_CALLBACK (process_sources), self); g_signal_connect_swapped (self->manager, "source-changed", G_CALLBACK (process_sources), self);
@@ -729,3 +744,11 @@ gcal_application_set_initial_date (GcalApplication *self,
g_clear_pointer (&self->initial_date, g_date_time_unref); g_clear_pointer (&self->initial_date, g_date_time_unref);
self->initial_date = datetime_to_icaltime (initial_date); self->initial_date = datetime_to_icaltime (initial_date);
} }
GcalClock*
gcal_application_get_clock (GcalApplication *self)
{
g_return_val_if_fail (GCAL_IS_APPLICATION (self), NULL);
return self->clock;
}
+3
View File
@@ -20,6 +20,7 @@
#ifndef _GCAL_APPLICATION_H_ #ifndef _GCAL_APPLICATION_H_
#define _GCAL_APPLICATION_H_ #define _GCAL_APPLICATION_H_
#include "gcal-clock.h"
#include "gcal-weather-service.h" #include "gcal-weather-service.h"
#include "gcal-manager.h" #include "gcal-manager.h"
@@ -43,6 +44,8 @@ void gcal_application_set_uuid (GcalApplicatio
void gcal_application_set_initial_date (GcalApplication *self, void gcal_application_set_initial_date (GcalApplication *self,
GDateTime *initial_date); GDateTime *initial_date);
GcalClock* gcal_application_get_clock (GcalApplication *self);
G_END_DECLS G_END_DECLS
#endif /* _GCAL_APPLICATION_H_ */ #endif /* _GCAL_APPLICATION_H_ */
+22 -6
View File
@@ -22,6 +22,8 @@
#include <glib/gi18n.h> #include <glib/gi18n.h>
#include <string.h> #include <string.h>
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-event-widget.h" #include "gcal-event-widget.h"
#include "gcal-utils.h" #include "gcal-utils.h"
@@ -310,9 +312,6 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
escaped_summary = g_markup_escape_text (gcal_event_get_summary (event), -1); escaped_summary = g_markup_escape_text (gcal_event_get_summary (event), -1);
g_string_append_printf (tooltip_mesg, "<b>%s</b>", escaped_summary); g_string_append_printf (tooltip_mesg, "<b>%s</b>", escaped_summary);
tooltip_start = g_date_time_to_local (gcal_event_get_date_start (event));
tooltip_end = g_date_time_to_local (gcal_event_get_date_end (event));
allday = gcal_event_get_all_day (event); allday = gcal_event_get_all_day (event);
multiday = gcal_event_is_multiday (event); multiday = gcal_event_is_multiday (event);
@@ -320,6 +319,10 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
if (allday) if (allday)
{ {
/* All day events span from [ start, end - 1 day ] */
tooltip_start = g_date_time_ref (gcal_event_get_date_start (event));
tooltip_end = g_date_time_add_days (gcal_event_get_date_end (event), -1);
if (multiday) if (multiday)
{ {
start = g_date_time_format (tooltip_start, "%x"); start = g_date_time_format (tooltip_start, "%x");
@@ -333,6 +336,9 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
} }
else else
{ {
tooltip_start = g_date_time_to_local (gcal_event_get_date_start (event));
tooltip_end = g_date_time_to_local (gcal_event_get_date_end (event));
if (multiday) if (multiday)
{ {
if (self->clock_format_24h) if (self->clock_format_24h)
@@ -395,9 +401,7 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
if (allday && !multiday) if (allday && !multiday)
{ {
g_string_append_printf (tooltip_mesg, g_string_append_printf (tooltip_mesg, "\n%s", start);
"\n%s",
start);
} }
else else
{ {
@@ -948,6 +952,7 @@ gcal_event_widget_class_init (GcalEventWidgetClass *klass)
static void static void
gcal_event_widget_init (GcalEventWidget *self) gcal_event_widget_init (GcalEventWidget *self)
{ {
GcalApplication *application;
GtkWidget *widget; GtkWidget *widget;
widget = GTK_WIDGET (self); widget = GTK_WIDGET (self);
@@ -964,6 +969,17 @@ gcal_event_widget_init (GcalEventWidget *self)
/* Starts with horizontal */ /* Starts with horizontal */
self->orientation = GTK_ORIENTATION_HORIZONTAL; self->orientation = GTK_ORIENTATION_HORIZONTAL;
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "horizontal"); gtk_style_context_add_class (gtk_widget_get_style_context (widget), "horizontal");
/* Connect to the wall clock */
application = GCAL_APPLICATION (g_application_get_default ());
g_assert (application != NULL);
g_signal_connect_object (gcal_application_get_clock (application),
"minute-changed",
G_CALLBACK (update_color),
self,
G_CONNECT_SWAPPED);
} }
GtkWidget* GtkWidget*
+32 -25
View File
@@ -1492,43 +1492,50 @@ gcal_event_get_uid (GcalEvent *self)
* gcal_event_is_multiday: * gcal_event_is_multiday:
* @self: a #GcalEvent * @self: a #GcalEvent
* *
* Whether the event spans more than 1 day. * Whether the event visibly spans more than one day in the
* calendar.
*
* This function can return different values for the same event
* depending on your timezone. For example, an event that spans
* [ 02:00, 22:00 ) +0000 would assume the following values:
*
* |[
* D-1 D D+1
* -0600 [ ---][------- ][ ] (multiday)
* +0000 [ ][ ---------- ][ ] (single day)
* +0800 [ ][ -------][--- ] (multiday)
* ]|
* *
* Returns: %TRUE if @self spans more than 1 day, %FALSE otherwise. * Returns: %TRUE if @self spans more than 1 day, %FALSE otherwise.
*/ */
gboolean gboolean
gcal_event_is_multiday (GcalEvent *self) gcal_event_is_multiday (GcalEvent *self)
{ {
g_autoptr (GDateTime) real_end_date = NULL; g_autoptr (GDateTime) inclusive_end_date = NULL;
gboolean is_multiday; g_autoptr (GDateTime) local_start_date = NULL;
gint n_days; g_autoptr (GDateTime) local_end_date = NULL;
GDate start_dt;
GDate end_dt;
g_return_val_if_fail (GCAL_IS_EVENT (self), FALSE); g_return_val_if_fail (GCAL_IS_EVENT (self), FALSE);
real_end_date = g_date_time_add_seconds (gcal_event_get_date_end (self), -1); inclusive_end_date = g_date_time_add_seconds (gcal_event_get_date_end (self), -1);
n_days = g_date_time_difference (real_end_date, self->dt_start) / G_TIME_SPAN_DAY; local_start_date = g_date_time_to_local (self->dt_start);
is_multiday = FALSE; local_end_date = g_date_time_to_local (inclusive_end_date);
/* g_date_clear (&start_dt, 1);
* An all-day event with only 1 day of time span is treated as a g_date_set_dmy (&start_dt,
* single-day event. g_date_time_get_day_of_month (local_start_date),
*/ g_date_time_get_month (local_start_date),
if (self->all_day && n_days == 1) g_date_time_get_year (local_start_date));
is_multiday = FALSE;
/* g_date_clear (&end_dt, 1);
* If any of the following fields are different, we're certain that g_date_set_dmy (&end_dt,
* it's a multiday event. Otherwise, we're certain it's NOT a multiday g_date_time_get_day_of_month (local_end_date),
* event. g_date_time_get_month (local_end_date),
*/ g_date_time_get_year (local_end_date));
if (g_date_time_get_year (self->dt_start) != g_date_time_get_year (real_end_date) ||
g_date_time_get_month (self->dt_start) != g_date_time_get_month (real_end_date) ||
g_date_time_get_day_of_month (self->dt_start) != g_date_time_get_day_of_month (real_end_date))
{
is_multiday = TRUE;
}
return is_multiday; return g_date_days_between (&start_dt, &end_dt) > 0;
} }
/** /**
+1 -33
View File
@@ -90,8 +90,6 @@ struct _GcalManager
GoaClient *goa_client; GoaClient *goa_client;
GcalClock *clock;
/* state flags */ /* state flags */
gboolean goa_client_ready; gboolean goa_client_ready;
gint sources_at_launch; gint sources_at_launch;
@@ -108,7 +106,6 @@ G_DEFINE_TYPE (GcalManager, gcal_manager, G_TYPE_OBJECT)
enum enum
{ {
PROP_0, PROP_0,
PROP_CLOCK,
PROP_DEFAULT_CALENDAR, PROP_DEFAULT_CALENDAR,
PROP_LOADING, PROP_LOADING,
PROP_SETTINGS, PROP_SETTINGS,
@@ -776,7 +773,6 @@ gcal_manager_finalize (GObject *object)
GCAL_ENTRY; GCAL_ENTRY;
g_clear_object (&self->clock);
g_clear_object (&self->settings); g_clear_object (&self->settings);
g_clear_object (&self->goa_client); g_clear_object (&self->goa_client);
g_clear_object (&self->e_data_model); g_clear_object (&self->e_data_model);
@@ -871,17 +867,6 @@ gcal_manager_class_init (GcalManagerClass *klass)
object_class->set_property = gcal_manager_set_property; object_class->set_property = gcal_manager_set_property;
object_class->get_property = gcal_manager_get_property; object_class->get_property = gcal_manager_get_property;
/**
* GcalManager:clock:
*
* The internal clock of Calendar.
*/
properties[PROP_CLOCK] = g_param_spec_object ("clock",
"Clock",
"The internal clock of Calendar",
GCAL_TYPE_CLOCK,
G_PARAM_READWRITE);
/** /**
* GcalManager:default-calendar: * GcalManager:default-calendar:
* *
@@ -964,7 +949,6 @@ gcal_manager_class_init (GcalManagerClass *klass)
static void static void
gcal_manager_init (GcalManager *self) gcal_manager_init (GcalManager *self)
{ {
self->clock = gcal_clock_new ();
self->settings = g_settings_new ("org.gnome.calendar"); self->settings = g_settings_new ("org.gnome.calendar");
self->system_timezone = e_cal_util_get_system_timezone (); self->system_timezone = e_cal_util_get_system_timezone ();
} }
@@ -1715,7 +1699,7 @@ gcal_manager_remove_event (GcalManager *self,
(ECalObjModType) mod, (ECalObjModType) mod,
self->async_ops, self->async_ops,
on_event_removed, on_event_removed,
event); g_object_ref (event));
g_free (rid); g_free (rid);
@@ -1856,22 +1840,6 @@ gcal_manager_get_loading (GcalManager *self)
return !self->goa_client_ready || self->sources_at_launch > 0; return !self->goa_client_ready || self->sources_at_launch > 0;
} }
/**
* gcal_manager_get_clock:
* @self: a #GcalManager
*
* Retrieves the internal #GcalClock of @self.
*
* Returns: (transfer none): a #GcalClock.
*/
GcalClock*
gcal_manager_get_clock (GcalManager *self)
{
g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
return self->clock;
}
/** /**
* gcal_manager_get_event_from_shell_search: * gcal_manager_get_event_from_shell_search:
* @self: a #GcalManager * @self: a #GcalManager
-4
View File
@@ -20,7 +20,6 @@
#define __GCAL_MANAGER_H__ #define __GCAL_MANAGER_H__
#include "e-cal-data-model.h" #include "e-cal-data-model.h"
#include "gcal-clock.h"
#include "gcal-event.h" #include "gcal-event.h"
#include <libical/icaltime.h> #include <libical/icaltime.h>
@@ -107,9 +106,6 @@ GList* gcal_manager_get_events (GcalManager
gboolean gcal_manager_get_loading (GcalManager *self); gboolean gcal_manager_get_loading (GcalManager *self);
/* Clock */
GcalClock* gcal_manager_get_clock (GcalManager *self);
/* Online Accounts */ /* Online Accounts */
GoaClient* gcal_manager_get_goa_client (GcalManager *self); GoaClient* gcal_manager_get_goa_client (GcalManager *self);
+17 -9
View File
@@ -20,6 +20,8 @@
#define G_LOG_DOMAIN "GcalMonthCell" #define G_LOG_DOMAIN "GcalMonthCell"
#include "config.h" #include "config.h"
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-event-widget.h" #include "gcal-event-widget.h"
#include "gcal-utils.h" #include "gcal-utils.h"
#include "gcal-month-cell.h" #include "gcal-month-cell.h"
@@ -445,8 +447,9 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass)
static void static void
gcal_month_cell_init (GcalMonthCell *self) gcal_month_cell_init (GcalMonthCell *self)
{ {
gtk_widget_init_template (GTK_WIDGET (self)); GcalApplication *application;
gtk_widget_init_template (GTK_WIDGET (self));
/* Setup the month cell as a drag n' drop destination */ /* Setup the month cell as a drag n' drop destination */
gtk_drag_dest_set (GTK_WIDGET (self), gtk_drag_dest_set (GTK_WIDGET (self),
@@ -454,6 +457,18 @@ gcal_month_cell_init (GcalMonthCell *self)
NULL, NULL,
0, 0,
GDK_ACTION_MOVE); GDK_ACTION_MOVE);
/* Connect to the wall clock */
application = GCAL_APPLICATION (g_application_get_default ());
g_assert (application != NULL);
g_signal_connect_object (gcal_application_get_clock (application),
"day-changed",
G_CALLBACK (day_changed_cb),
self,
0);
} }
GtkWidget* GtkWidget*
@@ -576,14 +591,7 @@ gcal_month_cell_set_manager (GcalMonthCell *self,
g_return_if_fail (GCAL_IS_MONTH_CELL (self)); g_return_if_fail (GCAL_IS_MONTH_CELL (self));
if (g_set_object (&self->manager, manager)) if (g_set_object (&self->manager, manager))
{ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MANAGER]);
g_signal_connect_swapped (gcal_manager_get_clock (manager),
"day-changed",
G_CALLBACK (day_changed_cb),
self);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MANAGER]);
}
} }
guint guint
+12
View File
@@ -18,6 +18,7 @@
#define G_LOG_DOMAIN "GcalMonthPopover" #define G_LOG_DOMAIN "GcalMonthPopover"
#include "gcal-debug.h"
#include "gcal-event-widget.h" #include "gcal-event-widget.h"
#include "gcal-month-popover.h" #include "gcal-month-popover.h"
#include "gcal-utils.h" #include "gcal-utils.h"
@@ -25,6 +26,7 @@
#include <dazzle.h> #include <dazzle.h>
#define RATIO_TO_RELATIVE 1.25 #define RATIO_TO_RELATIVE 1.25
#define MIN_WIDTH 250
struct _GcalMonthPopover struct _GcalMonthPopover
{ {
@@ -274,6 +276,8 @@ reposition_popover (GcalMonthPopover *self,
gtk_window_move (GTK_WINDOW (self), alloc.x - diff_w / 2, alloc.y - diff_h / 2); gtk_window_move (GTK_WINDOW (self), alloc.x - diff_w / 2, alloc.y - diff_h / 2);
alloc.width = MAX (MIN_WIDTH, alloc.width);
if (animate) if (animate)
{ {
gtk_widget_set_size_request (GTK_WIDGET (self), alloc.width, alloc.height); gtk_widget_set_size_request (GTK_WIDGET (self), alloc.width, alloc.height);
@@ -399,10 +403,16 @@ new_event_button_clicked_cb (GtkWidget *button,
GActionMap *map; GActionMap *map;
GAction *action; GAction *action;
GCAL_ENTRY;
map = G_ACTION_MAP (g_application_get_default ()); map = G_ACTION_MAP (g_application_get_default ());
action = g_action_map_lookup_action (map, "new"); action = g_action_map_lookup_action (map, "new");
gcal_month_popover_popdown (self);
g_action_activate (action, NULL); g_action_activate (action, NULL);
GCAL_EXIT;
} }
static void static void
@@ -846,6 +856,8 @@ gcal_month_popover_popdown (GcalMonthPopover *self)
gtk_widget_get_toplevel (self->relative_to), 0, 0, &alloc.x, &alloc.y); gtk_widget_get_toplevel (self->relative_to), 0, 0, &alloc.x, &alloc.y);
adjust_margin (self, &alloc); adjust_margin (self, &alloc);
alloc.width = MAX (MIN_WIDTH, alloc.width);
animate_opacity (self, 0.0); animate_opacity (self, 0.0);
animate_position (self, 0.0, 0.0); animate_position (self, 0.0, 0.0);
animate_size (self, alloc.width, alloc.height); animate_size (self, alloc.width, alloc.height);
+343 -303
View File
@@ -21,6 +21,8 @@
#include "config.h" #include "config.h"
#include "e-cal-data-model-subscriber.h" #include "e-cal-data-model-subscriber.h"
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-debug.h" #include "gcal-debug.h"
#include "gcal-month-cell.h" #include "gcal-month-cell.h"
#include "gcal-month-popover.h" #include "gcal-month-popover.h"
@@ -124,14 +126,24 @@ struct _GcalMonthView
gboolean pending_event_allocation; gboolean pending_event_allocation;
}; };
static void gcal_view_interface_init (GcalViewInterface *iface); static void gcal_view_interface_init (GcalViewInterface *iface);
static void gtk_buildable_interface_init (GtkBuildableIface *iface); static void gtk_buildable_interface_init (GtkBuildableIface *iface);
static void e_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface); static void e_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface);
static void update_weather (GcalMonthView *self, static void on_event_activated_cb (GcalEventWidget *widget,
gboolean clear_old); GcalMonthView *self);
static void on_event_widget_visibility_changed_cb (GtkWidget *event_widget,
GParamSpec *pspec,
GcalMonthView *self);
static void on_month_cell_show_overflow_popover_cb (GcalMonthCell *cell,
GtkWidget *button,
GcalMonthView *self);
G_DEFINE_TYPE_WITH_CODE (GcalMonthView, gcal_month_view, GTK_TYPE_CONTAINER, G_DEFINE_TYPE_WITH_CODE (GcalMonthView, gcal_month_view, GTK_TYPE_CONTAINER,
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init) G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init)
@@ -162,28 +174,13 @@ cancel_selection (GcalMonthView *self)
} }
static void static void
event_activated (GcalMonthView *self, activate_event (GcalMonthView *self,
GcalEventWidget *widget, GcalEventWidget *event_widget)
gpointer unused)
{ {
cancel_selection (self); cancel_selection (self);
gcal_month_popover_popdown (self->overflow_popover); gcal_month_popover_popdown (self->overflow_popover);
g_signal_emit_by_name (self, "event-activated", widget); g_signal_emit_by_name (self, "event-activated", event_widget);
}
static void
event_widget_visibility_changed_cb (GcalMonthView *self)
{
self->pending_event_allocation = TRUE;
gtk_widget_queue_resize (GTK_WIDGET (self));
}
static void
weather_changed_cb (GcalWeatherService *weather_service,
GcalMonthView *self)
{
update_weather (self, TRUE);
} }
static void static void
@@ -193,8 +190,8 @@ setup_child_widget (GcalMonthView *self,
if (!gtk_widget_get_parent (widget)) if (!gtk_widget_get_parent (widget))
gtk_widget_set_parent (widget, GTK_WIDGET (self)); gtk_widget_set_parent (widget, GTK_WIDGET (self));
g_signal_connect_swapped (widget, "activate", G_CALLBACK (event_activated), self); g_signal_connect (widget, "activate", G_CALLBACK (on_event_activated_cb), self);
g_signal_connect_swapped (widget, "notify::visible", G_CALLBACK (event_widget_visibility_changed_cb), self); g_signal_connect (widget, "notify::visible", G_CALLBACK (on_event_widget_visibility_changed_cb), self);
} }
static gboolean static gboolean
@@ -835,22 +832,6 @@ allocate_single_day_events (GcalMonthView *self,
} }
} }
static void
show_overflow_popover_cb (GcalMonthCell *cell,
GtkWidget *button,
GcalMonthView *self)
{
GcalMonthPopover *popover;
popover = GCAL_MONTH_POPOVER (self->overflow_popover);
cancel_selection (self);
gcal_month_popover_set_relative_to (popover, GTK_WIDGET (cell));
gcal_month_popover_set_date (popover, gcal_month_cell_get_date (cell));
gcal_month_popover_popup (popover);
}
static void static void
setup_header_widget (GcalMonthView *self, setup_header_widget (GcalMonthView *self,
GtkWidget *widget) GtkWidget *widget)
@@ -876,10 +857,7 @@ setup_month_grid (GcalMonthView *self,
cell = gcal_month_cell_new (); cell = gcal_month_cell_new ();
g_signal_connect (cell, g_signal_connect (cell, "show-overflow", G_CALLBACK (on_month_cell_show_overflow_popover_cb), self);
"show-overflow",
G_CALLBACK (show_overflow_popover_cb),
self);
self->month_cell[row][col] = cell; self->month_cell[row][col] = cell;
@@ -1040,7 +1018,7 @@ static void
queue_update_month_cells (GcalMonthView *self) queue_update_month_cells (GcalMonthView *self)
{ {
if (self->update_grid_id > 0) if (self->update_grid_id > 0)
g_source_remove (self->update_grid_id); return;
self->update_grid_id = g_idle_add ((GSourceFunc) update_month_cells, self); self->update_grid_id = g_idle_add ((GSourceFunc) update_month_cells, self);
} }
@@ -1071,164 +1049,11 @@ update_weekday_labels (GcalMonthView *self)
} }
} }
/* /*
* GtkWidget overrides * Callbacks
*/ */
static gboolean
gcal_month_view_key_press (GtkWidget *widget,
GdkEventKey *event)
{
GcalMonthView *self;
gboolean create_event;
gboolean selection;
gboolean valid_key;
gboolean is_ltr;
gint min, max, diff, month_change, current_day;
gint row, col;
g_return_val_if_fail (GCAL_IS_MONTH_VIEW (widget), FALSE);
self = GCAL_MONTH_VIEW (widget);
selection = event->state & GDK_SHIFT_MASK;
create_event = FALSE;
valid_key = FALSE;
diff = 0;
month_change = 0;
current_day = self->keyboard_cell - self->days_delay + 1;
min = self->days_delay;
max = self->days_delay + icaltime_days_in_month (self->date->month, self->date->year) - 1;
is_ltr = gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL;
/*
* If it's starting the selection right now, it should mark the current keyboard
* focused cell as the start, and then update the end mark after updating the
* focused cell.
*/
if (selection && self->start_mark_cell == NULL)
self->start_mark_cell = g_date_time_new_local (self->date->year, self->date->month, current_day, 0, 0, 0);
switch (event->keyval)
{
case GDK_KEY_Up:
valid_key = TRUE;
diff = -7;
break;
case GDK_KEY_Down:
valid_key = TRUE;
diff = 7;
break;
case GDK_KEY_Left:
valid_key = TRUE;
diff = is_ltr ? -1 : 1;
break;
case GDK_KEY_Right:
valid_key = TRUE;
diff = is_ltr ? 1 : -1;
break;
case GDK_KEY_Return:
/*
* If it's not on the selection mode (i.e. shift is not pressed), we should
* simulate it by changing the start & end selected cells = keyboard cell.
*/
if (!selection && !self->start_mark_cell && !self->end_mark_cell)
self->start_mark_cell = self->end_mark_cell = g_date_time_new_local (self->date->year, self->date->month, current_day, 0, 0, 0);
create_event = TRUE;
break;
case GDK_KEY_Escape:
cancel_selection (GCAL_MONTH_VIEW (widget));
break;
default:
return GDK_EVENT_PROPAGATE;
}
if (self->keyboard_cell + diff <= max && self->keyboard_cell + diff >= min)
{
self->keyboard_cell += diff;
}
else
{
month_change = self->keyboard_cell + diff > max ? 1 : -1;
self->date->month += month_change;
*self->date = icaltime_normalize (*self->date);
self->days_delay = (time_day_of_week (1, self->date->month - 1, self->date->year) - self->first_weekday + 7) % 7;
/*
* Set keyboard cell value to the sum or difference of days delay of successive
* month or last day of preceeding month and overload value depending on
* month_change. Overload value is the equal to the deviation of the value
* of keboard_cell from the min or max value of the current month depending
* on the overload point.
*/
if (month_change == 1)
self->keyboard_cell = self->days_delay + self->keyboard_cell + diff - max - 1;
else
self->keyboard_cell = self->days_delay + icaltime_days_in_month (self->date->month, self->date->year) - min + self->keyboard_cell + diff;
}
/* Focus the selected month cell */
row = self->keyboard_cell / 7;
col = self->keyboard_cell % 7;
gtk_widget_grab_focus (self->month_cell[row][col]);
current_day = self->keyboard_cell - self->days_delay + 1;
self->date->day = current_day;
/*
* We can only emit the :create-event signal ~after~ grabbing the focus, otherwise
* the popover is instantly hidden.
*/
if (create_event)
emit_create_event (self);
g_object_notify (G_OBJECT (widget), "active-date");
if (selection)
{
self->end_mark_cell = g_date_time_new_local (self->date->year, self->date->month, current_day, 0, 0, 0);
}
else if (!selection && valid_key)
{
/* Cancel selection if SHIFT is not pressed */
cancel_selection (GCAL_MONTH_VIEW (widget));
}
return GDK_EVENT_STOP;
}
static gboolean
gcal_month_view_scroll_event (GtkWidget *widget,
GdkEventScroll *scroll_event)
{
GcalMonthView *self = GCAL_MONTH_VIEW (widget);
/*
* If we accumulated enough scrolling, change the month. Otherwise, we'd scroll
* waaay too fast.
*/
if (should_change_date_for_scroll (&self->scroll_value, scroll_event))
{
self->date->month += self->scroll_value > 0 ? 1 : -1;
*self->date = icaltime_normalize (*self->date);
self->scroll_value = 0;
gtk_widget_queue_draw (widget);
g_object_notify (G_OBJECT (widget), "active-date");
}
return GDK_EVENT_STOP;
}
static void static void
add_new_event_button_cb (GtkWidget *button, add_new_event_button_cb (GtkWidget *button,
gpointer user_data) gpointer user_data)
@@ -1249,7 +1074,58 @@ add_new_event_button_cb (GtkWidget *button,
g_date_time_unref (start_date); g_date_time_unref (start_date);
} }
/* GcalView Interface API */ static void
on_event_activated_cb (GcalEventWidget *widget,
GcalMonthView *self)
{
activate_event (self, widget);
}
static void
on_event_widget_visibility_changed_cb (GtkWidget *event_widget,
GParamSpec *pspec,
GcalMonthView *self)
{
self->pending_event_allocation = TRUE;
gtk_widget_queue_resize (GTK_WIDGET (self));
}
static void
on_month_cell_show_overflow_popover_cb (GcalMonthCell *cell,
GtkWidget *button,
GcalMonthView *self)
{
GcalMonthPopover *popover;
popover = GCAL_MONTH_POPOVER (self->overflow_popover);
cancel_selection (self);
gcal_month_popover_set_relative_to (popover, GTK_WIDGET (cell));
gcal_month_popover_set_date (popover, gcal_month_cell_get_date (cell));
gcal_month_popover_popup (popover);
}
static void
on_month_popover_event_activated_cb (GcalMonthPopover *month_popover,
GcalEventWidget *event_widget,
GcalMonthView *self)
{
activate_event (self, event_widget);
}
static void
on_weather_service_weather_changed_cb (GcalWeatherService *weather_service,
GcalMonthView *self)
{
update_weather (self, TRUE);
}
/*
* GcalView interface
*/
static icaltimetype* static icaltimetype*
gcal_month_view_get_date (GcalView *view) gcal_month_view_get_date (GcalView *view)
{ {
@@ -1348,6 +1224,7 @@ gtk_buildable_interface_init (GtkBuildableIface *iface)
iface->add_child = gcal_month_view_add_child; iface->add_child = gcal_month_view_add_child;
} }
/* /*
* ECalDataModelSubscriber interface * ECalDataModelSubscriber interface
*/ */
@@ -1494,6 +1371,7 @@ e_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface)
iface->thaw = gcal_month_view_thaw; iface->thaw = gcal_month_view_thaw;
} }
/* /*
* GtkContainer overrides * GtkContainer overrides
*/ */
@@ -1690,7 +1568,7 @@ gcal_month_view_forall (GtkContainer *container,
if (self->header) if (self->header)
(*callback) (self->header, callback_data); (*callback) (self->header, callback_data);
/* Header */ /* Grid */
if (self->grid) if (self->grid)
(*callback) (self->grid, callback_data); (*callback) (self->grid, callback_data);
@@ -1716,107 +1594,9 @@ gcal_month_view_forall (GtkContainer *container,
/* /*
* GObject overrides * GtkWidget overrides
*/ */
static void
gcal_month_view_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
GcalMonthView *self = (GcalMonthView *) object;
gint i;
switch (property_id)
{
case PROP_DATE:
gcal_view_set_date (GCAL_VIEW (object), g_value_get_boxed (value));
break;
case PROP_MANAGER:
self->manager = g_value_dup_object (value);
g_signal_connect_swapped (gcal_manager_get_clock (self->manager),
"day-changed",
G_CALLBACK (update_month_cells),
self);
for (i = 0; i < 42; i++)
gcal_month_cell_set_manager (GCAL_MONTH_CELL (self->month_cell[i / 7][i % 7]), self->manager);
g_object_notify (object, "manager");
break;
case PROP_WEATHER_SERVICE:
gcal_view_set_weather_service_impl_helper (&self->weather_service,
g_value_get_object (value),
(GcalWeatherUpdateFunc) update_weather,
(GCallback) weather_changed_cb,
GTK_WIDGET (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
gcal_month_view_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
{
GcalMonthView *self = GCAL_MONTH_VIEW (object);
switch (property_id)
{
case PROP_DATE:
g_value_set_boxed (value, self->date);
break;
case PROP_MANAGER:
g_value_set_object (value, self->manager);
break;
case PROP_WEATHER_SERVICE:
g_value_set_boxed (value, self->weather_service);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
gcal_month_view_finalize (GObject *object)
{
GcalMonthView *self = GCAL_MONTH_VIEW (object);
if (self->weather_service)
g_signal_handlers_disconnect_by_func (self->weather_service, weather_changed_cb, self);
g_clear_pointer (&self->date, g_free);
g_clear_pointer (&self->children, g_hash_table_destroy);
g_clear_pointer (&self->single_cell_children, g_hash_table_destroy);
g_clear_pointer (&self->overflow_cells, g_hash_table_destroy);
g_clear_pointer (&self->multi_cell_children, g_list_free);
g_clear_object (&self->manager);
g_clear_object (&self->weather_service);
if (self->update_grid_id > 0)
{
g_source_remove (self->update_grid_id);
self->update_grid_id = 0;
}
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (gcal_month_view_parent_class)->finalize (object);
}
static void static void
gcal_month_view_realize (GtkWidget *widget) gcal_month_view_realize (GtkWidget *widget)
{ {
@@ -2132,6 +1912,255 @@ gcal_month_view_direction_changed (GtkWidget *widget,
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
} }
static gboolean
gcal_month_view_key_press (GtkWidget *widget,
GdkEventKey *event)
{
GcalMonthView *self;
gboolean create_event;
gboolean selection;
gboolean valid_key;
gboolean is_ltr;
gint min, max, diff, month_change, current_day;
gint row, col;
g_return_val_if_fail (GCAL_IS_MONTH_VIEW (widget), FALSE);
self = GCAL_MONTH_VIEW (widget);
selection = event->state & GDK_SHIFT_MASK;
create_event = FALSE;
valid_key = FALSE;
diff = 0;
month_change = 0;
current_day = self->keyboard_cell - self->days_delay + 1;
min = self->days_delay;
max = self->days_delay + icaltime_days_in_month (self->date->month, self->date->year) - 1;
is_ltr = gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL;
/*
* If it's starting the selection right now, it should mark the current keyboard
* focused cell as the start, and then update the end mark after updating the
* focused cell.
*/
if (selection && self->start_mark_cell == NULL)
self->start_mark_cell = g_date_time_new_local (self->date->year, self->date->month, current_day, 0, 0, 0);
switch (event->keyval)
{
case GDK_KEY_Up:
valid_key = TRUE;
diff = -7;
break;
case GDK_KEY_Down:
valid_key = TRUE;
diff = 7;
break;
case GDK_KEY_Left:
valid_key = TRUE;
diff = is_ltr ? -1 : 1;
break;
case GDK_KEY_Right:
valid_key = TRUE;
diff = is_ltr ? 1 : -1;
break;
case GDK_KEY_Return:
/*
* If it's not on the selection mode (i.e. shift is not pressed), we should
* simulate it by changing the start & end selected cells = keyboard cell.
*/
if (!selection && !self->start_mark_cell && !self->end_mark_cell)
self->start_mark_cell = self->end_mark_cell = g_date_time_new_local (self->date->year, self->date->month, current_day, 0, 0, 0);
create_event = TRUE;
break;
case GDK_KEY_Escape:
cancel_selection (GCAL_MONTH_VIEW (widget));
break;
default:
return GDK_EVENT_PROPAGATE;
}
if (self->keyboard_cell + diff <= max && self->keyboard_cell + diff >= min)
{
self->keyboard_cell += diff;
}
else
{
month_change = self->keyboard_cell + diff > max ? 1 : -1;
self->date->month += month_change;
*self->date = icaltime_normalize (*self->date);
self->days_delay = (time_day_of_week (1, self->date->month - 1, self->date->year) - self->first_weekday + 7) % 7;
/*
* Set keyboard cell value to the sum or difference of days delay of successive
* month or last day of preceeding month and overload value depending on
* month_change. Overload value is the equal to the deviation of the value
* of keboard_cell from the min or max value of the current month depending
* on the overload point.
*/
if (month_change == 1)
self->keyboard_cell = self->days_delay + self->keyboard_cell + diff - max - 1;
else
self->keyboard_cell = self->days_delay + icaltime_days_in_month (self->date->month, self->date->year) - min + self->keyboard_cell + diff;
}
/* Focus the selected month cell */
row = self->keyboard_cell / 7;
col = self->keyboard_cell % 7;
gtk_widget_grab_focus (self->month_cell[row][col]);
current_day = self->keyboard_cell - self->days_delay + 1;
self->date->day = current_day;
/*
* We can only emit the :create-event signal ~after~ grabbing the focus, otherwise
* the popover is instantly hidden.
*/
if (create_event)
emit_create_event (self);
g_object_notify (G_OBJECT (widget), "active-date");
if (selection)
{
self->end_mark_cell = g_date_time_new_local (self->date->year, self->date->month, current_day, 0, 0, 0);
}
else if (!selection && valid_key)
{
/* Cancel selection if SHIFT is not pressed */
cancel_selection (GCAL_MONTH_VIEW (widget));
}
return GDK_EVENT_STOP;
}
static gboolean
gcal_month_view_scroll_event (GtkWidget *widget,
GdkEventScroll *scroll_event)
{
GcalMonthView *self = GCAL_MONTH_VIEW (widget);
/*
* If we accumulated enough scrolling, change the month. Otherwise, we'd scroll
* waaay too fast.
*/
if (should_change_date_for_scroll (&self->scroll_value, scroll_event))
{
self->date->month += self->scroll_value > 0 ? 1 : -1;
*self->date = icaltime_normalize (*self->date);
self->scroll_value = 0;
gtk_widget_queue_draw (widget);
g_object_notify (G_OBJECT (widget), "active-date");
}
return GDK_EVENT_STOP;
}
/*
* GObject overrides
*/
static void
gcal_month_view_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
GcalMonthView *self = (GcalMonthView *) object;
gint i;
switch (property_id)
{
case PROP_DATE:
gcal_view_set_date (GCAL_VIEW (object), g_value_get_boxed (value));
break;
case PROP_MANAGER:
self->manager = g_value_dup_object (value);
for (i = 0; i < 42; i++)
gcal_month_cell_set_manager (GCAL_MONTH_CELL (self->month_cell[i / 7][i % 7]), self->manager);
g_object_notify (object, "manager");
break;
case PROP_WEATHER_SERVICE:
gcal_view_set_weather_service_impl_helper (&self->weather_service,
g_value_get_object (value),
(GcalWeatherUpdateFunc) update_weather,
G_CALLBACK (on_weather_service_weather_changed_cb),
GTK_WIDGET (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
gcal_month_view_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
{
GcalMonthView *self = GCAL_MONTH_VIEW (object);
switch (property_id)
{
case PROP_DATE:
g_value_set_boxed (value, self->date);
break;
case PROP_MANAGER:
g_value_set_object (value, self->manager);
break;
case PROP_WEATHER_SERVICE:
g_value_set_boxed (value, self->weather_service);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
gcal_month_view_finalize (GObject *object)
{
GcalMonthView *self = GCAL_MONTH_VIEW (object);
g_clear_pointer (&self->date, g_free);
g_clear_pointer (&self->children, g_hash_table_destroy);
g_clear_pointer (&self->single_cell_children, g_hash_table_destroy);
g_clear_pointer (&self->overflow_cells, g_hash_table_destroy);
g_clear_pointer (&self->multi_cell_children, g_list_free);
g_clear_object (&self->manager);
g_clear_object (&self->weather_service);
if (self->update_grid_id > 0)
{
g_source_remove (self->update_grid_id);
self->update_grid_id = 0;
}
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (gcal_month_view_parent_class)->finalize (object);
}
static void static void
gcal_month_view_class_init (GcalMonthViewClass *klass) gcal_month_view_class_init (GcalMonthViewClass *klass)
{ {
@@ -2188,6 +2217,8 @@ gcal_month_view_class_init (GcalMonthViewClass *klass)
static void static void
gcal_month_view_init (GcalMonthView *self) gcal_month_view_init (GcalMonthView *self)
{ {
GcalApplication *application;
gtk_widget_init_template (GTK_WIDGET (self)); gtk_widget_init_template (GTK_WIDGET (self));
gtk_widget_set_has_window (GTK_WIDGET (self), FALSE); gtk_widget_set_has_window (GTK_WIDGET (self), FALSE);
@@ -2221,9 +2252,18 @@ gcal_month_view_init (GcalMonthView *self)
"manager", "manager",
G_BINDING_DEFAULT); G_BINDING_DEFAULT);
g_signal_connect_swapped (self->overflow_popover, g_signal_connect (self->overflow_popover, "event-activated", G_CALLBACK (on_month_popover_event_activated_cb), self);
"event-activated",
G_CALLBACK (event_activated),
self); /* Connect to the wall clock */
application = GCAL_APPLICATION (g_application_get_default ());
g_assert (application != NULL);
g_signal_connect_object (gcal_application_get_clock (application),
"day-changed",
G_CALLBACK (update_month_cells),
self,
G_CONNECT_SWAPPED);
} }
+1 -1
View File
@@ -218,7 +218,7 @@ gcal_view_set_weather_service_impl_helper (GcalWeatherService **old_service,
g_set_object (old_service, new_service); g_set_object (old_service, new_service);
if (*old_service) if (*old_service)
g_signal_connect (*old_service, "weather-changed", weather_changed_cb, data); g_signal_connect_object (*old_service, "weather-changed", weather_changed_cb, data, 0);
update_func (data); update_func (data);
g_object_notify (G_OBJECT (data), "weather-service"); g_object_notify (G_OBJECT (data), "weather-service");
+19 -10
View File
@@ -19,6 +19,8 @@
#define G_LOG_DOMAIN "GcalWeekGrid" #define G_LOG_DOMAIN "GcalWeekGrid"
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-debug.h" #include "gcal-debug.h"
#include "gcal-week-grid.h" #include "gcal-week-grid.h"
#include "gcal-week-view.h" #include "gcal-week-view.h"
@@ -152,11 +154,12 @@ get_event_range (GcalWeekGrid *self,
if (end) if (end)
{ {
g_autoptr (GDateTime) inclusive_end_date = NULL;
GDateTime *event_end; g_autoptr (GDateTime) event_end = NULL;
gboolean event_end_dst; gboolean event_end_dst;
event_end = g_date_time_to_local (gcal_event_get_date_end (event)); inclusive_end_date = g_date_time_add_seconds (gcal_event_get_date_end (event), -1);
event_end = g_date_time_to_local (inclusive_end_date);
event_end_dst = g_date_time_is_daylight_savings (event_end); event_end_dst = g_date_time_is_daylight_savings (event_end);
diff = g_date_time_difference (event_end, week_start); diff = g_date_time_difference (event_end, week_start);
@@ -171,8 +174,6 @@ get_event_range (GcalWeekGrid *self,
*/ */
if (start && *start == *end) if (start && *start == *end)
*end = *end + 1; *end = *end + 1;
g_clear_pointer (&event_end, g_date_time_unref);
} }
g_clear_pointer (&week_start, g_date_time_unref); g_clear_pointer (&week_start, g_date_time_unref);
@@ -1110,6 +1111,8 @@ gcal_week_grid_class_init (GcalWeekGridClass *klass)
static void static void
gcal_week_grid_init (GcalWeekGrid *self) gcal_week_grid_init (GcalWeekGrid *self)
{ {
GcalApplication *application;
gtk_widget_set_has_window (GTK_WIDGET (self), FALSE); gtk_widget_set_has_window (GTK_WIDGET (self), FALSE);
self->selection_start = -1; self->selection_start = -1;
@@ -1124,6 +1127,17 @@ gcal_week_grid_init (GcalWeekGrid *self)
NULL, NULL,
0, 0,
GDK_ACTION_MOVE); GDK_ACTION_MOVE);
/* Connect to the wall clock */
application = GCAL_APPLICATION (g_application_get_default ());
g_assert (application != NULL);
g_signal_connect_object (gcal_application_get_clock (application),
"minute-changed",
G_CALLBACK (gtk_widget_queue_draw),
self,
G_CONNECT_SWAPPED);
} }
/* Public API */ /* Public API */
@@ -1134,11 +1148,6 @@ gcal_week_grid_set_manager (GcalWeekGrid *self,
g_return_if_fail (GCAL_IS_WEEK_GRID (self)); g_return_if_fail (GCAL_IS_WEEK_GRID (self));
self->manager = manager; self->manager = manager;
g_signal_connect_swapped (gcal_manager_get_clock (manager),
"minute-changed",
G_CALLBACK (gtk_widget_queue_draw),
self);
} }
void void
+16 -12
View File
@@ -21,6 +21,8 @@
#define G_LOG_DOMAIN "GcalWeekHeader" #define G_LOG_DOMAIN "GcalWeekHeader"
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-debug.h" #include "gcal-debug.h"
#include "gcal-event-widget.h" #include "gcal-event-widget.h"
#include "gcal-utils.h" #include "gcal-utils.h"
@@ -1095,13 +1097,7 @@ gcal_week_header_finalize (GObject *object)
for (i = 0; i < 7; i++) for (i = 0; i < 7; i++)
g_list_free (self->events[i]); g_list_free (self->events[i]);
if (self->weather_service != NULL) g_clear_object (&self->weather_service);
{
g_signal_handlers_disconnect_by_func (self->weather_service,
(GCallback) on_weather_update,
self);
g_clear_object (&self->weather_service);
}
for (i = 0; i < G_N_ELEMENTS (self->weather_infos); i++) for (i = 0; i < G_N_ELEMENTS (self->weather_infos); i++)
wid_clear (&self->weather_infos[i]); wid_clear (&self->weather_infos[i]);
@@ -1670,6 +1666,8 @@ gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
static void static void
gcal_week_header_init (GcalWeekHeader *self) gcal_week_header_init (GcalWeekHeader *self)
{ {
GcalApplication *application;
self->expanded = FALSE; self->expanded = FALSE;
self->selection_start = -1; self->selection_start = -1;
self->selection_end = -1; self->selection_end = -1;
@@ -1689,6 +1687,17 @@ G_GNUC_END_IGNORE_DEPRECATIONS
NULL, NULL,
0, 0,
GDK_ACTION_MOVE); GDK_ACTION_MOVE);
/* Connect to the wall clock */
application = GCAL_APPLICATION (g_application_get_default ());
g_assert (application != NULL);
g_signal_connect_object (gcal_application_get_clock (application),
"day-changed",
G_CALLBACK (gtk_widget_queue_draw),
self,
G_CONNECT_SWAPPED);
} }
/* Private API */ /* Private API */
@@ -1819,11 +1828,6 @@ gcal_week_header_set_manager (GcalWeekHeader *self,
g_return_if_fail (GCAL_IS_WEEK_HEADER (self)); g_return_if_fail (GCAL_IS_WEEK_HEADER (self));
self->manager = manager; self->manager = manager;
g_signal_connect_swapped (gcal_manager_get_clock (manager),
"day-changed",
G_CALLBACK (gtk_widget_queue_draw),
self);
} }
void void
+14 -6
View File
@@ -18,6 +18,8 @@
#define G_LOG_DOMAIN "GcalYearView" #define G_LOG_DOMAIN "GcalYearView"
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-debug.h" #include "gcal-debug.h"
#include "gcal-year-view.h" #include "gcal-year-view.h"
#include "gcal-view.h" #include "gcal-view.h"
@@ -1662,12 +1664,6 @@ gcal_year_view_set_property (GObject *object,
case PROP_MANAGER: case PROP_MANAGER:
self->manager = g_value_dup_object (value); self->manager = g_value_dup_object (value);
g_signal_connect_swapped (gcal_manager_get_clock (self->manager),
"day-changed",
G_CALLBACK (gtk_widget_queue_draw),
self->navigator);
g_object_notify (object, "manager"); g_object_notify (object, "manager");
break; break;
@@ -2011,6 +2007,7 @@ gcal_year_view_class_init (GcalYearViewClass *klass)
static void static void
gcal_year_view_init (GcalYearView *self) gcal_year_view_init (GcalYearView *self)
{ {
GcalApplication *application;
guint i; guint i;
self->weather_service = NULL; self->weather_service = NULL;
@@ -2053,6 +2050,17 @@ gcal_year_view_init (GcalYearView *self)
NULL, NULL,
0, 0,
GDK_ACTION_MOVE); GDK_ACTION_MOVE);
/* Connect to the wall clock */
application = GCAL_APPLICATION (g_application_get_default ());
g_assert (application != NULL);
g_signal_connect_object (gcal_application_get_clock (application),
"day-changed",
G_CALLBACK (gtk_widget_queue_draw),
self,
G_CONNECT_SWAPPED);
} }
static void static void
+1 -1
View File
@@ -197,7 +197,7 @@ static void
event_date_multiday (void) event_date_multiday (void)
{ {
const gchar * const events[] = { const gchar * const events[] = {
EVENT_STRING_FOR_DATE ("20160229T000000Z", "20160301T000001Z"), EVENT_STRING_FOR_DATE ("20160229T000000Z", "20160302T000001Z"),
EVENT_STRING_FOR_DATE ("20160229T020000Z", "20160310T004500Z"), EVENT_STRING_FOR_DATE ("20160229T020000Z", "20160310T004500Z"),
}; };