Merge branch 'master' of gitlab.gnome.org:GNOME/gnome-calendar
This commit is contained in:
@@ -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>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
@@ -424,7 +424,7 @@ monthcell {
|
||||
border: solid 1px alpha(@borders, 0.3);
|
||||
border-width: 1px 0 0 1px;
|
||||
background: transparent;
|
||||
padding: 1px 0 1px 0;
|
||||
padding: 1px 3px 0 3px;
|
||||
transition: background-color 200ms;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
<object class="GtkBox" id="color_box">
|
||||
<property name="visible">True</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>
|
||||
<class name="icon-box" />
|
||||
</style>
|
||||
@@ -48,6 +52,7 @@
|
||||
<object class="GtkLabel" id="hour_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="no-show-all">True</property>
|
||||
<style>
|
||||
<class name="dim-label" />
|
||||
</style>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<property name="visible">true</property>
|
||||
<property name="relief">none</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>
|
||||
</child>
|
||||
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ calendar_schemadir = join_paths(calendar_datadir, 'glib-2.0', 'schemas')
|
||||
calendar_buildtype = get_option('buildtype')
|
||||
calendar_debug = calendar_minor_version.is_odd() or buildtype.contains('debug')
|
||||
enable_tracing = get_option('tracing')
|
||||
enable_gtk_doc = get_option('gtk_doc')
|
||||
enable_gtk_doc = get_option('documentation')
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
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')
|
||||
|
||||
@@ -162,7 +162,8 @@
|
||||
}
|
||||
],
|
||||
"config-opts" : [
|
||||
"-Dtracing=true"
|
||||
"-Dtracing=true",
|
||||
"-Ddocumentation=true"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,10 +7,9 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-calendar gnome-3-24\n"
|
||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"calendar&keywords=I18N+L10N&component=General\n"
|
||||
"POT-Creation-Date: 2017-08-23 09:38+0000\n"
|
||||
"PO-Revision-Date: 2017-09-01 16:37+0300\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
|
||||
"POT-Creation-Date: 2018-03-20 20:44+0000\n"
|
||||
"PO-Revision-Date: 2018-04-05 15:39+0300\n"
|
||||
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
|
||||
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
||||
"Language: be\n"
|
||||
@@ -19,11 +18,11 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\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"
|
||||
"X-Generator: Poedit 1.8.11\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
|
||||
#: data/appdata/org.gnome.Calendar.appdata.xml.in:7
|
||||
#: 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"
|
||||
msgstr "Каляндар"
|
||||
|
||||
@@ -79,38 +78,50 @@ msgstr "org.gnome.Calendar"
|
||||
msgid "Calendar;Event;Reminder;"
|
||||
msgstr "Каляндар;Падзея;Напамін;"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:6
|
||||
#: data/org.gnome.calendar.gschema.xml.in:6
|
||||
msgid "Window maximized"
|
||||
msgstr "Акно разгорнута"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:7
|
||||
#: data/org.gnome.calendar.gschema.xml.in:7
|
||||
msgid "Window maximized state"
|
||||
msgstr "Стан разгорнутага вакна"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:11
|
||||
#: data/org.gnome.calendar.gschema.xml.in:11
|
||||
msgid "Window size"
|
||||
msgstr "Памер акна"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:12
|
||||
#: data/org.gnome.calendar.gschema.xml.in:12
|
||||
msgid "Window size (width and height)."
|
||||
msgstr "Памер акна (шырыня і вышыня)."
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:16
|
||||
#: data/org.gnome.calendar.gschema.xml.in:16
|
||||
msgid "Window position"
|
||||
msgstr "Знаходжанне вакна"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:17
|
||||
#: data/org.gnome.calendar.gschema.xml.in:17
|
||||
msgid "Window position (x and 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"
|
||||
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"
|
||||
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
|
||||
msgid "Toggles the sound of the alarm"
|
||||
msgstr "Уключае гук будзільніка"
|
||||
@@ -119,124 +130,124 @@ msgstr "Уключае гук будзільніка"
|
||||
msgid "Remove the alarm"
|
||||
msgstr "Выдаліць будзільнік"
|
||||
|
||||
#: data/ui/edit-dialog.ui:18 data/ui/source-dialog.ui:762
|
||||
#: data/ui/source-dialog.ui:869 src/gcal-source-dialog.c:1102
|
||||
#: data/ui/edit-dialog.ui:16 data/ui/source-dialog.ui:762
|
||||
#: data/ui/source-dialog.ui:869 src/gcal-source-dialog.c:1162
|
||||
msgid "Cancel"
|
||||
msgstr "Адмена"
|
||||
|
||||
#: data/ui/edit-dialog.ui:38
|
||||
#: data/ui/edit-dialog.ui:36
|
||||
msgid "Click to select the calendar"
|
||||
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"
|
||||
msgstr "Выканана"
|
||||
|
||||
#: data/ui/edit-dialog.ui:140
|
||||
#: data/ui/edit-dialog.ui:146
|
||||
msgid "Title"
|
||||
msgstr "Загаловак"
|
||||
|
||||
#: data/ui/edit-dialog.ui:158
|
||||
#: data/ui/edit-dialog.ui:164
|
||||
msgid "Date"
|
||||
msgstr "Дата"
|
||||
|
||||
#: data/ui/edit-dialog.ui:174
|
||||
#: data/ui/edit-dialog.ui:180
|
||||
msgid "Repeat"
|
||||
msgstr "Паўтараць"
|
||||
|
||||
#: data/ui/edit-dialog.ui:192
|
||||
#: data/ui/edit-dialog.ui:198
|
||||
msgid "Reminders"
|
||||
msgstr "Напаміны"
|
||||
|
||||
#: data/ui/edit-dialog.ui:210
|
||||
#: data/ui/edit-dialog.ui:216
|
||||
msgid "Notes"
|
||||
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"
|
||||
msgstr "Знаходжанне"
|
||||
|
||||
#: data/ui/edit-dialog.ui:293
|
||||
#: data/ui/edit-dialog.ui:301
|
||||
msgid "Time"
|
||||
msgstr "Час"
|
||||
|
||||
#: data/ui/edit-dialog.ui:348
|
||||
#: data/ui/edit-dialog.ui:354
|
||||
msgid "All Day"
|
||||
msgstr "Увесь дзень"
|
||||
|
||||
#: data/ui/edit-dialog.ui:393
|
||||
#: data/ui/edit-dialog.ui:399
|
||||
msgid "Add reminder…"
|
||||
msgstr "Дадаць напамін..."
|
||||
|
||||
#: data/ui/edit-dialog.ui:424
|
||||
#: data/ui/edit-dialog.ui:430
|
||||
msgid "No Repeat"
|
||||
msgstr "Не паўтараць"
|
||||
|
||||
#: data/ui/edit-dialog.ui:425
|
||||
#: data/ui/edit-dialog.ui:431
|
||||
msgid "Daily"
|
||||
msgstr "Штодзённа"
|
||||
|
||||
#: data/ui/edit-dialog.ui:426
|
||||
#: data/ui/edit-dialog.ui:432
|
||||
msgid "Monday – Friday"
|
||||
msgstr "Панядзелак - Пятніца"
|
||||
|
||||
#: data/ui/edit-dialog.ui:427
|
||||
#: data/ui/edit-dialog.ui:433
|
||||
msgid "Weekly"
|
||||
msgstr "Штотыдзень"
|
||||
|
||||
#: data/ui/edit-dialog.ui:428
|
||||
#: data/ui/edit-dialog.ui:434
|
||||
msgid "Monthly"
|
||||
msgstr "Штомесяц"
|
||||
|
||||
#: data/ui/edit-dialog.ui:429
|
||||
#: data/ui/edit-dialog.ui:435
|
||||
msgid "Yearly"
|
||||
msgstr "Штогод"
|
||||
|
||||
#: data/ui/edit-dialog.ui:457
|
||||
#: data/ui/edit-dialog.ui:463
|
||||
msgid "Forever"
|
||||
msgstr "Заўсёды"
|
||||
|
||||
#: data/ui/edit-dialog.ui:458
|
||||
#: data/ui/edit-dialog.ui:464
|
||||
msgid "No. of occurrences"
|
||||
msgstr "Колькасць уваходжанняў"
|
||||
|
||||
#: data/ui/edit-dialog.ui:459
|
||||
#: data/ui/edit-dialog.ui:465
|
||||
msgid "Until Date"
|
||||
msgstr "Да даты"
|
||||
|
||||
#: data/ui/edit-dialog.ui:553
|
||||
#: data/ui/edit-dialog.ui:560
|
||||
msgid "Delete Event"
|
||||
msgstr "Выдаліць Падзею"
|
||||
|
||||
#: data/ui/edit-dialog.ui:590
|
||||
#: data/ui/edit-dialog.ui:599
|
||||
msgid "5 minutes"
|
||||
msgstr "5 хвілінаў"
|
||||
|
||||
#: data/ui/edit-dialog.ui:599
|
||||
#: data/ui/edit-dialog.ui:608
|
||||
msgid "10 minutes"
|
||||
msgstr "10 хвілінаў"
|
||||
|
||||
#: data/ui/edit-dialog.ui:608
|
||||
#: data/ui/edit-dialog.ui:617
|
||||
msgid "30 minutes"
|
||||
msgstr "30 хвілінаў"
|
||||
|
||||
#: data/ui/edit-dialog.ui:617
|
||||
#: data/ui/edit-dialog.ui:626
|
||||
msgid "1 hour"
|
||||
msgstr "1 гадзіна"
|
||||
|
||||
#: data/ui/edit-dialog.ui:625
|
||||
#: data/ui/edit-dialog.ui:634
|
||||
msgid "1 day"
|
||||
msgstr "1 дзень"
|
||||
|
||||
#: data/ui/edit-dialog.ui:634
|
||||
#: data/ui/edit-dialog.ui:643
|
||||
msgid "2 days"
|
||||
msgstr "2 дні"
|
||||
|
||||
#: data/ui/edit-dialog.ui:643
|
||||
#: data/ui/edit-dialog.ui:652
|
||||
msgid "3 days"
|
||||
msgstr "3 дні"
|
||||
|
||||
#: data/ui/edit-dialog.ui:652
|
||||
#: data/ui/edit-dialog.ui:661
|
||||
msgid "1 week"
|
||||
msgstr "1 тыдзень"
|
||||
|
||||
@@ -320,7 +331,7 @@ msgctxt "shortcut window"
|
||||
msgid "Year view"
|
||||
msgstr "Гадавы выгляд"
|
||||
|
||||
#: data/ui/menus.ui:6 data/ui/menus.ui:36
|
||||
#: data/ui/menus.ui:6
|
||||
msgid "Add Eve_nt…"
|
||||
msgstr "Дадаць па_дзею…"
|
||||
|
||||
@@ -340,22 +351,22 @@ msgstr "_Пра дастасаванне"
|
||||
msgid "_Quit"
|
||||
msgstr "_Выхад"
|
||||
|
||||
#: data/ui/menus.ui:40
|
||||
msgid "_Synchronize"
|
||||
msgstr "_Сінхранізацыя"
|
||||
|
||||
#: data/ui/menus.ui:49
|
||||
#: data/ui/menus.ui:36
|
||||
msgid "From Web…"
|
||||
msgstr "З інтэрнэту…"
|
||||
|
||||
#: data/ui/menus.ui:53
|
||||
#: data/ui/menus.ui:40
|
||||
msgid "New Local Calendar…"
|
||||
msgstr "Новы лакальны каляндар…"
|
||||
|
||||
#: data/ui/menus.ui:57
|
||||
#: data/ui/menus.ui:44
|
||||
msgid "From File…"
|
||||
msgstr "З файла…"
|
||||
|
||||
#: data/ui/month-popover.ui:91
|
||||
msgid "New Event…"
|
||||
msgstr "Новая падзея…"
|
||||
|
||||
#: data/ui/quick-add-popover.ui:117
|
||||
msgid "Edit Details…"
|
||||
msgstr "Рэдагавваць падрабязнасці…"
|
||||
@@ -365,15 +376,15 @@ msgstr "Рэдагавваць падрабязнасці…"
|
||||
msgid "Add"
|
||||
msgstr "Дадаць"
|
||||
|
||||
#: data/ui/search-view.ui:76
|
||||
#: data/ui/search-popover.ui:76
|
||||
msgid "No results found"
|
||||
msgstr "Вынікаў не знойдзена"
|
||||
|
||||
#: data/ui/search-view.ui:92
|
||||
#: data/ui/search-popover.ui:92
|
||||
msgid "Try a different search"
|
||||
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"
|
||||
msgstr "Адмяніць апошняе дзеянне"
|
||||
|
||||
@@ -456,11 +467,16 @@ msgstr ""
|
||||
msgid "Calendar Address"
|
||||
msgstr "Адрас каляндара"
|
||||
|
||||
#: data/ui/source-dialog.ui:729 src/gcal-source-dialog.c:2193
|
||||
#: src/gcal-source-dialog.c:2199
|
||||
#: data/ui/source-dialog.ui:729 src/gcal-source-dialog.c:2285
|
||||
#: src/gcal-source-dialog.c:2291
|
||||
msgid "Add Calendar"
|
||||
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
|
||||
msgid "User"
|
||||
msgstr "Карыстальнік"
|
||||
@@ -469,12 +485,16 @@ msgstr "Карыстальнік"
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
#: data/ui/source-dialog.ui:866
|
||||
msgid "Enter your credentials"
|
||||
msgstr "Увядзіце мандаты"
|
||||
|
||||
#: data/ui/source-dialog.ui:878
|
||||
msgid "Connect"
|
||||
msgstr "Далучыцца"
|
||||
|
||||
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:763
|
||||
#: src/views/gcal-week-view.c:287
|
||||
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:754
|
||||
#: src/views/gcal-week-view.c:278
|
||||
msgid "00:00"
|
||||
msgstr "00:00"
|
||||
|
||||
@@ -482,94 +502,104 @@ msgstr "00:00"
|
||||
msgid ":"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Тыдзень"
|
||||
|
||||
#: data/ui/window.ui:79
|
||||
#: data/ui/window.ui:82
|
||||
msgid "Month"
|
||||
msgstr "Месяц"
|
||||
|
||||
#: data/ui/window.ui:93
|
||||
#: data/ui/window.ui:96
|
||||
msgid "Year"
|
||||
msgstr "Год"
|
||||
|
||||
#: data/ui/window.ui:187 data/ui/year-view.ui:84 src/views/gcal-year-view.c:275
|
||||
#: src/views/gcal-year-view.c:509
|
||||
#: data/ui/window.ui:190 data/ui/year-view.ui:88 src/views/gcal-year-view.c:279
|
||||
#: src/views/gcal-year-view.c:514
|
||||
msgid "Today"
|
||||
msgstr "Сёння"
|
||||
|
||||
#: data/ui/window.ui:261
|
||||
#: data/ui/window.ui:271
|
||||
msgid "Manage your calendars"
|
||||
msgstr "Кіраванне вашым каляндаром"
|
||||
|
||||
#: data/ui/window.ui:278
|
||||
#: data/ui/window.ui:288
|
||||
msgctxt "tooltip"
|
||||
msgid "Search for events"
|
||||
msgstr "Пошук падзей"
|
||||
|
||||
#: data/ui/window.ui:334 src/gcal-source-dialog.c:844
|
||||
#: src/gcal-source-dialog.c:2222
|
||||
msgid "Calendar Settings"
|
||||
msgstr "Налады каляндара"
|
||||
#: data/ui/window.ui:391
|
||||
msgid "Add Eve_nt"
|
||||
msgstr "Дадаць па_дзею"
|
||||
|
||||
#: data/ui/year-view.ui:95
|
||||
#: data/ui/window.ui:400
|
||||
msgid "_Synchronize"
|
||||
msgstr "_Сінхранізацыя"
|
||||
|
||||
#: data/ui/year-view.ui:133
|
||||
msgid "No events"
|
||||
msgstr "Няма падзеяў"
|
||||
|
||||
#: data/ui/year-view.ui:117 src/views/gcal-month-view.c:2322
|
||||
#: data/ui/year-view.ui:155
|
||||
msgid "Add Event…"
|
||||
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"
|
||||
msgstr "Паказаць нумар версіі"
|
||||
|
||||
#: src/gcal-application.c:94
|
||||
#: src/gcal-application.c:98
|
||||
msgid "Enable debug messages"
|
||||
msgstr "Уключыць адладачныя паведамленні"
|
||||
|
||||
#: src/gcal-application.c:99
|
||||
#: src/gcal-application.c:103
|
||||
msgid "Open calendar on the passed date"
|
||||
msgstr "Адкрыць паляндар на прайшоўшую дату"
|
||||
|
||||
#: src/gcal-application.c:104
|
||||
#: src/gcal-application.c:108
|
||||
msgid "Open calendar showing the passed event"
|
||||
msgstr "Адкрыць каляндар і паказаць прайшоўшыя падзеі"
|
||||
|
||||
#: src/gcal-application.c:285
|
||||
msgid "— Calendar management"
|
||||
msgstr "— Кіраванне каляндаром"
|
||||
|
||||
#: src/gcal-application.c:467
|
||||
#: src/gcal-application.c:595
|
||||
#, c-format
|
||||
msgid "Copyright © %d The Calendar authors"
|
||||
msgstr "Аўтарскія правы © %d аўтары Каляндара"
|
||||
msgid "Copyright © 2012–%d The Calendar authors"
|
||||
msgstr "Аўтаркія правы © 2012–%d аўтары Календара"
|
||||
|
||||
#: src/gcal-application.c:473
|
||||
#, c-format
|
||||
msgid "Copyright © %d–%d The Calendar authors"
|
||||
msgstr "Аўтаркія правы © %d–%d аўтары Каляндара"
|
||||
|
||||
#: src/gcal-application.c:486
|
||||
#: src/gcal-application.c:646
|
||||
msgid "translator-credits"
|
||||
msgstr ""
|
||||
"Uladzimir Manulenka <vlma@tut.by>\n"
|
||||
"Юрась Шумовіч <shumovichy@gmail.com>"
|
||||
|
||||
#: src/gcal-edit-dialog.c:688
|
||||
#: src/gcal-edit-dialog.c:277
|
||||
msgid "Save"
|
||||
msgstr "Захаваць"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1001
|
||||
#: src/gcal-edit-dialog.c:1037
|
||||
#, c-format
|
||||
msgid "%d minute before"
|
||||
msgid_plural "%d minutes before"
|
||||
@@ -577,7 +607,7 @@ msgstr[0] "%d хвіліна да"
|
||||
msgstr[1] "%d хвіліны да"
|
||||
msgstr[2] "%d хвілінаў да"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1009
|
||||
#: src/gcal-edit-dialog.c:1045
|
||||
#, c-format
|
||||
msgid "%d hour before"
|
||||
msgid_plural "%d hours before"
|
||||
@@ -585,7 +615,7 @@ msgstr[0] "%d гадзіна да"
|
||||
msgstr[1] "%d гадзіны да"
|
||||
msgstr[2] "%d гадзінаў да"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1017
|
||||
#: src/gcal-edit-dialog.c:1053
|
||||
#, c-format
|
||||
msgid "%d day before"
|
||||
msgid_plural "%d days before"
|
||||
@@ -593,7 +623,7 @@ msgstr[0] "%d дзень да"
|
||||
msgstr[1] "%d дні да"
|
||||
msgstr[2] "%d дзён да"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1025
|
||||
#: src/gcal-edit-dialog.c:1061
|
||||
#, c-format
|
||||
msgid "%d week before"
|
||||
msgid_plural "%d weeks before"
|
||||
@@ -601,12 +631,12 @@ msgstr[0] "%d тыдзень да"
|
||||
msgstr[1] "%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"
|
||||
msgstr "Падзея без назвы"
|
||||
|
||||
#. 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
|
||||
msgid "At %s"
|
||||
msgstr "У %s"
|
||||
@@ -721,14 +751,17 @@ msgid "December"
|
||||
msgstr "Снежань"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:286
|
||||
#, c-format
|
||||
msgid "from Today"
|
||||
msgstr "з сённяшняга дня"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:290
|
||||
#, c-format
|
||||
msgid "from Tomorrow"
|
||||
msgstr "з заўтрашняга дня"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:294
|
||||
#, c-format
|
||||
msgid "from Yesterday"
|
||||
msgstr "з учарашняга дня"
|
||||
|
||||
@@ -742,14 +775,17 @@ msgid "from %1$s %2$s"
|
||||
msgstr "з %1$s %2$s"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:323
|
||||
#, c-format
|
||||
msgid "to Today"
|
||||
msgstr "да сённяшняга дня"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:327
|
||||
#, c-format
|
||||
msgid "to Tomorrow"
|
||||
msgstr "да заўтрашняга дня"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:331
|
||||
#, c-format
|
||||
msgid "to Yesterday"
|
||||
msgstr "да учарашняга дня"
|
||||
|
||||
@@ -769,14 +805,17 @@ msgid "New Event %1$s %2$s"
|
||||
msgstr "Новая падзея %1$s %2$s"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:373
|
||||
#, c-format
|
||||
msgid "New Event Today"
|
||||
msgstr "Новая падзея сёння"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:377
|
||||
#, c-format
|
||||
msgid "New Event Tomorrow"
|
||||
msgstr "Новая падзея заўтра"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:381
|
||||
#, c-format
|
||||
msgid "New Event Yesterday"
|
||||
msgstr "Новая падзея ўчора"
|
||||
|
||||
@@ -875,61 +914,61 @@ msgstr "Новая падзея %d снежня"
|
||||
msgid "%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"
|
||||
msgstr "Увесь дзень"
|
||||
|
||||
#: src/gcal-search-view.c:563
|
||||
#: src/gcal-search-popover.c:563
|
||||
msgid "Use the entry above to search for events."
|
||||
msgstr "Карыстайцеся полем зверху для пошуку падзеяў."
|
||||
|
||||
#. Dialog
|
||||
#: src/gcal-source-dialog.c:1099
|
||||
#: src/gcal-source-dialog.c:1159
|
||||
msgid "Select a calendar file"
|
||||
msgstr "Выбраць файл каляндара"
|
||||
|
||||
#: src/gcal-source-dialog.c:1103
|
||||
#: src/gcal-source-dialog.c:1163
|
||||
msgid "Open"
|
||||
msgstr "Адкрыць"
|
||||
|
||||
#: src/gcal-source-dialog.c:1110
|
||||
#: src/gcal-source-dialog.c:1170
|
||||
msgid "Calendar files"
|
||||
msgstr "Файлы каляндара"
|
||||
|
||||
#. update the source properties
|
||||
#: src/gcal-source-dialog.c:1144
|
||||
#: src/gcal-source-dialog.c:1204
|
||||
msgid "Unnamed Calendar"
|
||||
msgstr "Каляндар без назвы"
|
||||
|
||||
#. Update notification label
|
||||
#: src/gcal-source-dialog.c:1750
|
||||
#: src/gcal-source-dialog.c:1810
|
||||
#, c-format
|
||||
msgid "Calendar <b>%s</b> removed"
|
||||
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"
|
||||
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"
|
||||
msgstr "Уключыць"
|
||||
|
||||
#: src/gcal-source-dialog.c:2009
|
||||
#: src/gcal-source-dialog.c:1914
|
||||
msgid "Expired"
|
||||
msgstr "Састарэў"
|
||||
|
||||
#: src/gcal-time-selector.c:84
|
||||
#: src/gcal-time-selector.c:83
|
||||
#, c-format
|
||||
msgid "%s AM"
|
||||
msgstr "%s AM"
|
||||
|
||||
#: src/gcal-time-selector.c:86
|
||||
#: src/gcal-time-selector.c:85
|
||||
#, c-format
|
||||
msgid "%s PM"
|
||||
msgstr "%s PM"
|
||||
|
||||
#: src/gcal-utils.c:1188
|
||||
#: src/gcal-utils.c:1120
|
||||
msgid ""
|
||||
"The event you are trying to modify is recurring. The changes you have "
|
||||
"selected should be applied to:"
|
||||
@@ -937,44 +976,35 @@ msgstr ""
|
||||
"Вы спрабуеце змяніць перыядычную падзею. Вылучаныя змены павінны быць ужыты "
|
||||
"для:"
|
||||
|
||||
#: src/gcal-utils.c:1191
|
||||
#: src/gcal-utils.c:1123
|
||||
msgid "_Cancel"
|
||||
msgstr "_Адмена"
|
||||
|
||||
#: src/gcal-utils.c:1193
|
||||
#: src/gcal-utils.c:1125
|
||||
msgid "_Only This Event"
|
||||
msgstr "_Толькі гэтая падзея"
|
||||
|
||||
#: src/gcal-utils.c:1200
|
||||
#: src/gcal-utils.c:1132
|
||||
msgid "_Subsequent events"
|
||||
msgstr "_Наступныя падзеі"
|
||||
|
||||
#: src/gcal-utils.c:1202
|
||||
#: src/gcal-utils.c:1134
|
||||
msgid "_All events"
|
||||
msgstr "_Усе падзеі"
|
||||
|
||||
#: src/gcal-window.c:1129
|
||||
#: src/gcal-window.c:1039
|
||||
msgid "Another event deleted"
|
||||
msgstr "Выдалена яшчэ адна падзея"
|
||||
|
||||
#: src/gcal-window.c:1133
|
||||
#: src/gcal-window.c:1043
|
||||
msgid "Event deleted"
|
||||
msgstr "Пвдзея выдалена"
|
||||
|
||||
#. 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-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-week-grid.c:751 src/views/gcal-week-view.c:275
|
||||
msgid "00 AM"
|
||||
msgstr "00 AM"
|
||||
|
||||
#: src/views/gcal-month-view.c:1186
|
||||
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
|
||||
#: src/views/gcal-week-header.c:398
|
||||
#, c-format
|
||||
msgid "Other event"
|
||||
msgid_plural "Other %d events"
|
||||
@@ -982,11 +1012,7 @@ msgstr[0] "Іншая %d падзея"
|
||||
msgstr[1] "Іншыя %d падзеі"
|
||||
msgstr[2] "Іншых %d падзеяў"
|
||||
|
||||
#: src/views/gcal-week-grid.c:760 src/views/gcal-week-view.c:284
|
||||
msgid "00 AM"
|
||||
msgstr "00 AM"
|
||||
|
||||
#: src/views/gcal-week-header.c:871
|
||||
#: src/views/gcal-week-header.c:934
|
||||
#, c-format
|
||||
msgid "week %d"
|
||||
msgstr "тыдзень %d"
|
||||
@@ -994,10 +1020,26 @@ msgstr "тыдзень %d"
|
||||
#. Translators: This is a date format in the sidebar of the year
|
||||
#. * view when the selection starts at the specified day and the
|
||||
#. * end is unspecified.
|
||||
#: src/views/gcal-year-view.c:284
|
||||
#: src/views/gcal-year-view.c:288
|
||||
msgid "%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"
|
||||
#~ msgstr "%1$s %2$d"
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-calendar\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
|
||||
"POT-Creation-Date: 2018-02-20 22:28+0000\n"
|
||||
"PO-Revision-Date: 2018-02-22 09:54+0100\n"
|
||||
"POT-Creation-Date: 2018-05-02 02:05+0000\n"
|
||||
"PO-Revision-Date: 2018-05-04 00:26+0200\n"
|
||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\n"
|
||||
@@ -34,7 +34,7 @@ msgstr "Kalendář pro GNOME"
|
||||
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."
|
||||
"desktop is built on, Calendar nicely integrates with the GNOME ecosystem."
|
||||
msgstr ""
|
||||
"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 "
|
||||
@@ -494,7 +494,7 @@ msgstr "Zadání přihlašovacích údajů"
|
||||
msgid "Connect"
|
||||
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
|
||||
msgid "00:00"
|
||||
msgstr "00∶00"
|
||||
@@ -637,7 +637,7 @@ msgid "Unnamed event"
|
||||
msgstr "Událost bez názvu"
|
||||
|
||||
#. 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
|
||||
msgid "At %s"
|
||||
msgstr "v místě %s"
|
||||
@@ -969,7 +969,7 @@ msgstr "%s odp."
|
||||
msgid "%s PM"
|
||||
msgstr "%s dop."
|
||||
|
||||
#: src/gcal-utils.c:1093
|
||||
#: src/gcal-utils.c:1120
|
||||
msgid ""
|
||||
"The event you are trying to modify is recurring. The changes you have "
|
||||
"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 "
|
||||
"zvolili, použít:"
|
||||
|
||||
#: src/gcal-utils.c:1096
|
||||
#: src/gcal-utils.c:1123
|
||||
msgid "_Cancel"
|
||||
msgstr "_Zrušit"
|
||||
|
||||
#: src/gcal-utils.c:1098
|
||||
#: src/gcal-utils.c:1125
|
||||
msgid "_Only This Event"
|
||||
msgstr "Jen na tut_o událost"
|
||||
|
||||
#: src/gcal-utils.c:1105
|
||||
#: src/gcal-utils.c:1132
|
||||
msgid "_Subsequent events"
|
||||
msgstr "I na navazující událo_sti"
|
||||
|
||||
#: src/gcal-utils.c:1107
|
||||
#: src/gcal-utils.c:1134
|
||||
msgid "_All events"
|
||||
msgstr "_Všechny události"
|
||||
|
||||
@@ -1001,7 +1001,7 @@ msgstr "Smazána ještě jedna událost"
|
||||
msgid "Event deleted"
|
||||
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"
|
||||
msgstr "0"
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-calendar master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
|
||||
"POT-Creation-Date: 2018-02-20 22:28+0000\n"
|
||||
"PO-Revision-Date: 2018-02-21 17:13+0100\n"
|
||||
"POT-Creation-Date: 2018-05-02 02:05+0000\n"
|
||||
"PO-Revision-Date: 2018-05-08 14:48+0200\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"Language-Team: es <gnome-es-list@gnome.org>\n"
|
||||
"Language: es\n"
|
||||
@@ -30,10 +30,15 @@ msgid "Calendar for GNOME"
|
||||
msgstr "Calendario para GNOME"
|
||||
|
||||
#: 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 ""
|
||||
"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."
|
||||
"desktop is built on, Calendar nicely integrates with the GNOME ecosystem."
|
||||
msgstr ""
|
||||
"Calendario de GNOME es una aplicación de calendario bonita y sencilla "
|
||||
"diseñada para ajustarse perfectamente al escritorio GNOME. Al reutilizar "
|
||||
@@ -491,7 +496,7 @@ msgstr "Introduzca sus credenciales"
|
||||
msgid "Connect"
|
||||
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
|
||||
msgid "00:00"
|
||||
msgstr "00:00"
|
||||
@@ -563,7 +568,6 @@ msgid "Add Event…"
|
||||
msgstr "Añadir evento…"
|
||||
|
||||
#: src/gcal-application.c:88
|
||||
#| msgid "Edit Calendar"
|
||||
msgid "Quit GNOME Calendar"
|
||||
msgstr "Salir de calendario de GNOME"
|
||||
|
||||
@@ -629,7 +633,7 @@ msgid "Unnamed event"
|
||||
msgstr "Evento sin nombre"
|
||||
|
||||
#. 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
|
||||
msgid "At %s"
|
||||
msgstr "El %s"
|
||||
@@ -961,7 +965,7 @@ msgstr "%s AM"
|
||||
msgid "%s PM"
|
||||
msgstr "%s PM"
|
||||
|
||||
#: src/gcal-utils.c:1093
|
||||
#: src/gcal-utils.c:1120
|
||||
msgid ""
|
||||
"The event you are trying to modify is recurring. The changes you have "
|
||||
"selected should be applied to:"
|
||||
@@ -969,19 +973,19 @@ msgstr ""
|
||||
"El evento que intenta modificar es recurrente. Los cambios que ha "
|
||||
"seleccionado se deben aplicar a:"
|
||||
|
||||
#: src/gcal-utils.c:1096
|
||||
#: src/gcal-utils.c:1123
|
||||
msgid "_Cancel"
|
||||
msgstr "_Cancelar"
|
||||
|
||||
#: src/gcal-utils.c:1098
|
||||
#: src/gcal-utils.c:1125
|
||||
msgid "_Only This Event"
|
||||
msgstr "_Sólo este evento"
|
||||
|
||||
#: src/gcal-utils.c:1105
|
||||
#: src/gcal-utils.c:1132
|
||||
msgid "_Subsequent events"
|
||||
msgstr "_Eventos próximos"
|
||||
|
||||
#: src/gcal-utils.c:1107
|
||||
#: src/gcal-utils.c:1134
|
||||
msgid "_All events"
|
||||
msgstr "_Todos los eventos"
|
||||
|
||||
@@ -993,7 +997,7 @@ msgstr "Otro evento eliminado"
|
||||
msgid "Event deleted"
|
||||
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"
|
||||
msgstr "00 AM"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-calendar master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n"
|
||||
"POT-Creation-Date: 2018-01-10 15:33+0000\n"
|
||||
"PO-Revision-Date: 2018-01-15 12:00+0100\n"
|
||||
"POT-Creation-Date: 2018-05-02 02:05+0000\n"
|
||||
"PO-Revision-Date: 2018-05-06 16:46+0200\n"
|
||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
||||
"Language-Team: Friulian <fur@li.org>\n"
|
||||
"Language: fur\n"
|
||||
@@ -16,11 +16,11 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\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/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"
|
||||
msgstr "Calendari"
|
||||
|
||||
@@ -32,11 +32,12 @@ msgstr "Calendari par GNOME"
|
||||
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."
|
||||
"desktop is built on, Calendar nicely integrates with the GNOME ecosystem."
|
||||
msgstr ""
|
||||
"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 "
|
||||
"desktop GNOME al è costruît, Calendari si integre ben cul ecosisteme GNOME."
|
||||
"par incjastrâsi in maniere perfete tal scritori GNOME. Doprant i components "
|
||||
"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
|
||||
msgid ""
|
||||
@@ -75,44 +76,44 @@ msgstr "org.gnome.Calendar"
|
||||
msgid "Calendar;Event;Reminder;"
|
||||
msgstr "Calendari;Lunari;Event;Events;Promemorie;"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:6
|
||||
#: data/org.gnome.calendar.gschema.xml.in:6
|
||||
msgid "Window maximized"
|
||||
msgstr "Barcon slargjât"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:7
|
||||
#: data/org.gnome.calendar.gschema.xml.in:7
|
||||
msgid "Window maximized state"
|
||||
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"
|
||||
msgstr "Dimension barcon"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:12
|
||||
#: data/org.gnome.calendar.gschema.xml.in:12
|
||||
msgid "Window size (width and height)."
|
||||
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"
|
||||
msgstr "Posizion barcon"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:17
|
||||
#: data/org.gnome.calendar.gschema.xml.in:17
|
||||
msgid "Window position (x and 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"
|
||||
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"
|
||||
msgstr ""
|
||||
"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"
|
||||
msgstr "Configurazion dal servizi meteorologjic"
|
||||
|
||||
#: data/org.gnome.calendar.gschema.xml:27
|
||||
#: data/org.gnome.calendar.gschema.xml.in:27
|
||||
msgid ""
|
||||
"Whether weather reports are shown, automatic locations are used and a "
|
||||
"location-name"
|
||||
@@ -137,7 +138,7 @@ msgstr "Anule"
|
||||
msgid "Click to select the calendar"
|
||||
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"
|
||||
msgstr "Fat"
|
||||
|
||||
@@ -374,15 +375,15 @@ msgstr "Modifiche detais…"
|
||||
msgid "Add"
|
||||
msgstr "Zonte"
|
||||
|
||||
#: data/ui/search-view.ui:76
|
||||
#: data/ui/search-popover.ui:76
|
||||
msgid "No results found"
|
||||
msgstr "Nissun risultât cjatât"
|
||||
|
||||
#: data/ui/search-view.ui:92
|
||||
#: data/ui/search-popover.ui:92
|
||||
msgid "Try a different search"
|
||||
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"
|
||||
msgstr "Anule"
|
||||
|
||||
@@ -491,8 +492,8 @@ msgstr "Inserìs lis tôs credenziâls"
|
||||
msgid "Connect"
|
||||
msgstr "Conet"
|
||||
|
||||
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:758
|
||||
#: src/views/gcal-week-view.c:287
|
||||
#: data/ui/time-selector.ui:9 src/views/gcal-week-grid.c:753
|
||||
#: src/views/gcal-week-view.c:278
|
||||
msgid "00:00"
|
||||
msgstr "00:00"
|
||||
|
||||
@@ -500,14 +501,26 @@ msgstr "00:00"
|
||||
msgid ":"
|
||||
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"
|
||||
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"
|
||||
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
|
||||
msgid "Week"
|
||||
msgstr "Setemane"
|
||||
@@ -520,8 +533,8 @@ msgstr "Mês"
|
||||
msgid "Year"
|
||||
msgstr "An"
|
||||
|
||||
#: data/ui/window.ui:190 data/ui/year-view.ui:88 src/views/gcal-year-view.c:285
|
||||
#: src/views/gcal-year-view.c:520
|
||||
#: data/ui/window.ui:190 data/ui/year-view.ui:88 src/views/gcal-year-view.c:279
|
||||
#: src/views/gcal-year-view.c:514
|
||||
msgid "Today"
|
||||
msgstr "Vuê"
|
||||
|
||||
@@ -542,18 +555,6 @@ msgstr "_Zonte event"
|
||||
msgid "_Synchronize"
|
||||
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
|
||||
msgid "No events"
|
||||
msgstr "Nissun event"
|
||||
@@ -562,73 +563,73 @@ msgstr "Nissun event"
|
||||
msgid "Add Event…"
|
||||
msgstr "Zonte event…"
|
||||
|
||||
#: src/gcal-application.c:90
|
||||
#: src/gcal-application.c:88
|
||||
msgid "Quit GNOME Calendar"
|
||||
msgstr "Jes di Calendari GNOME"
|
||||
|
||||
#: src/gcal-application.c:95
|
||||
#: src/gcal-application.c:93
|
||||
msgid "Display version number"
|
||||
msgstr "Mostre il numar di version"
|
||||
|
||||
#: src/gcal-application.c:100
|
||||
#: src/gcal-application.c:98
|
||||
msgid "Enable debug messages"
|
||||
msgstr "Abilite messaçs di debug"
|
||||
|
||||
#: src/gcal-application.c:105
|
||||
#: src/gcal-application.c:103
|
||||
msgid "Open calendar on the passed date"
|
||||
msgstr "Vierç il calendari te zornade dade"
|
||||
|
||||
#: src/gcal-application.c:110
|
||||
#: src/gcal-application.c:108
|
||||
msgid "Open calendar showing the passed event"
|
||||
msgstr "Vierç il calendari mostrant l'event dât"
|
||||
|
||||
#: src/gcal-application.c:497
|
||||
#: src/gcal-application.c:595
|
||||
#, c-format
|
||||
msgid "Copyright © 2012–%d The Calendar authors"
|
||||
msgstr "Copyright © 2012–%d i autôrs di Calendari"
|
||||
|
||||
#: src/gcal-application.c:546
|
||||
#: src/gcal-application.c:646
|
||||
msgid "translator-credits"
|
||||
msgstr "Fabio Tomat <f.t.public@gmail.com>"
|
||||
|
||||
#: src/gcal-edit-dialog.c:275
|
||||
#: src/gcal-edit-dialog.c:277
|
||||
msgid "Save"
|
||||
msgstr "Salve"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1019
|
||||
#: src/gcal-edit-dialog.c:1037
|
||||
#, c-format
|
||||
msgid "%d minute before"
|
||||
msgid_plural "%d minutes before"
|
||||
msgstr[0] "%d minût prime"
|
||||
msgstr[1] "%d minûts prime"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1027
|
||||
#: src/gcal-edit-dialog.c:1045
|
||||
#, c-format
|
||||
msgid "%d hour before"
|
||||
msgid_plural "%d hours before"
|
||||
msgstr[0] "%d ore prime"
|
||||
msgstr[1] "%d oris prime"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1035
|
||||
#: src/gcal-edit-dialog.c:1053
|
||||
#, c-format
|
||||
msgid "%d day before"
|
||||
msgid_plural "%d days before"
|
||||
msgstr[0] "%d zornade prime"
|
||||
msgstr[1] "%d dîs prime"
|
||||
|
||||
#: src/gcal-edit-dialog.c:1043
|
||||
#: src/gcal-edit-dialog.c:1061
|
||||
#, c-format
|
||||
msgid "%d week before"
|
||||
msgid_plural "%d weeks before"
|
||||
msgstr[0] "%d setemane 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"
|
||||
msgstr "Event cence non"
|
||||
|
||||
#. 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
|
||||
msgid "At %s"
|
||||
msgstr "A %s"
|
||||
@@ -743,14 +744,17 @@ msgid "December"
|
||||
msgstr "Dicembar"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:286
|
||||
#, c-format
|
||||
msgid "from Today"
|
||||
msgstr "di vuê"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:290
|
||||
#, c-format
|
||||
msgid "from Tomorrow"
|
||||
msgstr "di doman"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:294
|
||||
#, c-format
|
||||
msgid "from Yesterday"
|
||||
msgstr "di îr"
|
||||
|
||||
@@ -764,14 +768,17 @@ msgid "from %1$s %2$s"
|
||||
msgstr "dal/dai %2$s di %1$s"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:323
|
||||
#, c-format
|
||||
msgid "to Today"
|
||||
msgstr "a doman"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:327
|
||||
#, c-format
|
||||
msgid "to Tomorrow"
|
||||
msgstr "a doman"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:331
|
||||
#, c-format
|
||||
msgid "to Yesterday"
|
||||
msgstr "a îr"
|
||||
|
||||
@@ -791,14 +798,17 @@ msgid "New Event %1$s %2$s"
|
||||
msgstr "Gnûf event %1$s %2$s"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:373
|
||||
#, c-format
|
||||
msgid "New Event Today"
|
||||
msgstr "Gnûf event vuê"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:377
|
||||
#, c-format
|
||||
msgid "New Event Tomorrow"
|
||||
msgstr "Gnûf event doman"
|
||||
|
||||
#: src/gcal-quick-add-popover.c:381
|
||||
#, c-format
|
||||
msgid "New Event Yesterday"
|
||||
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"
|
||||
msgstr "%1$s, %2$s – %3$s"
|
||||
|
||||
#: src/gcal-search-view.c:358
|
||||
#: src/gcal-search-popover.c:303
|
||||
msgid "All day"
|
||||
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."
|
||||
msgstr "Dopre la casele di test parsore par cirî i events."
|
||||
|
||||
@@ -942,17 +952,17 @@ msgstr "On"
|
||||
msgid "Expired"
|
||||
msgstr "Scjadût"
|
||||
|
||||
#: src/gcal-time-selector.c:84
|
||||
#: src/gcal-time-selector.c:83
|
||||
#, c-format
|
||||
msgid "%s AM"
|
||||
msgstr "%s AM"
|
||||
|
||||
#: src/gcal-time-selector.c:86
|
||||
#: src/gcal-time-selector.c:85
|
||||
#, c-format
|
||||
msgid "%s PM"
|
||||
msgstr "%s PM"
|
||||
|
||||
#: src/gcal-utils.c:1090
|
||||
#: src/gcal-utils.c:1120
|
||||
msgid ""
|
||||
"The event you are trying to modify is recurring. The changes you have "
|
||||
"selected should be applied to:"
|
||||
@@ -960,42 +970,42 @@ msgstr ""
|
||||
"L'event che si sta cirint di modificâ al è ciclic. Lis modifichis "
|
||||
"selezionadis e varessin di jessi aplicadis a:"
|
||||
|
||||
#: src/gcal-utils.c:1093
|
||||
#: src/gcal-utils.c:1123
|
||||
msgid "_Cancel"
|
||||
msgstr "_Anule"
|
||||
|
||||
#: src/gcal-utils.c:1095
|
||||
#: src/gcal-utils.c:1125
|
||||
msgid "_Only This Event"
|
||||
msgstr "_Dome chest event"
|
||||
|
||||
#: src/gcal-utils.c:1102
|
||||
#: src/gcal-utils.c:1132
|
||||
msgid "_Subsequent events"
|
||||
msgstr "_Events seguitîfs"
|
||||
|
||||
#: src/gcal-utils.c:1104
|
||||
#: src/gcal-utils.c:1134
|
||||
msgid "_All events"
|
||||
msgstr "_Ducj i events"
|
||||
|
||||
#: src/gcal-window.c:1272
|
||||
#: src/gcal-window.c:1039
|
||||
msgid "Another event deleted"
|
||||
msgstr "Un altri event eliminât"
|
||||
|
||||
#: src/gcal-window.c:1276
|
||||
#: src/gcal-window.c:1043
|
||||
msgid "Event deleted"
|
||||
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"
|
||||
msgstr "00 AM"
|
||||
|
||||
#: src/views/gcal-week-header.c:400
|
||||
#: src/views/gcal-week-header.c:398
|
||||
#, c-format
|
||||
msgid "Other event"
|
||||
msgid_plural "Other %d events"
|
||||
msgstr[0] "Altri event"
|
||||
msgstr[1] "Altris %d events"
|
||||
|
||||
#: src/views/gcal-week-header.c:933
|
||||
#: src/views/gcal-week-header.c:934
|
||||
#, c-format
|
||||
msgid "week %d"
|
||||
msgstr "setemane %d"
|
||||
@@ -1003,14 +1013,14 @@ msgstr "setemane %d"
|
||||
#. Translators: This is a date format in the sidebar of the year
|
||||
#. * view when the selection starts at the specified day and the
|
||||
#. * end is unspecified.
|
||||
#: src/views/gcal-year-view.c:294
|
||||
#: src/views/gcal-year-view.c:288
|
||||
msgid "%B %d…"
|
||||
msgstr "%d di %B…"
|
||||
|
||||
#. 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: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"
|
||||
msgstr "%d di %B"
|
||||
|
||||
|
||||
+905
-434
File diff suppressed because it is too large
Load Diff
@@ -55,6 +55,8 @@ struct _GcalApplication
|
||||
GcalWeatherService *weather_service;
|
||||
|
||||
GcalShellSearchProvider *search_provider;
|
||||
|
||||
GcalClock *clock;
|
||||
};
|
||||
|
||||
static void gcal_application_create_new_event (GSimpleAction *new_event,
|
||||
@@ -121,6 +123,7 @@ static const GActionEntry gcal_app_entries[] = {
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_CLOCK,
|
||||
PROP_MANAGER,
|
||||
PROP_TIME_FORMAT,
|
||||
PROP_WEATHER_SERVICE,
|
||||
@@ -229,6 +232,7 @@ gcal_application_finalize (GObject *object)
|
||||
g_clear_pointer (&self->initial_date, g_free);
|
||||
g_clear_pointer (&self->uuid, g_free);
|
||||
g_clear_object (&self->colors_provider);
|
||||
g_clear_object (&self->clock);
|
||||
g_clear_object (&self->desktop_settings);
|
||||
g_clear_object (&self->manager);
|
||||
g_clear_object (&self->provider);
|
||||
@@ -250,6 +254,10 @@ gcal_application_get_property (GObject *object,
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_CLOCK:
|
||||
g_value_set_object (value, self->clock);
|
||||
break;
|
||||
|
||||
case PROP_MANAGER:
|
||||
g_value_set_object (value, self->manager);
|
||||
break;
|
||||
@@ -506,6 +514,12 @@ gcal_application_class_init (GcalApplicationClass *klass)
|
||||
application_class->dbus_register = gcal_application_dbus_register;
|
||||
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",
|
||||
"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);
|
||||
|
||||
self->clock = gcal_clock_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-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);
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#ifndef _GCAL_APPLICATION_H_
|
||||
#define _GCAL_APPLICATION_H_
|
||||
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-weather-service.h"
|
||||
#include "gcal-manager.h"
|
||||
|
||||
@@ -43,6 +44,8 @@ void gcal_application_set_uuid (GcalApplicatio
|
||||
void gcal_application_set_initial_date (GcalApplication *self,
|
||||
GDateTime *initial_date);
|
||||
|
||||
GcalClock* gcal_application_get_clock (GcalApplication *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* _GCAL_APPLICATION_H_ */
|
||||
|
||||
+22
-6
@@ -22,6 +22,8 @@
|
||||
#include <glib/gi18n.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "gcal-application.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-event-widget.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);
|
||||
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);
|
||||
multiday = gcal_event_is_multiday (event);
|
||||
|
||||
@@ -320,6 +319,10 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
|
||||
|
||||
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)
|
||||
{
|
||||
start = g_date_time_format (tooltip_start, "%x");
|
||||
@@ -333,6 +336,9 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
|
||||
}
|
||||
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 (self->clock_format_24h)
|
||||
@@ -395,9 +401,7 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
|
||||
|
||||
if (allday && !multiday)
|
||||
{
|
||||
g_string_append_printf (tooltip_mesg,
|
||||
"\n%s",
|
||||
start);
|
||||
g_string_append_printf (tooltip_mesg, "\n%s", start);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -948,6 +952,7 @@ gcal_event_widget_class_init (GcalEventWidgetClass *klass)
|
||||
static void
|
||||
gcal_event_widget_init (GcalEventWidget *self)
|
||||
{
|
||||
GcalApplication *application;
|
||||
GtkWidget *widget;
|
||||
|
||||
widget = GTK_WIDGET (self);
|
||||
@@ -964,6 +969,17 @@ gcal_event_widget_init (GcalEventWidget *self)
|
||||
/* Starts with horizontal */
|
||||
self->orientation = GTK_ORIENTATION_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*
|
||||
|
||||
+32
-25
@@ -1492,43 +1492,50 @@ gcal_event_get_uid (GcalEvent *self)
|
||||
* gcal_event_is_multiday:
|
||||
* @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.
|
||||
*/
|
||||
gboolean
|
||||
gcal_event_is_multiday (GcalEvent *self)
|
||||
{
|
||||
g_autoptr (GDateTime) real_end_date = NULL;
|
||||
gboolean is_multiday;
|
||||
gint n_days;
|
||||
g_autoptr (GDateTime) inclusive_end_date = NULL;
|
||||
g_autoptr (GDateTime) local_start_date = NULL;
|
||||
g_autoptr (GDateTime) local_end_date = NULL;
|
||||
GDate start_dt;
|
||||
GDate end_dt;
|
||||
|
||||
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);
|
||||
n_days = g_date_time_difference (real_end_date, self->dt_start) / G_TIME_SPAN_DAY;
|
||||
is_multiday = FALSE;
|
||||
inclusive_end_date = g_date_time_add_seconds (gcal_event_get_date_end (self), -1);
|
||||
local_start_date = g_date_time_to_local (self->dt_start);
|
||||
local_end_date = g_date_time_to_local (inclusive_end_date);
|
||||
|
||||
/*
|
||||
* An all-day event with only 1 day of time span is treated as a
|
||||
* single-day event.
|
||||
*/
|
||||
if (self->all_day && n_days == 1)
|
||||
is_multiday = FALSE;
|
||||
g_date_clear (&start_dt, 1);
|
||||
g_date_set_dmy (&start_dt,
|
||||
g_date_time_get_day_of_month (local_start_date),
|
||||
g_date_time_get_month (local_start_date),
|
||||
g_date_time_get_year (local_start_date));
|
||||
|
||||
/*
|
||||
* If any of the following fields are different, we're certain that
|
||||
* it's a multiday event. Otherwise, we're certain it's NOT a multiday
|
||||
* event.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
g_date_clear (&end_dt, 1);
|
||||
g_date_set_dmy (&end_dt,
|
||||
g_date_time_get_day_of_month (local_end_date),
|
||||
g_date_time_get_month (local_end_date),
|
||||
g_date_time_get_year (local_end_date));
|
||||
|
||||
return is_multiday;
|
||||
return g_date_days_between (&start_dt, &end_dt) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-33
@@ -90,8 +90,6 @@ struct _GcalManager
|
||||
|
||||
GoaClient *goa_client;
|
||||
|
||||
GcalClock *clock;
|
||||
|
||||
/* state flags */
|
||||
gboolean goa_client_ready;
|
||||
gint sources_at_launch;
|
||||
@@ -108,7 +106,6 @@ G_DEFINE_TYPE (GcalManager, gcal_manager, G_TYPE_OBJECT)
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_CLOCK,
|
||||
PROP_DEFAULT_CALENDAR,
|
||||
PROP_LOADING,
|
||||
PROP_SETTINGS,
|
||||
@@ -776,7 +773,6 @@ gcal_manager_finalize (GObject *object)
|
||||
|
||||
GCAL_ENTRY;
|
||||
|
||||
g_clear_object (&self->clock);
|
||||
g_clear_object (&self->settings);
|
||||
g_clear_object (&self->goa_client);
|
||||
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->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:
|
||||
*
|
||||
@@ -964,7 +949,6 @@ gcal_manager_class_init (GcalManagerClass *klass)
|
||||
static void
|
||||
gcal_manager_init (GcalManager *self)
|
||||
{
|
||||
self->clock = gcal_clock_new ();
|
||||
self->settings = g_settings_new ("org.gnome.calendar");
|
||||
self->system_timezone = e_cal_util_get_system_timezone ();
|
||||
}
|
||||
@@ -1715,7 +1699,7 @@ gcal_manager_remove_event (GcalManager *self,
|
||||
(ECalObjModType) mod,
|
||||
self->async_ops,
|
||||
on_event_removed,
|
||||
event);
|
||||
g_object_ref (event));
|
||||
|
||||
g_free (rid);
|
||||
|
||||
@@ -1856,22 +1840,6 @@ gcal_manager_get_loading (GcalManager *self)
|
||||
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:
|
||||
* @self: a #GcalManager
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#define __GCAL_MANAGER_H__
|
||||
|
||||
#include "e-cal-data-model.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-event.h"
|
||||
|
||||
#include <libical/icaltime.h>
|
||||
@@ -107,9 +106,6 @@ GList* gcal_manager_get_events (GcalManager
|
||||
|
||||
gboolean gcal_manager_get_loading (GcalManager *self);
|
||||
|
||||
/* Clock */
|
||||
GcalClock* gcal_manager_get_clock (GcalManager *self);
|
||||
|
||||
/* Online Accounts */
|
||||
GoaClient* gcal_manager_get_goa_client (GcalManager *self);
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
#define G_LOG_DOMAIN "GcalMonthCell"
|
||||
|
||||
#include "config.h"
|
||||
#include "gcal-application.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-event-widget.h"
|
||||
#include "gcal-utils.h"
|
||||
#include "gcal-month-cell.h"
|
||||
@@ -445,8 +447,9 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass)
|
||||
static void
|
||||
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 */
|
||||
gtk_drag_dest_set (GTK_WIDGET (self),
|
||||
@@ -454,6 +457,18 @@ gcal_month_cell_init (GcalMonthCell *self)
|
||||
NULL,
|
||||
0,
|
||||
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*
|
||||
@@ -576,14 +591,7 @@ gcal_month_cell_set_manager (GcalMonthCell *self,
|
||||
g_return_if_fail (GCAL_IS_MONTH_CELL (self));
|
||||
|
||||
if (g_set_object (&self->manager, 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]);
|
||||
}
|
||||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MANAGER]);
|
||||
}
|
||||
|
||||
guint
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#define G_LOG_DOMAIN "GcalMonthPopover"
|
||||
|
||||
#include "gcal-debug.h"
|
||||
#include "gcal-event-widget.h"
|
||||
#include "gcal-month-popover.h"
|
||||
#include "gcal-utils.h"
|
||||
@@ -25,6 +26,7 @@
|
||||
#include <dazzle.h>
|
||||
|
||||
#define RATIO_TO_RELATIVE 1.25
|
||||
#define MIN_WIDTH 250
|
||||
|
||||
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);
|
||||
|
||||
alloc.width = MAX (MIN_WIDTH, alloc.width);
|
||||
|
||||
if (animate)
|
||||
{
|
||||
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;
|
||||
GAction *action;
|
||||
|
||||
GCAL_ENTRY;
|
||||
|
||||
map = G_ACTION_MAP (g_application_get_default ());
|
||||
action = g_action_map_lookup_action (map, "new");
|
||||
|
||||
gcal_month_popover_popdown (self);
|
||||
|
||||
g_action_activate (action, NULL);
|
||||
|
||||
GCAL_EXIT;
|
||||
}
|
||||
|
||||
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);
|
||||
adjust_margin (self, &alloc);
|
||||
|
||||
alloc.width = MAX (MIN_WIDTH, alloc.width);
|
||||
|
||||
animate_opacity (self, 0.0);
|
||||
animate_position (self, 0.0, 0.0);
|
||||
animate_size (self, alloc.width, alloc.height);
|
||||
|
||||
+343
-303
@@ -21,6 +21,8 @@
|
||||
|
||||
#include "config.h"
|
||||
#include "e-cal-data-model-subscriber.h"
|
||||
#include "gcal-application.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-debug.h"
|
||||
#include "gcal-month-cell.h"
|
||||
#include "gcal-month-popover.h"
|
||||
@@ -124,14 +126,24 @@ struct _GcalMonthView
|
||||
gboolean pending_event_allocation;
|
||||
};
|
||||
|
||||
|
||||
static void gcal_view_interface_init (GcalViewInterface *iface);
|
||||
|
||||
static void gtk_buildable_interface_init (GtkBuildableIface *iface);
|
||||
|
||||
static void e_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface);
|
||||
|
||||
static void update_weather (GcalMonthView *self,
|
||||
gboolean clear_old);
|
||||
static void on_event_activated_cb (GcalEventWidget *widget,
|
||||
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_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init)
|
||||
@@ -162,28 +174,13 @@ cancel_selection (GcalMonthView *self)
|
||||
}
|
||||
|
||||
static void
|
||||
event_activated (GcalMonthView *self,
|
||||
GcalEventWidget *widget,
|
||||
gpointer unused)
|
||||
activate_event (GcalMonthView *self,
|
||||
GcalEventWidget *event_widget)
|
||||
{
|
||||
cancel_selection (self);
|
||||
gcal_month_popover_popdown (self->overflow_popover);
|
||||
|
||||
g_signal_emit_by_name (self, "event-activated", 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);
|
||||
g_signal_emit_by_name (self, "event-activated", event_widget);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -193,8 +190,8 @@ setup_child_widget (GcalMonthView *self,
|
||||
if (!gtk_widget_get_parent (widget))
|
||||
gtk_widget_set_parent (widget, GTK_WIDGET (self));
|
||||
|
||||
g_signal_connect_swapped (widget, "activate", G_CALLBACK (event_activated), self);
|
||||
g_signal_connect_swapped (widget, "notify::visible", G_CALLBACK (event_widget_visibility_changed_cb), self);
|
||||
g_signal_connect (widget, "activate", G_CALLBACK (on_event_activated_cb), self);
|
||||
g_signal_connect (widget, "notify::visible", G_CALLBACK (on_event_widget_visibility_changed_cb), self);
|
||||
}
|
||||
|
||||
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
|
||||
setup_header_widget (GcalMonthView *self,
|
||||
GtkWidget *widget)
|
||||
@@ -876,10 +857,7 @@ setup_month_grid (GcalMonthView *self,
|
||||
|
||||
cell = gcal_month_cell_new ();
|
||||
|
||||
g_signal_connect (cell,
|
||||
"show-overflow",
|
||||
G_CALLBACK (show_overflow_popover_cb),
|
||||
self);
|
||||
g_signal_connect (cell, "show-overflow", G_CALLBACK (on_month_cell_show_overflow_popover_cb), self);
|
||||
|
||||
self->month_cell[row][col] = cell;
|
||||
|
||||
@@ -1040,7 +1018,7 @@ static void
|
||||
queue_update_month_cells (GcalMonthView *self)
|
||||
{
|
||||
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);
|
||||
}
|
||||
@@ -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
|
||||
add_new_event_button_cb (GtkWidget *button,
|
||||
gpointer user_data)
|
||||
@@ -1249,7 +1074,58 @@ add_new_event_button_cb (GtkWidget *button,
|
||||
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*
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ECalDataModelSubscriber interface
|
||||
*/
|
||||
@@ -1494,6 +1371,7 @@ e_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface)
|
||||
iface->thaw = gcal_month_view_thaw;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* GtkContainer overrides
|
||||
*/
|
||||
@@ -1690,7 +1568,7 @@ gcal_month_view_forall (GtkContainer *container,
|
||||
if (self->header)
|
||||
(*callback) (self->header, callback_data);
|
||||
|
||||
/* Header */
|
||||
/* Grid */
|
||||
if (self->grid)
|
||||
(*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
|
||||
gcal_month_view_realize (GtkWidget *widget)
|
||||
{
|
||||
@@ -2132,6 +1912,255 @@ gcal_month_view_direction_changed (GtkWidget *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
|
||||
gcal_month_view_class_init (GcalMonthViewClass *klass)
|
||||
{
|
||||
@@ -2188,6 +2217,8 @@ gcal_month_view_class_init (GcalMonthViewClass *klass)
|
||||
static void
|
||||
gcal_month_view_init (GcalMonthView *self)
|
||||
{
|
||||
GcalApplication *application;
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (self));
|
||||
|
||||
gtk_widget_set_has_window (GTK_WIDGET (self), FALSE);
|
||||
@@ -2221,9 +2252,18 @@ gcal_month_view_init (GcalMonthView *self)
|
||||
"manager",
|
||||
G_BINDING_DEFAULT);
|
||||
|
||||
g_signal_connect_swapped (self->overflow_popover,
|
||||
"event-activated",
|
||||
G_CALLBACK (event_activated),
|
||||
self);
|
||||
g_signal_connect (self->overflow_popover, "event-activated", G_CALLBACK (on_month_popover_event_activated_cb), 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -218,7 +218,7 @@ gcal_view_set_weather_service_impl_helper (GcalWeatherService **old_service,
|
||||
g_set_object (old_service, new_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);
|
||||
g_object_notify (G_OBJECT (data), "weather-service");
|
||||
|
||||
+19
-10
@@ -19,6 +19,8 @@
|
||||
|
||||
#define G_LOG_DOMAIN "GcalWeekGrid"
|
||||
|
||||
#include "gcal-application.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-debug.h"
|
||||
#include "gcal-week-grid.h"
|
||||
#include "gcal-week-view.h"
|
||||
@@ -152,11 +154,12 @@ get_event_range (GcalWeekGrid *self,
|
||||
|
||||
if (end)
|
||||
{
|
||||
|
||||
GDateTime *event_end;
|
||||
g_autoptr (GDateTime) inclusive_end_date = NULL;
|
||||
g_autoptr (GDateTime) event_end = NULL;
|
||||
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);
|
||||
|
||||
diff = g_date_time_difference (event_end, week_start);
|
||||
@@ -171,8 +174,6 @@ get_event_range (GcalWeekGrid *self,
|
||||
*/
|
||||
if (start && *start == *end)
|
||||
*end = *end + 1;
|
||||
|
||||
g_clear_pointer (&event_end, 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
|
||||
gcal_week_grid_init (GcalWeekGrid *self)
|
||||
{
|
||||
GcalApplication *application;
|
||||
|
||||
gtk_widget_set_has_window (GTK_WIDGET (self), FALSE);
|
||||
|
||||
self->selection_start = -1;
|
||||
@@ -1124,6 +1127,17 @@ gcal_week_grid_init (GcalWeekGrid *self)
|
||||
NULL,
|
||||
0,
|
||||
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 */
|
||||
@@ -1134,11 +1148,6 @@ gcal_week_grid_set_manager (GcalWeekGrid *self,
|
||||
g_return_if_fail (GCAL_IS_WEEK_GRID (self));
|
||||
|
||||
self->manager = manager;
|
||||
|
||||
g_signal_connect_swapped (gcal_manager_get_clock (manager),
|
||||
"minute-changed",
|
||||
G_CALLBACK (gtk_widget_queue_draw),
|
||||
self);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
|
||||
#define G_LOG_DOMAIN "GcalWeekHeader"
|
||||
|
||||
#include "gcal-application.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-debug.h"
|
||||
#include "gcal-event-widget.h"
|
||||
#include "gcal-utils.h"
|
||||
@@ -1095,13 +1097,7 @@ gcal_week_header_finalize (GObject *object)
|
||||
for (i = 0; i < 7; i++)
|
||||
g_list_free (self->events[i]);
|
||||
|
||||
if (self->weather_service != NULL)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (self->weather_service,
|
||||
(GCallback) on_weather_update,
|
||||
self);
|
||||
g_clear_object (&self->weather_service);
|
||||
}
|
||||
g_clear_object (&self->weather_service);
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (self->weather_infos); i++)
|
||||
wid_clear (&self->weather_infos[i]);
|
||||
@@ -1670,6 +1666,8 @@ gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
|
||||
static void
|
||||
gcal_week_header_init (GcalWeekHeader *self)
|
||||
{
|
||||
GcalApplication *application;
|
||||
|
||||
self->expanded = FALSE;
|
||||
self->selection_start = -1;
|
||||
self->selection_end = -1;
|
||||
@@ -1689,6 +1687,17 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
NULL,
|
||||
0,
|
||||
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 */
|
||||
@@ -1819,11 +1828,6 @@ gcal_week_header_set_manager (GcalWeekHeader *self,
|
||||
g_return_if_fail (GCAL_IS_WEEK_HEADER (self));
|
||||
|
||||
self->manager = manager;
|
||||
|
||||
g_signal_connect_swapped (gcal_manager_get_clock (manager),
|
||||
"day-changed",
|
||||
G_CALLBACK (gtk_widget_queue_draw),
|
||||
self);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
#define G_LOG_DOMAIN "GcalYearView"
|
||||
|
||||
#include "gcal-application.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-debug.h"
|
||||
#include "gcal-year-view.h"
|
||||
#include "gcal-view.h"
|
||||
@@ -1662,12 +1664,6 @@ gcal_year_view_set_property (GObject *object,
|
||||
|
||||
case PROP_MANAGER:
|
||||
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");
|
||||
break;
|
||||
|
||||
@@ -2011,6 +2007,7 @@ gcal_year_view_class_init (GcalYearViewClass *klass)
|
||||
static void
|
||||
gcal_year_view_init (GcalYearView *self)
|
||||
{
|
||||
GcalApplication *application;
|
||||
guint i;
|
||||
|
||||
self->weather_service = NULL;
|
||||
@@ -2053,6 +2050,17 @@ gcal_year_view_init (GcalYearView *self)
|
||||
NULL,
|
||||
0,
|
||||
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
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@ static void
|
||||
event_date_multiday (void)
|
||||
{
|
||||
const gchar * const events[] = {
|
||||
EVENT_STRING_FOR_DATE ("20160229T000000Z", "20160301T000001Z"),
|
||||
EVENT_STRING_FOR_DATE ("20160229T000000Z", "20160302T000001Z"),
|
||||
EVENT_STRING_FOR_DATE ("20160229T020000Z", "20160310T004500Z"),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user