diffstat for xapp-1.2.2 xapp-1.4.5+cindy debian/changelog | 278 + debian/clean | 1 debian/compat | 2 debian/control | 36 debian/copyright | 33 debian/libxapp1.install | 3 debian/libxapp1.symbols | 45 debian/not-installed | 6 debian/rules | 29 debian/source/format | 2 debian/watch | 3 debian/xapps-common.install | 3 debian/xapps-doc.install | 2 docs/xapp-docs.xml | 5 files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-behavior-symbolic.svg | 62 files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-display-symbolic.svg | 62 files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-plugins-symbolic.svg | 62 files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-preview-symbolic.svg | 62 files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-toolbar-symbolic.svg | 19 libxapp/meson.build | 22 libxapp/xapp-enums.c.template | 44 libxapp/xapp-enums.h.template | 24 libxapp/xapp-glade-catalog.c | 4 libxapp/xapp-glade-catalog.xml | 6 libxapp/xapp-gtk-window.c | 32 libxapp/xapp-gtk-window.h | 9 libxapp/xapp-icon-chooser-button.c | 346 + libxapp/xapp-icon-chooser-button.h | 30 libxapp/xapp-icon-chooser-dialog.c | 1917 ++++++++++ libxapp/xapp-icon-chooser-dialog.h | 43 libxapp/xapp-preferences-window.c | 54 libxapp/xapp-stack-sidebar.c | 522 ++ libxapp/xapp-stack-sidebar.h | 22 makepot | 4 meson.build | 4 po/LINGUAS | 32 po/POTFILES | 4 po/am.po | 121 po/bg.po | 121 po/ca.po | 121 po/cs.po | 121 po/cy.po | 121 po/da.po | 121 po/de.po | 121 po/en_GB.po | 121 po/eo.po | 121 po/es.po | 121 po/eu.po | 121 po/fi.po | 121 po/fr.po | 121 po/hr.po | 121 po/hu.po | 117 po/ia.po | 121 po/id.po | 121 po/is.po | 121 po/it.po | 121 po/kab.po | 121 po/ko.po | 121 po/lt.po | 121 po/nl.po | 121 po/pl.po | 121 po/pt_BR.po | 121 po/ro.po | 121 po/ru.po | 121 po/sk.po | 122 po/sr.po | 121 po/sv.po | 121 po/tr.po | 121 po/uk.po | 121 po/zh_CN.po | 121 pygobject/XApp.py | 10 test-scripts/xapp-icon-chooser-dialog | 49 xapp.pot | 121 73 files changed, 7791 insertions(+), 213 deletions(-) diff -Nru xapp-1.2.2/debian/changelog xapp-1.4.5+cindy/debian/changelog --- xapp-1.2.2/debian/changelog 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/changelog 2018-12-11 14:21:26.000000000 +0000 @@ -1,78 +1,250 @@ -xapp (1.2.2-1) unstable; urgency=medium +xapp (1.4.5+cindy) tessa; urgency=medium - * New upstream release (1.2.2). - * Release to unstable + * l10n: Update translations - -- Maximiliano Curia Tue, 07 Aug 2018 14:51:38 +0200 + -- Clement Lefebvre Tue, 11 Dec 2018 14:21:26 +0000 -xapp (1.2.1-1) experimental; urgency=medium +xapp (1.4.4) tessa; urgency=medium - * New upstream release (1.2.1). - * Release to experimental + * Update translations - -- Maximiliano Curia Thu, 24 May 2018 14:33:58 +0200 + -- Clement Lefebvre Tue, 27 Nov 2018 18:16:32 +0000 -xapp (1.2.0-1) experimental; urgency=medium +xapp (1.4.3) tessa; urgency=medium + + [ Michael Webster ] + * xapp-icon-chooser-dialog.c: Don't deep copy the category's icon list, just shallow copy and only free the strings once. This is faster. + + -- Clement Lefebvre Tue, 27 Nov 2018 17:24:54 +0000 + +xapp (1.4.2) tessa; urgency=medium + + [ Michael Webster ] + * XAppGtkWindow: make derivable type. + * xapp-icon-chooser-dialog: use XAppGtkWindow as a parent class, make the default window size slightly taller to prevent a category scroll bar under typical situations, remove the skip-taskbar hint in the test script. + * xapp-gtk-window.c: Fix previous commit, initialize priv. + * xapp-icon-chooser-dialog.c: Give the window the title 'Choose an icon'. + * various improvements (#61) + + [ Clement Lefebvre ] + * l10n: Update POT + + [ Michael Webster ] + * xapp-icon-chooser-dialog.c: Only display icons that belong to contexts. + + -- Clement Lefebvre Mon, 19 Nov 2018 10:03:21 +0000 + +xapp (1.4.1) tessa; urgency=medium + + [ Stephen Collins ] + * icon chooser dialog: Prevent the dialog from being destroyed when the window close button is clicked. This was causing an issue where the dialog will not reopen in some cases. (#56) + * icon chooser button: fix image not updating when the icon property is set (#57) + * icon chooser dialog: initialize the default value for the allow_paths property. it was causing file paths to not work when the property wasn't set, even though the browse button was showing (#59) + * icon chooser button: prevent string pointer issues when calling icon_… (#58) + * icon chooser button: enforce image size when using paths + + [ Michael Webster ] + * xapp-icon-chooser-button.h: add missing public method and fix annotation for it. + + -- Clement Lefebvre Mon, 12 Nov 2018 15:13:01 +0000 + +xapp (1.4.0) tessa; urgency=medium + + [ JosephMcc ] + * Add an XAppStackSidebar widget (#45) + * stack-sidear: Simplify a bit + * stack-sidebar: Allow using in Glade + + [ Michael Webster ] + * xapp-stack-sidebar.c: Set our internal children visible during construction. + + [ JosephMcc ] + * icons: Add new icons for the nemo preferences window + * prefs-window: Use XAppStackSidebar + + [ Stephen Collins ] + * Add an icon chooser dialog (#51) + + [ JosephMcc ] + * icon-chooser: Do a bit of restyling (#52) [ Fabio Fantoni ] - * New upstream release (1.2.0). - * update symbols + * Improve debian packaging (#42) + + [ Stephen Collins ] + * fix segfault in icon chooser dialog and ensure a category is always selected (#54) + * Add an icon chooser button. Displays an image of the icon and opens the icon chooser dialog on click. (#53) - [ Maximiliano Curia ] - * Drop old build deps - * Update install files - * Bump Standards-Version to 4.1.4. - * Add missing -dev dependency - * Bump group breaks (1.2) - * Release to experimental - - -- Maximiliano Curia Sat, 05 May 2018 14:30:25 +0200 - -xapp (1.0.4-2) unstable; urgency=medium - - * New revision - * Drop dh-autoreconf (no longer needed with dh >= 10) - * Bump debhelper build-dep and compat to 11. - * Bump Standards-Version to 4.1.3. - * Release to unstable + [ JosephMcc ] + * prefs-window: Restyle to better match other dialogs (#55) - -- Maximiliano Curia Tue, 27 Mar 2018 16:57:02 +0200 + [ Michael Webster ] + * xapp-icon-chooser-dialog: include the generated enums header in the .c file so it does not break C application compilation. + * xapp-icon-chooser-dialog: Add xapp_icon_chooser_dialog_add_button(). -xapp (1.0.4-1) experimental; urgency=medium + [ Clement Lefebvre ] + * l10n: Add makepot and de-couple POT from build system + + -- Clement Lefebvre Tue, 30 Oct 2018 15:26:24 +0000 + +xapp (1.2.2) tara; urgency=medium [ Fabio Fantoni ] - * New upstream release (1.0.4). - * Add missing xapps-doc package - * Update Symbols + * circleci: remove mint18 job (#41) + + [ Michael Webster ] + * xapp-gtk-window.c: Check for x11 at a more appropriate time. - [ Maximiliano Curia ] - * Degrade gist and inxi dependencies to recommends. - Thanks to Christoph Anton Mitterer for the report (Closes: 849017) - * Use the salsa canonical urls - * Set new ml as Maintainer - * Release to experimental + [ Clement Lefebvre ] + * Pastebin: Replace gist with termbin - -- Maximiliano Curia Mon, 26 Mar 2018 14:52:04 +0200 + -- Clement Lefebvre Tue, 17 Jul 2018 09:35:34 +0200 -xapp (1.0.3-2) unstable; urgency=medium +xapp (1.2.1) tara; urgency=medium - * Release to unstable + [ Michael Webster ] + * icons: Add category-search-symbolic - -- Maximiliano Curia Sat, 02 Sep 2017 07:35:39 +0200 + -- Clement Lefebvre Sun, 06 May 2018 14:34:17 +0100 -xapp (1.0.3-1) experimental; urgency=medium +xapp (1.2.0) tara; urgency=medium + + [ Clement Lefebvre ] + * Add CI configuration + + [ Michael Webster ] + * Build: Switch to Meson (#34) + * docs/meson.build: split mkdb args properly. (fixes arch build) + * Fix post-install script shebang, remove the schema file from translation tracking. + * build: make docs optional, but enabled in debian build. Add deprecated warnings option as well. + * xapp-gtk-window.c: use gdk_error_trap_pop_ignored to quiet build warning. + * xapp-gtk-window.c: Skip x11 calls if we're not running an x session. + * xapp-gtk-window.c: only do an x11 check once, cache the result. + + [ JosephMcc ] + * prefs-window: Remove a stray separator + + [ Michael Webster ] + * build: Fix pkg-config generation to require header-file-included libs (fixes CI build for nemo) + + [ NikoKrause ] + * Add media-mount-symbolic icon (#37) + * extract/compress icons for nemo-fileroller (#38) + + [ Fabio Fantoni ] + * debian: small improvements about python + * debian: wrap-and-sort -bst + * update debian/copyright + * Bump debhelper build-dep and compat to 10 + * add debian/not-installed + * Drop dh's parallel arg (no longer needed with dh >= 10) + + -- Clement Lefebvre Mon, 16 Apr 2018 15:39:24 +0100 + +xapp (1.0.4) sylvia; urgency=medium + + [ Clement Lefebvre ] + * Packaging: Change description + + [ Michael Webster ] + * Add xapp-gtk-utils.c/.h + * Remove extra spaces inserted by clandestine foreign hackers. + * Add XAppGtkWindow, with methods that shadow GtkWindow's icon setting ones. This way, programs only need to change the window class, rather than adding extra code. + * xapp-gtk-window: Add wrapper functions for GtkWindow subclasses. + * xapp-gtk-window.*: Fix argument type for wrapper function. + * xapp-gtk-window: Add progress features, refactor, add demo script for XAppGtkWindow. + * xapp-gtk-window test script: Add an animate button (to test real-world effects on system reponsiveness while an operation is running.) + * all: Fix build warnings, documentation. + * xapp-gtk-window: Make xapp_gtk_window_new() handle the same arguments as gtk_window_new(). + * all: Allow XAppGtkWindows to be used in builder (ui) files and in Glade. + * update some files modified by the build + * pygobject/XApp.py: simplify and add an explanation as to why this file is here (to remind me in a year.) + * xapp-gtk-window.c: Add xid-based functions + * xapp-gtk-window: Move the xlib include into the .c file - it can cause namespace collisions (notably synaptic.) It's ok to treat "Window" as an unsigned long, because that's what they are. + + [ Clement Lefebvre ] + * xapp-gtk-window: Trap X errors when setting progress + * Add a VAPI file to support Vala + * Add a dependency on libxkbfile-dev for -dev pkg and build-dep. + + -- Clement Lefebvre Tue, 24 Oct 2017 12:06:19 +0100 + +xapp (1.0.3) sonya; urgency=medium + + [ Michael Webster ] + * Fix build + * xapp-kbd-layout-controller - update test script to reflect current api/intent + + [ Clement Lefebvre ] + * Review licensing + * Handle exceptions in usr/bin/upload-system-info + + [ JosephMcc ] + * Add a couple of symbolic pane visibility icons + * icons: Add an icon for regex-search + + [ leigh123linux ] + * switch to the correct python deps + + [ Michael Webster ] + * xapp-kbd-layout-controller.c: Allow up to 3 character labels. + + [ JosephMcc ] + * Complete our set of pane icons + * Add support for building gtk-doc + + [ leigh123linux ] + * Migrate away from gnome-common deprecated vars and macros + * Use python3 as all scripts are in python3 + + -- Clement Lefebvre Wed, 03 May 2017 11:27:21 +0100 + +xapp (1.0.2) serena; urgency=medium + + [ Clement Lefebvre ] + * Implement window blanking + * Continued implementation of monitor blanking + * Display: properly initialize values and add a function to know if monitors are blanked + + [ JosephMcc ] + * xapp-display.c: Add a missing cast + + [ Clement Lefebvre ] + * Added some symbolic icons needed by Xed + + [ JosephMcc ] + * icons: Redesign the xapp-searchbar icons + * formatting: Clean up code formatting + + [ Emmanuel ] + * properly declare variable used in for loops + + [ JosephMcc ] + * xapp-display: Add a missing cast + * xapp-display: Don't use deprecated gtk_widget_modify_bg + + [ Michael Webster ] + * debian: Fix multiarch location of typelib file, don't strip debug symbols. + * Add XAppKbdLayoutController - this is a wrapper around libgnomekbd api to provide unique icons for each layout. + * Update debian/control + * Cleanup some leftover dependencies, some unneeded files, clean up gir scanning. + + [ Clement Lefebvre ] + * Added /usr/bin/pastebin and /usr/bin/upload-system-info + * Pastebin: Added support for fpaste + * libxapp: Rename XAppDisplay -> XAppMonitorBlanker + * Create README.md + + [ leigh123linux ] + * Fix Warnings - * New upstream release (1.0.3). - * Drop upstream patches - * Use upstream's autogen script - * Add a debian/not-installed file - * Release to experimental + [ Michael Webster ] + * Rework XAppKbdLayoutController: - -- Maximiliano Curia Sun, 06 Aug 2017 17:31:56 +0200 + -- Clement Lefebvre Mon, 07 Nov 2016 15:56:44 +0000 -xapp (1.0.2-1) unstable; urgency=medium +xapp (1.0.1) sarah; urgency=medium * Initial version - * Added gnome-common-migration.patch - -- Margarita Manterola Tue, 06 Dec 2016 19:23:57 -0300 + -- Clement Lefebvre Sun, 21 Aug 2016 11:59:50 +0100 diff -Nru xapp-1.2.2/debian/clean xapp-1.4.5+cindy/debian/clean --- xapp-1.2.2/debian/clean 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/debian/clean 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1 @@ +debian/build/ \ No newline at end of file diff -Nru xapp-1.2.2/debian/compat xapp-1.4.5+cindy/debian/compat --- xapp-1.2.2/debian/compat 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/compat 2018-12-11 14:21:26.000000000 +0000 @@ -1 +1 @@ -11 +10 diff -Nru xapp-1.2.2/debian/control xapp-1.4.5+cindy/debian/control --- xapp-1.2.2/debian/control 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/control 2018-12-11 14:21:26.000000000 +0000 @@ -1,12 +1,9 @@ Source: xapp Section: x11 Priority: optional -Maintainer: Debian Cinnamon Team -Uploaders: - Maximiliano Curia , - Margarita Manterola , +Maintainer: Clement Lefebvre Build-Depends: - debhelper (>= 11.1~), + debhelper (>= 10), dh-python, dpkg-dev (>= 1.15.1), gobject-introspection (>= 0.10.2-1~), @@ -19,15 +16,12 @@ libgtk-3-dev (>= 3.3.16), libx11-dev, libxkbfile-dev, - meson (>= 0.40.0), + meson, python, python-gi-dev, python3, valac, -Standards-Version: 4.1.4 -Homepage: http://cinnamon.linuxmint.com/ -Vcs-Browser: https://salsa.debian.org/cinnamon-team/xapp -Vcs-Git: https://salsa.debian.org/cinnamon-team/xapp.git +Standards-Version: 3.9.6 Package: gir1.2-xapp-1.0 Section: introspection @@ -40,7 +34,16 @@ ${shlibs:Depends}, Description: Introspection data for XApp This package contains the introspection data for XApp. -Breaks: cinnamon (<< 3.8), cinnamon-screensaver (<< 3.8) + +Package: libxapp-dbg +Section: debug +Priority: extra +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: libxapp1 (= ${binary:Version}), ${misc:Depends} +Description: XApp library - debug symbols + This package contains the symbols files needed to debug the XApp library. Package: libxapp-dev Section: libdevel @@ -68,17 +71,20 @@ ${shlibs:Depends}, Description: XApp library This library is used by several Xapp apps. -Breaks: nemo (<< 3.8) Package: xapps-common Architecture: all Multi-Arch: foreign -Depends: python3, python3-gi, xdg-utils, ${misc:Depends}, ${python3:Depends} -Recommends: gist, inxi +Depends: + inxi, + python3, + python3-gi, + xdg-utils, + ${misc:Depends}, + ${python3:Depends}, Description: Common files for XApp desktop apps This package includes files that are shared between several XApp apps (i18n files and configuration schemas). -Breaks: cinnamon (<< 3.8) Package: xapps-doc Section: doc diff -Nru xapp-1.2.2/debian/copyright xapp-1.4.5+cindy/debian/copyright --- xapp-1.2.2/debian/copyright 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/copyright 2018-12-11 14:21:26.000000000 +0000 @@ -1,34 +1,21 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: xapps Source: https://github.com/linuxmint/xapps Files: * Copyright: 2016, Linux Mint -License: LGPL-3 +License: LGPL-3+ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License V3. + . + The complete text of the GNU Library General Public License can be found in + "/usr/share/common-licenses/LGPL-3". Files: files/usr/bin/xfce4-set-wallpaper Copyright: Weitian Leung License: GPL-3 - -License: LGPL-3 This program is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public License V3. - . - The complete text of the GNU Lesser General Public License version 3 can be - found in `/usr/share/common-licenses/LGPL-3'. - -License: GPL-3 - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, version 3 of the License. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . + modify it under the terms of the GNU General Public License V3. . - The complete text of the GNU General Public License version 3 can be found in - `/usr/share/common-licenses/GPL-3'. + The complete text of the GNU Library General Public License can be found in + "/usr/share/common-licenses/GPL-3". diff -Nru xapp-1.2.2/debian/libxapp1.install xapp-1.4.5+cindy/debian/libxapp1.install --- xapp-1.2.2/debian/libxapp1.install 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/libxapp1.install 2018-12-11 14:21:26.000000000 +0000 @@ -1,2 +1 @@ -usr/lib/*/libxapp.so.1 -usr/lib/*/libxapp.so.1.* +usr/lib/*/libxapp.so.1* diff -Nru xapp-1.2.2/debian/libxapp1.symbols xapp-1.4.5+cindy/debian/libxapp1.symbols --- xapp-1.2.2/debian/libxapp1.symbols 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/libxapp1.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -libxapp.so.1 libxapp1 #MINVER# - create_blanking_window@Base 1.2.0 - xapp_glade_catalog_init@Base 1.0.4 - xapp_gtk_window_get_type@Base 1.0.4 - xapp_gtk_window_new@Base 1.0.4 - xapp_gtk_window_set_icon_from_file@Base 1.0.4 - xapp_gtk_window_set_icon_name@Base 1.0.4 - xapp_gtk_window_set_progress@Base 1.0.4 - xapp_gtk_window_set_progress_pulse@Base 1.0.4 - xapp_kbd_layout_controller_get_all_names@Base 1.0.2 - xapp_kbd_layout_controller_get_current_flag_id@Base 1.0.2 - xapp_kbd_layout_controller_get_current_group@Base 1.0.2 - xapp_kbd_layout_controller_get_current_icon_name@Base 1.0.2 - xapp_kbd_layout_controller_get_current_name@Base 1.0.2 - xapp_kbd_layout_controller_get_current_short_group_label@Base 1.0.2 - xapp_kbd_layout_controller_get_current_variant_label@Base 1.0.2 - xapp_kbd_layout_controller_get_enabled@Base 1.0.2 - xapp_kbd_layout_controller_get_flag_id_for_group@Base 1.0.2 - xapp_kbd_layout_controller_get_icon_name_for_group@Base 1.0.2 - xapp_kbd_layout_controller_get_short_group_label_for_group@Base 1.0.2 - xapp_kbd_layout_controller_get_type@Base 1.0.2 - xapp_kbd_layout_controller_get_variant_label_for_group@Base 1.0.2 - xapp_kbd_layout_controller_new@Base 1.0.2 - xapp_kbd_layout_controller_next_group@Base 1.0.2 - xapp_kbd_layout_controller_previous_group@Base 1.0.2 - xapp_kbd_layout_controller_render_cairo_subscript@Base 1.0.2 - xapp_kbd_layout_controller_set_current_group@Base 1.0.2 - xapp_monitor_blanker_are_monitors_blanked@Base 1.0.2 - xapp_monitor_blanker_blank_other_monitors@Base 1.0.2 - xapp_monitor_blanker_get_type@Base 1.0.2 - xapp_monitor_blanker_new@Base 1.0.2 - xapp_monitor_blanker_unblank_monitors@Base 1.0.2 - xapp_preferences_window_add_button@Base 1.2.0 - xapp_preferences_window_add_page@Base 1.2.0 - xapp_preferences_window_get_type@Base 1.2.0 - xapp_preferences_window_new@Base 1.2.0 - xapp_set_window_icon_from_file@Base 1.0.4 - xapp_set_window_icon_name@Base 1.0.4 - xapp_set_window_progress@Base 1.0.4 - xapp_set_window_progress_pulse@Base 1.0.4 - xapp_set_xid_icon_from_file@Base 1.0.4 - xapp_set_xid_icon_name@Base 1.0.4 - xapp_set_xid_progress@Base 1.0.4 - xapp_set_xid_progress_pulse@Base 1.0.4 - diff -Nru xapp-1.2.2/debian/not-installed xapp-1.4.5+cindy/debian/not-installed --- xapp-1.2.2/debian/not-installed 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/not-installed 2018-12-11 14:21:26.000000000 +0000 @@ -1,9 +1,3 @@ -# There are other packages that deal with this -usr/bin/pastebin -# Uses the previous command and inxi -usr/bin/upload-system-info -# This should be handled by xfce -usr/bin/xfce4-set-wallpaper # We are not using libtool files usr/lib/*/libxapp.la # python gi override files that must not install diff -Nru xapp-1.2.2/debian/rules xapp-1.4.5+cindy/debian/rules --- xapp-1.2.2/debian/rules 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/rules 2018-12-11 14:21:26.000000000 +0000 @@ -1,15 +1,28 @@ #!/usr/bin/make -f -export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed +# FIXME: much of this can be removed once we move off of xenial/mint 18 base support +# meson support is baked in %: dh $@ --with=gir,python2,python3 override_dh_auto_configure: - dh_auto_configure -- \ - -D docs=true \ - -D deprecated_warnings=false - -# --list-missing will be default in compat 12 -override_dh_missing: - dh_missing --list-missing + mkdir -p debian/build + meson debian/build \ + --prefix=/usr \ + --buildtype=plain \ + -D docs=true \ + -D deprecated_warnings=false + +override_dh_strip: + dh_strip --dbg-package=libxapp-dbg + +override_dh_auto_build: + ninja -C debian/build + +override_dh_auto_test: + ninja -C debian/build test + +override_dh_auto_install: + DESTDIR=${CURDIR}/debian/tmp \ + ninja -C debian/build install diff -Nru xapp-1.2.2/debian/source/format xapp-1.4.5+cindy/debian/source/format --- xapp-1.2.2/debian/source/format 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/source/format 2018-12-11 14:21:26.000000000 +0000 @@ -1 +1 @@ -3.0 (quilt) +3.0 (native) diff -Nru xapp-1.2.2/debian/watch xapp-1.4.5+cindy/debian/watch --- xapp-1.2.2/debian/watch 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/watch 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -version=3 -opts="dversionmangle=s/\+repack//;s/\+dfsg//;s/\+up[0-9]//,filenamemangle=s/.*\/(.*)/xapp-$1/" \ - https://github.com/linuxmint/xapps/tags .*/v?(\d.*)\.(?:tgz|tar\.(?:gz|bz2|xz)) diff -Nru xapp-1.2.2/debian/xapps-common.install xapp-1.4.5+cindy/debian/xapps-common.install --- xapp-1.2.2/debian/xapps-common.install 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/xapps-common.install 2018-12-11 14:21:26.000000000 +0000 @@ -1,3 +1,4 @@ -usr/bin/ usr/share/xapps-common/ usr/share/glib-2.0/schemas +usr/bin/ usr/share/icons +usr/share/locale diff -Nru xapp-1.2.2/debian/xapps-doc.install xapp-1.4.5+cindy/debian/xapps-doc.install --- xapp-1.2.2/debian/xapps-doc.install 2018-08-07 12:51:38.000000000 +0000 +++ xapp-1.4.5+cindy/debian/xapps-doc.install 2018-12-11 14:21:26.000000000 +0000 @@ -1 +1 @@ -usr/share/gtk-doc +/usr/share/gtk-doc \ No newline at end of file diff -Nru xapp-1.2.2/docs/xapp-docs.xml xapp-1.4.5+cindy/docs/xapp-docs.xml --- xapp-1.2.2/docs/xapp-docs.xml 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/docs/xapp-docs.xml 2018-12-11 14:21:26.000000000 +0000 @@ -16,10 +16,13 @@ API reference + + + - + diff -Nru xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-behavior-symbolic.svg xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-behavior-symbolic.svg --- xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-behavior-symbolic.svg 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-behavior-symbolic.svg 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,62 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff -Nru xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-display-symbolic.svg xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-display-symbolic.svg --- xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-display-symbolic.svg 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-display-symbolic.svg 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,62 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff -Nru xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-plugins-symbolic.svg xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-plugins-symbolic.svg --- xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-plugins-symbolic.svg 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-plugins-symbolic.svg 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,62 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff -Nru xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-preview-symbolic.svg xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-preview-symbolic.svg --- xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-preview-symbolic.svg 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-preview-symbolic.svg 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,62 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff -Nru xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-toolbar-symbolic.svg xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-toolbar-symbolic.svg --- xapp-1.2.2/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-toolbar-symbolic.svg 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/files/usr/share/icons/hicolor/scalable/categories/xapp-prefs-toolbar-symbolic.svg 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + Gnome Symbolic Icon Theme + + + + + + diff -Nru xapp-1.2.2/libxapp/meson.build xapp-1.4.5+cindy/libxapp/meson.build --- xapp-1.2.2/libxapp/meson.build 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/meson.build 2018-12-11 14:21:26.000000000 +0000 @@ -11,27 +11,41 @@ xapp_headers = [ 'xapp-gtk-window.h', + 'xapp-icon-chooser-button.h', + 'xapp-icon-chooser-dialog.h', 'xapp-kbd-layout-controller.h', 'xapp-monitor-blanker.h', - 'xapp-preferences-window.h' + 'xapp-preferences-window.h', + 'xapp-stack-sidebar.h', ] xapp_sources = [ 'xapp-glade-catalog.c', 'xapp-gtk-window.c', + 'xapp-icon-chooser-button.c', + 'xapp-icon-chooser-dialog.c', 'xapp-kbd-layout-controller.c', 'xapp-monitor-blanker.c', 'xapp-preferences-window.c', + 'xapp-stack-sidebar.c', ] +xapp_enums = gnome.mkenums('xapp-enums', + sources : xapp_headers, + c_template : 'xapp-enums.c.template', + h_template : 'xapp-enums.h.template', + identifier_prefix : 'XApp', + symbol_prefix : 'xapp' +) + libxapp = library('xapp', - sources : xapp_headers + xapp_sources, + sources : xapp_headers + xapp_sources + xapp_enums, include_directories: [top_inc], version: meson.project_version(), soversion: '1', dependencies: libdeps, c_args: ['-Wno-declaration-after-statement'], - link_args: [ '-Wl,-Bsymbolic', '-Wl,-z,relro', '-Wl,-z,now', ], + link_args: [ '-Wl,-Bsymbolic', '-Wl,-z,relro', '-Wl,-z,now', '-lm'], install: true ) @@ -75,4 +89,4 @@ sources: gir[0], metadata_dirs: meson.current_source_dir(), install: true -) \ No newline at end of file +) diff -Nru xapp-1.2.2/libxapp/xapp-enums.c.template xapp-1.4.5+cindy/libxapp/xapp-enums.c.template --- xapp-1.2.2/libxapp/xapp-enums.c.template 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-enums.c.template 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,44 @@ +/*** BEGIN file-header ***/ + +#include "config.h" +#include "xapp-enums.h" +#include "xapp-icon-chooser-dialog.h" + +#define C_ENUM(v) ((gint) v) +#define C_FLAGS(v) ((guint) v) + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@basename@" */ + +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType +@enum_name@_get_type (void) +{ + static volatile gsize gtype_id = 0; + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { C_ENUM(@VALUENAME@), "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + if (g_once_init_enter (>ype_id)) { + GType new_type = g_@type@_register_static ("@EnumName@", values); + g_once_init_leave (>ype_id, new_type); + } + return (GType) gtype_id; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ + +/*** END file-tail ***/ diff -Nru xapp-1.2.2/libxapp/xapp-enums.h.template xapp-1.4.5+cindy/libxapp/xapp-enums.h.template --- xapp-1.2.2/libxapp/xapp-enums.h.template 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-enums.h.template 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,24 @@ +/*** BEGIN file-header ***/ +#ifndef __XAPP_ENUMS_H__ +#define __XAPP_ENUMS_H__ + +#include + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@basename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void); +#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* __XAPP_ENUMS_H__ */ +/*** END file-tail ***/ diff -Nru xapp-1.2.2/libxapp/xapp-glade-catalog.c xapp-1.4.5+cindy/libxapp/xapp-glade-catalog.c --- xapp-1.2.2/libxapp/xapp-glade-catalog.c 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-glade-catalog.c 2018-12-11 14:21:26.000000000 +0000 @@ -2,6 +2,8 @@ #include #include "xapp-gtk-window.h" +#include "xapp-icon-chooser-button.h" +#include "xapp-stack-sidebar.h" void xapp_glade_catalog_init (const gchar *catalog_name); @@ -10,4 +12,6 @@ xapp_glade_catalog_init (const gchar *catalog_name) { g_type_ensure (XAPP_TYPE_GTK_WINDOW); + g_type_ensure (XAPP_TYPE_ICON_CHOOSER_BUTTON); + g_type_ensure (XAPP_TYPE_STACK_SIDEBAR); } diff -Nru xapp-1.2.2/libxapp/xapp-glade-catalog.xml xapp-1.4.5+cindy/libxapp/xapp-glade-catalog.xml --- xapp-1.2.2/libxapp/xapp-glade-catalog.xml 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-glade-catalog.xml 2018-12-11 14:21:26.000000000 +0000 @@ -4,9 +4,15 @@ + + + + diff -Nru xapp-1.2.2/libxapp/xapp-gtk-window.c xapp-1.4.5+cindy/libxapp/xapp-gtk-window.c --- xapp-1.2.2/libxapp/xapp-gtk-window.c 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-gtk-window.c 2018-12-11 14:21:26.000000000 +0000 @@ -61,13 +61,6 @@ gboolean progress_pulse; } XAppGtkWindowPrivate; -struct _XAppGtkWindow -{ - GtkWindow parent_object; - - XAppGtkWindowPrivate *priv; -}; - G_DEFINE_TYPE_WITH_PRIVATE (XAppGtkWindow, xapp_gtk_window, GTK_TYPE_WINDOW) static gboolean @@ -340,7 +333,7 @@ xapp_gtk_window_realize (GtkWidget *widget) { XAppGtkWindow *window = XAPP_GTK_WINDOW (widget); - XAppGtkWindowPrivate *priv = window->priv; + XAppGtkWindowPrivate *priv = xapp_gtk_window_get_instance_private (window); GTK_WIDGET_CLASS (xapp_gtk_window_parent_class)->realize (widget); @@ -358,7 +351,7 @@ xapp_gtk_window_finalize (GObject *object) { XAppGtkWindow *window = XAPP_GTK_WINDOW (object); - XAppGtkWindowPrivate *priv = window->priv; + XAppGtkWindowPrivate *priv = xapp_gtk_window_get_instance_private (window); clear_icon_strings (priv); @@ -369,10 +362,7 @@ xapp_gtk_window_init (XAppGtkWindow *window) { XAppGtkWindowPrivate *priv; - - window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window, XAPP_TYPE_GTK_WINDOW, XAppGtkWindowPrivate); - - priv = window->priv; + priv = xapp_gtk_window_get_instance_private (window); priv->icon_name = NULL; priv->icon_path = NULL; @@ -421,7 +411,9 @@ { g_return_if_fail (XAPP_IS_GTK_WINDOW (window)); - set_icon_name_internal (GTK_WINDOW (window), window->priv, icon_name); + XAppGtkWindowPrivate *priv = xapp_gtk_window_get_instance_private (window); + + set_icon_name_internal (GTK_WINDOW (window), priv, icon_name); } /** @@ -443,7 +435,9 @@ { g_return_if_fail (XAPP_IS_GTK_WINDOW (window)); - set_icon_from_file_internal (GTK_WINDOW (window), window->priv, file_name, error); + XAppGtkWindowPrivate *priv = xapp_gtk_window_get_instance_private (window); + + set_icon_from_file_internal (GTK_WINDOW (window), priv, file_name, error); } /** @@ -469,7 +463,9 @@ { g_return_if_fail (XAPP_IS_GTK_WINDOW (window)); - set_progress_internal (GTK_WINDOW (window), window->priv, progress); + XAppGtkWindowPrivate *priv = xapp_gtk_window_get_instance_private (window); + + set_progress_internal (GTK_WINDOW (window), priv, progress); } /** @@ -494,7 +490,9 @@ g_return_if_fail (XAPP_IS_GTK_WINDOW (window)); g_return_if_fail (XAPP_IS_GTK_WINDOW (window)); - set_progress_pulse_internal (GTK_WINDOW (window), window->priv, pulse); + XAppGtkWindowPrivate *priv = xapp_gtk_window_get_instance_private (window); + + set_progress_pulse_internal (GTK_WINDOW (window), priv, pulse); } diff -Nru xapp-1.2.2/libxapp/xapp-gtk-window.h xapp-1.4.5+cindy/libxapp/xapp-gtk-window.h --- xapp-1.2.2/libxapp/xapp-gtk-window.h 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-gtk-window.h 2018-12-11 14:21:26.000000000 +0000 @@ -10,7 +10,14 @@ #define XAPP_TYPE_GTK_WINDOW (xapp_gtk_window_get_type ()) -G_DECLARE_FINAL_TYPE (XAppGtkWindow, xapp_gtk_window, XAPP, GTK_WINDOW, GtkWindow) +G_DECLARE_DERIVABLE_TYPE (XAppGtkWindow, xapp_gtk_window, XAPP, GTK_WINDOW, GtkWindow) + +struct _XAppGtkWindowClass +{ + GtkWindowClass parent_class; + + gpointer padding[12]; +}; /* Class */ GtkWidget *xapp_gtk_window_new (GtkWindowType type); diff -Nru xapp-1.2.2/libxapp/xapp-icon-chooser-button.c xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-button.c --- xapp-1.2.2/libxapp/xapp-icon-chooser-button.c 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-button.c 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,346 @@ +#include +#include "xapp-icon-chooser-button.h" +#include + +#define XAPP_BUTTON_ICON_SIZE_DEFAULT GTK_ICON_SIZE_DIALOG + +/** + * SECTION:xapp-icon-chooser-button + * @Short_description: A button for selecting an icon + * @Title: XAppIconChooserButton + * + * The XAppIconChooserButton creates a button so that + * the user can select an icon. When the button is clicked + * it will open an XAppIconChooserDialog. The currently + * selected icon will be displayed as the button image. + */ + +typedef struct +{ + GtkWidget *image; + XAppIconChooserDialog *dialog; + GtkIconSize icon_size; + gchar *icon_string; +} XAppIconChooserButtonPrivate; + +struct _XAppIconChooserButton +{ + GtkButton parent_instance; +}; + +enum +{ + PROP_0, + PROP_ICON_SIZE, + PROP_ICON, + N_PROPERTIES +}; + +static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, }; + +G_DEFINE_TYPE_WITH_PRIVATE (XAppIconChooserButton, xapp_icon_chooser_button, GTK_TYPE_BUTTON) + +static void +on_clicked (GtkButton *button) +{ + XAppIconChooserButtonPrivate *priv; + GtkResponseType response; + + priv = xapp_icon_chooser_button_get_instance_private (XAPP_ICON_CHOOSER_BUTTON (button)); + + gtk_window_set_transient_for (GTK_WINDOW (priv->dialog), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (button)))); + + if (priv->icon_string == NULL) + { + response = xapp_icon_chooser_dialog_run (priv->dialog); + } + else + { + response = xapp_icon_chooser_dialog_run_with_icon (priv->dialog, priv->icon_string); + } + + if (response == GTK_RESPONSE_OK) + { + gchar *icon; + + icon = xapp_icon_chooser_dialog_get_icon_string (priv->dialog); + xapp_icon_chooser_button_set_icon (XAPP_ICON_CHOOSER_BUTTON (button), icon); + } +} + +void +xapp_icon_chooser_button_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + XAppIconChooserButton *button; + XAppIconChooserButtonPrivate *priv; + + button = XAPP_ICON_CHOOSER_BUTTON (object); + priv = xapp_icon_chooser_button_get_instance_private (button); + + switch (prop_id) + { + case PROP_ICON_SIZE: + g_value_set_enum (value, priv->icon_size); + break; + case PROP_ICON: + g_value_set_string (value, priv->icon_string); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +void +xapp_icon_chooser_button_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + XAppIconChooserButton *button; + XAppIconChooserButtonPrivate *priv; + + button = XAPP_ICON_CHOOSER_BUTTON (object); + priv = xapp_icon_chooser_button_get_instance_private (button); + + switch (prop_id) + { + case PROP_ICON_SIZE: + xapp_icon_chooser_button_set_icon_size (button, g_value_get_enum (value)); + break; + case PROP_ICON: + xapp_icon_chooser_button_set_icon (button, g_value_get_string (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +xapp_icon_chooser_button_init (XAppIconChooserButton *button) +{ + XAppIconChooserButtonPrivate *priv; + + priv = xapp_icon_chooser_button_get_instance_private (button); + + priv->image = gtk_image_new_from_icon_name ("unkown", XAPP_BUTTON_ICON_SIZE_DEFAULT); + gtk_button_set_image (GTK_BUTTON (button), priv->image); + + gtk_widget_set_hexpand (GTK_WIDGET (button), FALSE); + gtk_widget_set_vexpand (GTK_WIDGET (button), FALSE); + gtk_widget_set_halign (GTK_WIDGET (button), GTK_ALIGN_CENTER); + gtk_widget_set_valign (GTK_WIDGET (button), GTK_ALIGN_CENTER); + + xapp_icon_chooser_button_set_icon_size (button, -1); + + priv->dialog = xapp_icon_chooser_dialog_new (); +} + +static void +xapp_icon_chooser_button_class_init (XAppIconChooserButtonClass *klass) +{ + GtkBindingSet *binding_set; + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkButtonClass *button_class = GTK_BUTTON_CLASS (klass); + + object_class->get_property = xapp_icon_chooser_button_get_property; + object_class->set_property = xapp_icon_chooser_button_set_property; + + button_class->clicked = on_clicked; + + /** + * XAppIconChooserButton:icon-size: + * + * The size to use when displaying the icon. + */ + obj_properties[PROP_ICON_SIZE] = + g_param_spec_enum ("icon-size", + _("Icon size"), + _("The preferred icon size."), + GTK_TYPE_ICON_SIZE, + GTK_ICON_SIZE_DND, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY); + + /** + * XAppIconChooserButton:icon: + * + * The preferred size to use when looking up icons. This only works with icon names. + * Additionally, there is no guarantee that a selected icon name will exist in a + * particular size. + */ + obj_properties[PROP_ICON] = + g_param_spec_string ("icon", + _("Icon"), + _("The string representing the icon."), + "", + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY); + + g_object_class_install_properties (object_class, N_PROPERTIES, obj_properties); +} + +/** + * xapp_icon_chooser_button_new: + * + * Creates a new #XAppIconChooserButton and sets its icon to @icon. + * + * Returns: a newly created #XAppIconChooserButton + */ +XAppIconChooserButton * +xapp_icon_chooser_button_new (void) +{ + return g_object_new (XAPP_TYPE_ICON_CHOOSER_BUTTON, NULL); +} + +/** + * xapp_icon_chooser_button_new_with_size: + * @icon_size: the size of icon to use in the button, or NULL to use the default value. + * + * Creates a new #XAppIconChooserButton, and sets the sizes of the button image and the icons in + * the dialog. Note that xapp_icon_chooser_button_new_with_size (NULL, NULL) is the same as calling + * xapp_icon_chooser_button_new (). + * + * Returns: a newly created #XAppIconChooserButton + */ +XAppIconChooserButton * +xapp_icon_chooser_button_new_with_size (GtkIconSize icon_size) +{ + XAppIconChooserButton *button; + + button = g_object_new (XAPP_TYPE_ICON_CHOOSER_BUTTON, NULL); + + xapp_icon_chooser_button_set_icon_size (button, icon_size); + + return button; +} + +/** + * xapp_icon_chooser_button_set_icon_size: + * @button: a #XAppIconChooserButton + * @icon_size: the size of icon to use in the button, or -1 to use the default value. + * + * Sets the icon size used in the button. + */ +void +xapp_icon_chooser_button_set_icon_size (XAppIconChooserButton *button, + GtkIconSize icon_size) +{ + XAppIconChooserButtonPrivate *priv; + gint width, height; + gchar *icon; + + priv = xapp_icon_chooser_button_get_instance_private (button); + + if (icon_size == -1) + { + priv->icon_size = XAPP_BUTTON_ICON_SIZE_DEFAULT; + } + else + { + priv->icon_size = icon_size; + } + + gtk_icon_size_lookup (priv->icon_size, &width, &height); + gtk_image_set_pixel_size (GTK_IMAGE (priv->image), width); + + // We need to make sure the icon gets resized if it's a file path. Since + // this means regenerating the pixbuf anyway, it's easier to just call + // xapp_icon_chooser_button_set_icon, but we need to dup the string so + // it doens't get freed before it gets used. + icon = g_strdup(priv->icon_string); + xapp_icon_chooser_button_set_icon (button, icon); + g_free (icon); + + g_object_notify (G_OBJECT (button), "icon-size"); +} + +/** + * xapp_icon_chooser_button_get_icon: + * @button: a #XAppIconChooserButton + * + * Gets the icon from the #XAppIconChooserButton. + * + * returns: a string representing the icon. This may be an icon name or a file path. + */ +const gchar* +xapp_icon_chooser_button_get_icon (XAppIconChooserButton *button) +{ + XAppIconChooserButtonPrivate *priv; + + priv = xapp_icon_chooser_button_get_instance_private (button); + + return priv->icon_string; +} + +/** + * xapp_icon_chooser_button_set_icon: + * @button: a #XAppIconChooserButton + * @icon: (nullable): a string representing the icon to be set. This may be an icon name or a file path. + * + * Sets the icon on the #XAppIconChooserButton. + */ +void +xapp_icon_chooser_button_set_icon (XAppIconChooserButton *button, + const gchar *icon) +{ + XAppIconChooserButtonPrivate *priv; + const gchar *icon_string; + + priv = xapp_icon_chooser_button_get_instance_private (button); + + if (priv->icon_string != NULL) + { + g_free (priv->icon_string); + } + + if (icon == NULL) + { + priv->icon_string = NULL; + icon_string = "unkown"; + } + else + { + priv->icon_string = g_strdup (icon); + icon_string = icon; + } + + if (g_strrstr (icon_string, "/")) + { + GdkPixbuf *pixbuf; + gint width, height; + + gtk_icon_size_lookup (priv->icon_size, &width, &height); + + pixbuf = gdk_pixbuf_new_from_file_at_size (icon_string, width, height, NULL); + + gtk_image_set_from_pixbuf (GTK_IMAGE (priv->image), pixbuf); + } + else + { + gtk_image_set_from_icon_name (GTK_IMAGE (priv->image), icon_string, priv->icon_size); + } + + g_object_notify (G_OBJECT (button), "icon"); +} + +/** + * xapp_icon_chooser_button_get_dialog: + * @button: a #XAppIconChooserButton + * + * Gets a reference to the icon chooser dialog for the #XAppIconChooserButton. + * This is useful for setting properties on the dialog. + * + * Returns: (transfer none): the #XAppIconChooserDialog + */ +XAppIconChooserDialog * +xapp_icon_chooser_button_get_dialog (XAppIconChooserButton *button) +{ + XAppIconChooserButtonPrivate *priv; + + priv = xapp_icon_chooser_button_get_instance_private (button); + + return priv->dialog; +} diff -Nru xapp-1.2.2/libxapp/xapp-icon-chooser-button.h xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-button.h --- xapp-1.2.2/libxapp/xapp-icon-chooser-button.h 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-button.h 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,30 @@ +#ifndef _XAPP_ICON_CHOOSER_BUTTON_H_ +#define _XAPP_ICON_CHOOSER_BUTTON_H_ + +#include +#include +#include "xapp-icon-chooser-dialog.h" +#include "xapp-enums.h" + +G_BEGIN_DECLS + +#define XAPP_TYPE_ICON_CHOOSER_BUTTON (xapp_icon_chooser_button_get_type ()) + +G_DECLARE_FINAL_TYPE (XAppIconChooserButton, xapp_icon_chooser_button, XAPP, ICON_CHOOSER_BUTTON, GtkButton) + +XAppIconChooserButton * xapp_icon_chooser_button_new (void); + +XAppIconChooserButton * xapp_icon_chooser_button_new_with_size (GtkIconSize icon_size); + +void xapp_icon_chooser_button_set_icon_size (XAppIconChooserButton *button, + GtkIconSize icon_size); + +void xapp_icon_chooser_button_set_icon (XAppIconChooserButton *button, + const gchar *icon); + +const gchar* xapp_icon_chooser_button_get_icon (XAppIconChooserButton *button); +XAppIconChooserDialog * xapp_icon_chooser_button_get_dialog (XAppIconChooserButton *button); + +G_END_DECLS + +#endif /* _XAPP_ICON_CHOOSER_DIALOG_H_ */ diff -Nru xapp-1.2.2/libxapp/xapp-icon-chooser-dialog.c xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-dialog.c --- xapp-1.2.2/libxapp/xapp-icon-chooser-dialog.c 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-dialog.c 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,1917 @@ +#include +#include +#include +#include "xapp-enums.h" +#include "xapp-icon-chooser-dialog.h" +#include "xapp-stack-sidebar.h" +#include +#include + +#define DEBUG_REFS 0 +#define DEBUG_ICON_THEME 0 + +/** + * SECTION:xapp-icon-chooser-dialog + * @Short_description: A dialog for selecting an icon + * @Title: XAppIconChooserDialog + * + * The XAppIconChooserDialog creates a dialog so that + * the user can select an icon. It provides the ability + * to browse by category, search by icon name, or select + * from a specific file. + */ + +typedef struct +{ + const gchar *name; /* This is a translation which doesn't get freed */ + GList *icons; + GList *iter; + GtkListStore *model; +} IconCategoryInfo; + +typedef struct +{ + GtkResponseType response; + XAppIconSize icon_size; + GtkListStore *category_list; + GtkListStore *search_icon_store; + GFileEnumerator *search_file_enumerator; + GCancellable *cancellable; + GList *full_icon_list; + GList *search_iter; + GHashTable *categories; + GHashTable *pixbufs_by_name; + GtkWidget *search_bar; + GtkWidget *icon_view; + GtkWidget *list_box; + GtkWidget *select_button; + GtkWidget *browse_button; + GtkWidget *action_area; + GtkWidget *loading_bar; + gchar *icon_string; + gchar *current_text; + gulong search_changed_id; + gboolean allow_paths; + IconCategoryInfo *current_category; +} XAppIconChooserDialogPrivate; + +struct _XAppIconChooserDialog +{ + XAppGtkWindow parent_instance; +}; + +typedef struct +{ + XAppIconChooserDialog *dialog; + GtkListStore *model; + IconCategoryInfo *category_info; + GCancellable *cancellable; + GdkPixbuf *pixbuf; + const gchar *name; + gboolean chunk_end; +} NamedIconInfoLoadCallbackInfo; + +typedef struct +{ + XAppIconChooserDialog *dialog; + GtkListStore *model; + GCancellable *cancellable; + GFileEnumerator *enumerator; + gchar *short_name; + gchar *long_name; + gboolean chunk_end; +} FileIconInfoLoadCallbackInfo; + +typedef struct +{ + const gchar *name; + const gchar *contexts[5]; +} IconCategoryDefinition; + +static IconCategoryDefinition categories[] = { + // Category name context names + { + N_("Actions"), { "Actions", NULL } + }, + { + N_("Applications"), { "Applications", "Apps", NULL } + }, + { + N_("Categories"), { "Categories", NULL } + }, + { + N_("Devices"), { "Devices", NULL } + }, + { + N_("Emblems"), { "Emblems", NULL } + }, + { + N_("Emoji"), { "Emotes", NULL } + }, + { + N_("Mime types"), { "MimeTypes", "Mimetypes", NULL } + }, + { + N_("Places"), { "Places", NULL } + }, + { + N_("Status"), { "Status", "Notifications", NULL } + }, + { + N_("Other"), { "Panel", NULL } + } +}; + +enum +{ + CLOSE, + SELECT, + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_ICON_SIZE, + PROP_ALLOW_PATHS, + N_PROPERTIES +}; + +enum +{ + COLUMN_DISPLAY_NAME, + COLUMN_FULL_NAME, + COLUMN_PIXBUF, +}; + +static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, }; + +static guint signals[LAST_SIGNAL] = {0, }; + +G_DEFINE_TYPE_WITH_PRIVATE (XAppIconChooserDialog, xapp_icon_chooser_dialog, XAPP_TYPE_GTK_WINDOW) + +static void on_category_selected (GtkListBox *list_box, + XAppIconChooserDialog *dialog); + +static void on_search_text_changed (GtkSearchEntry *entry, + XAppIconChooserDialog *dialog); + +static void on_icon_view_selection_changed (GtkIconView *icon_view, + gpointer user_data); + +static void on_icon_store_icons_added (GtkTreeModel *tree_model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer user_data); + +static void on_browse_button_clicked (GtkButton *button, + gpointer user_data); + +static void on_select_button_clicked (GtkButton *button, + gpointer user_data); + +static void on_cancel_button_clicked (GtkButton *button, + gpointer user_data); + +static gboolean on_search_bar_key_pressed (GtkWidget *widget, + GdkEvent *event, + gpointer user_data); + +static gboolean on_delete_event (GtkWidget *widget, + GdkEventAny *event); + +static gboolean on_select_event (XAppIconChooserDialog *dialog, + GdkEventAny *event); + +static void on_icon_view_item_activated (GtkIconView *iconview, + GtkTreePath *path, + gpointer user_data); + +static void load_categories (XAppIconChooserDialog *dialog); + +static void load_icons_for_category (XAppIconChooserDialog *dialog, + IconCategoryInfo *category_info, + guint icon_size); + +static void search_path (XAppIconChooserDialog *dialog, + const gchar *path_string, + GtkListStore *icon_store); + +static void search_icon_name (XAppIconChooserDialog *dialog, + const gchar *name_string, + GtkListStore *icon_store); + +static gint list_box_sort (GtkListBoxRow *row1, + GtkListBoxRow *row2, + gpointer user_data); + +static gint search_model_sort (GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + gpointer user_data); + +static void +free_category_info (IconCategoryInfo *category_info) +{ + g_list_free_full (category_info->icons, g_free); + + g_clear_object (&category_info->model); + + g_free (category_info); +} + +static void +free_file_info (FileIconInfoLoadCallbackInfo *file_info) +{ + g_object_unref (file_info->cancellable); + + g_object_unref (file_info->enumerator); + + g_free (file_info->short_name); + g_free (file_info->long_name); + + g_free (file_info); +} + +static void +free_named_info (NamedIconInfoLoadCallbackInfo *named_info) +{ + g_object_unref (named_info->cancellable); + + g_clear_object (&named_info->pixbuf); + + g_free (named_info); +} + +#if DEBUG_REFS +static void +on_cancellable_finalize (gpointer data, + GObject *object) +{ + g_printerr ("Cancellable Finalize: %p\n", object); +} + +static void +on_enumerator_finalize (gpointer data, + GObject *object) +{ + g_printerr ("Enumerator Finalize: %p\n", object); +} +#endif + +static void +on_enumerator_toggle_ref_called (gpointer data, + GObject *object, + gboolean is_last_ref) +{ + XAppIconChooserDialog *dialog; + XAppIconChooserDialogPrivate *priv; + + dialog = XAPP_ICON_CHOOSER_DIALOG (data); + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + if (is_last_ref) + { + g_object_remove_toggle_ref (object, + (GToggleNotify) on_enumerator_toggle_ref_called, + dialog); + + priv->search_file_enumerator = NULL; + } +} + +static void +clear_search_state (XAppIconChooserDialog *dialog) +{ + XAppIconChooserDialogPrivate *priv; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + g_cancellable_cancel (priv->cancellable); + g_clear_object (&priv->cancellable); + + g_clear_object (&priv->search_file_enumerator); + + gtk_widget_hide (priv->loading_bar); + priv->search_iter = NULL; +} + +void +xapp_icon_chooser_dialog_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + XAppIconChooserDialog *dialog; + XAppIconChooserDialogPrivate *priv; + + dialog = XAPP_ICON_CHOOSER_DIALOG (object); + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + switch (prop_id) + { + case PROP_ICON_SIZE: + g_value_set_enum (value, priv->icon_size); + break; + case PROP_ALLOW_PATHS: + g_value_set_boolean (value, priv->allow_paths); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +void +xapp_icon_chooser_dialog_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + XAppIconChooserDialog *dialog; + XAppIconChooserDialogPrivate *priv; + + dialog = XAPP_ICON_CHOOSER_DIALOG (object); + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + switch (prop_id) + { + case PROP_ICON_SIZE: + priv->icon_size = g_value_get_enum (value); + break; + case PROP_ALLOW_PATHS: + priv->allow_paths = g_value_get_boolean (value); + if (priv->allow_paths) + { + gtk_widget_show (priv->browse_button); + gtk_widget_set_no_show_all (priv->browse_button, FALSE); + } + else + { + gtk_widget_hide (priv->browse_button); + gtk_widget_set_no_show_all (priv->browse_button, TRUE); + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +xapp_icon_chooser_dialog_dispose (GObject *object) +{ + XAppIconChooserDialog *dialog; + XAppIconChooserDialogPrivate *priv; + + dialog = XAPP_ICON_CHOOSER_DIALOG (object); + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + if (priv->categories != NULL) + { + g_hash_table_destroy (priv->categories); + priv->categories = NULL; + } + + if (priv->pixbufs_by_name != NULL) + { + g_hash_table_destroy (priv->pixbufs_by_name); + priv->pixbufs_by_name = NULL; + } + + g_clear_pointer (&priv->icon_string, g_free); + g_clear_pointer (&priv->current_text, g_free); + g_clear_object (&priv->cancellable); + + G_OBJECT_CLASS (xapp_icon_chooser_dialog_parent_class)->dispose (object); +} + +static void +xapp_icon_chooser_dialog_init (XAppIconChooserDialog *dialog) +{ + XAppIconChooserDialogPrivate *priv; + GtkWidget *main_box; + GtkWidget *secondary_box; + GtkWidget *toolbar; + GtkWidget *overlay; + GtkWidget *spinner; + GtkWidget *spinner_label; + GtkWidget *loading_bar_box; + GtkToolItem *tool_item; + GtkWidget *toolbar_box; + GtkWidget *right_box; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + GtkStyleContext *style; + GtkSizeGroup *button_size_group; + GtkWidget *cancel_button; + GtkWidget *button_area; + GtkWidget *selection; + GtkWidget *scrolled_window; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + priv->icon_size = XAPP_ICON_SIZE_32; + priv->categories = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) free_category_info); + + /* pixbufs_by_name will save pixbufs generated by icon name, so they can avoid the load_pixbuf call + * when they're reloaded (like re-selecting a previously selected category) */ + priv->pixbufs_by_name = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); + + priv->response = GTK_RESPONSE_NONE; + priv->icon_string = NULL; + priv->current_text = NULL; + priv->cancellable = NULL; + priv->allow_paths = TRUE; + priv->full_icon_list = NULL; + + priv->search_icon_store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF); + + gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (priv->search_icon_store), + COLUMN_DISPLAY_NAME, + search_model_sort, + priv, + NULL); + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (priv->search_icon_store), + COLUMN_DISPLAY_NAME, + GTK_SORT_ASCENDING); + + g_signal_connect (priv->search_icon_store, "row-inserted", + G_CALLBACK (on_icon_store_icons_added), dialog); + + gtk_window_set_default_size (GTK_WINDOW (dialog), 600, 450); + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog), TRUE); + gtk_window_set_type_hint (GTK_WINDOW (dialog), GDK_WINDOW_TYPE_HINT_DIALOG); + gtk_window_set_title (GTK_WINDOW (dialog), _("Choose an icon")); + + main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_container_add (GTK_CONTAINER (dialog), main_box); + + // toolbar + toolbar = gtk_toolbar_new (); + gtk_box_pack_start (GTK_BOX (main_box), toolbar, FALSE, FALSE, 0); + style = gtk_widget_get_style_context (toolbar); + gtk_style_context_add_class (style, "primary-toolbar"); + + tool_item = gtk_tool_item_new (); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), tool_item, 0); + gtk_tool_item_set_expand (tool_item, TRUE); + + toolbar_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_container_add (GTK_CONTAINER (tool_item), toolbar_box); + style = gtk_widget_get_style_context (GTK_WIDGET (toolbar_box)); + gtk_style_context_add_class (style, "linked"); + + priv->search_bar = gtk_search_entry_new (); + gtk_box_pack_start (GTK_BOX (toolbar_box), priv->search_bar, TRUE, TRUE, 0); + gtk_entry_set_placeholder_text (GTK_ENTRY (priv->search_bar), _("Search")); + + priv->search_changed_id = g_signal_connect (priv->search_bar, "search-changed", + G_CALLBACK (on_search_text_changed), dialog); + g_signal_connect (priv->search_bar, "key-press-event", + G_CALLBACK (on_search_bar_key_pressed), dialog); + + priv->browse_button = gtk_button_new_with_label (_("Browse")); + gtk_box_pack_start (GTK_BOX (toolbar_box), priv->browse_button, FALSE, FALSE, 0); + + g_signal_connect (priv->browse_button, "clicked", + G_CALLBACK (on_browse_button_clicked), dialog); + + secondary_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_box_pack_start (GTK_BOX (main_box), secondary_box, TRUE, TRUE, 0); + + // context list + scrolled_window = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + gtk_box_pack_start (GTK_BOX (secondary_box), scrolled_window, FALSE, FALSE, 0); + + priv->list_box = gtk_list_box_new (); + gtk_container_add(GTK_CONTAINER (scrolled_window), GTK_WIDGET (priv->list_box)); + gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->list_box), list_box_sort, NULL, NULL); + g_signal_connect (priv->list_box, "selected-rows-changed", + G_CALLBACK (on_category_selected), dialog); + + style = gtk_widget_get_style_context (GTK_WIDGET (scrolled_window)); + gtk_style_context_add_class (style, "sidebar"); + + right_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_box_pack_start (GTK_BOX (secondary_box), right_box, TRUE, TRUE, 0); + + overlay = gtk_overlay_new (); + gtk_box_pack_start (GTK_BOX (right_box), overlay, TRUE, TRUE, 0); + + // icon view + scrolled_window = gtk_scrolled_window_new (NULL, NULL); + gtk_overlay_add_overlay (GTK_OVERLAY (overlay), scrolled_window); + gtk_widget_set_halign (scrolled_window, GTK_ALIGN_FILL); + gtk_widget_set_valign (scrolled_window, GTK_ALIGN_FILL); + + priv->loading_bar = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (priv->loading_bar), GTK_SHADOW_NONE); + + gtk_style_context_add_class (gtk_widget_get_style_context (priv->loading_bar), + "background"); + + gtk_overlay_add_overlay (GTK_OVERLAY (overlay), priv->loading_bar); + gtk_widget_set_halign (priv->loading_bar, GTK_ALIGN_START); + gtk_widget_set_valign (priv->loading_bar, GTK_ALIGN_END); + gtk_widget_set_no_show_all (priv->loading_bar, TRUE); + + loading_bar_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_container_add (GTK_CONTAINER (priv->loading_bar), loading_bar_box); + g_object_set (loading_bar_box, + "margin", 4, + NULL); + + spinner = gtk_spinner_new (); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_box_pack_start (GTK_BOX (loading_bar_box), spinner, FALSE, FALSE, 4); + + spinner_label = gtk_label_new (_("Loading...")); + gtk_box_pack_start (GTK_BOX (loading_bar_box), spinner_label, FALSE, FALSE, 4); + + gtk_widget_show_all (loading_bar_box); + + priv->icon_view = gtk_icon_view_new (); + gtk_container_add(GTK_CONTAINER (scrolled_window), GTK_WIDGET (priv->icon_view)); + + gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (priv->icon_view), COLUMN_PIXBUF); + gtk_icon_view_set_text_column (GTK_ICON_VIEW (priv->icon_view), COLUMN_DISPLAY_NAME); + gtk_icon_view_set_tooltip_column (GTK_ICON_VIEW (priv->icon_view), COLUMN_FULL_NAME); + + g_signal_connect (priv->icon_view, "selection-changed", + G_CALLBACK (on_icon_view_selection_changed), dialog); + g_signal_connect (priv->icon_view, "item-activated", + G_CALLBACK (on_icon_view_item_activated), dialog); + + // buttons + button_area = gtk_action_bar_new (); + priv->action_area = button_area; + gtk_box_pack_start (GTK_BOX (main_box), button_area, FALSE, FALSE, 0); + + button_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + priv->select_button = gtk_button_new_with_label (_("Select")); + style = gtk_widget_get_style_context (GTK_WIDGET (priv->select_button)); + gtk_style_context_add_class (style, "text-button"); + gtk_size_group_add_widget (button_size_group, priv->select_button); + gtk_action_bar_pack_end (GTK_ACTION_BAR (button_area), priv->select_button); + + g_signal_connect (priv->select_button, "clicked", + G_CALLBACK (on_select_button_clicked), dialog); + + cancel_button = gtk_button_new_with_label (_("Cancel")); + style = gtk_widget_get_style_context (GTK_WIDGET (cancel_button)); + gtk_style_context_add_class (style, "text-button"); + gtk_size_group_add_widget (button_size_group, cancel_button); + gtk_action_bar_pack_end (GTK_ACTION_BAR (button_area), cancel_button); + + g_signal_connect (cancel_button, "clicked", + G_CALLBACK (on_cancel_button_clicked), dialog); + + load_categories (dialog); +} + +static void +xapp_icon_chooser_dialog_class_init (XAppIconChooserDialogClass *klass) +{ + GtkBindingSet *binding_set; + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + object_class->get_property = xapp_icon_chooser_dialog_get_property; + object_class->set_property = xapp_icon_chooser_dialog_set_property; + object_class->dispose = xapp_icon_chooser_dialog_dispose; + + widget_class->delete_event = on_delete_event; + + /** + * XAppIconChooserDialog:icon-size: + * + * The preferred size to use when looking up icons. This only works with icon names. + * Additionally, there is no guarantee that a selected icon name will exist in a + * particular size. + */ + obj_properties[PROP_ICON_SIZE] = + g_param_spec_enum ("icon-size", + _("Icon size"), + _("The preferred icon size."), + XAPP_TYPE_ICON_SIZE, + XAPP_ICON_SIZE_32, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY); + + /** + * XAppIconChooserDialog:allow-paths: + * + * Whether to allow paths to be searched and selected or only icon names. + */ + obj_properties[PROP_ALLOW_PATHS] = + g_param_spec_boolean ("allow-paths", + _("Allow Paths"), + _("Whether to allow paths."), + TRUE, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY); + + g_object_class_install_properties (object_class, N_PROPERTIES, obj_properties); + + // keybinding signals + signals[CLOSE] = + g_signal_new ("close", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (GtkWidgetClass, delete_event), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + signals[SELECT] = + g_signal_new ("select", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + binding_set = gtk_binding_set_by_class (klass); + gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "close", 0); + gtk_binding_entry_add_signal (binding_set, GDK_KEY_Return, 0, "select", 0); + gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Enter, 0, "select", 0); + + gtk_widget_class_set_css_name (widget_class, "stacksidebar"); +} + +/** + * xapp_icon_chooser_dialog_new: + * + * Creates a new #XAppIconChooserDialog. + * + * Returns: a newly created #XAppIconChooserDialog + */ +XAppIconChooserDialog * +xapp_icon_chooser_dialog_new (void) +{ + return g_object_new (XAPP_TYPE_ICON_CHOOSER_DIALOG, NULL); +} + +/** + * xapp_icon_chooser_dialog_run: + * @dialog: a #XAppIconChooserDialog + * + * Shows the dialog and enters a separate main loop until an icon is chosen or the action is canceled. + * + * xapp_icon_chooser_dialog_run (), xapp_icon_chooser_dialog_run_with_icon(), and + * xapp_icon_chooser_dialog_run_with_category () may all be called multiple times. This is useful for + * applications which use this dialog multiple times, as it may improve performance for subsequent + * calls. + * + * Returns: GTK_RESPONSE_OK if the user selected an icon, or GTK_RESPONSE_CANCEL otherwise + */ +gint +xapp_icon_chooser_dialog_run (XAppIconChooserDialog *dialog) +{ + XAppIconChooserDialogPrivate *priv; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + gtk_widget_show_all (GTK_WIDGET (dialog)); + gtk_widget_grab_focus (priv->search_bar); + + gtk_main (); + + return priv->response; +} + +/** + * xapp_icon_chooser_dialog_run_with_icon: + * @dialog: a #XAppIconChooserDialog + * @icon: a string representing the icon that should be selected + * + * Like xapp_icon_chooser_dialog_run but selects the icon specified by @icon. This can be either an + * icon name or a path. Passing an icon string or path that doesn't exist is accepted, but it may show + * multiple results, or none at all. This behavior is useful if, for example, you wish to have the + * user select an image file from a particular directory. + * + * If the property allow_paths is FALSE, setting a path will yield no results when the dialog is opened. + * + * xapp_icon_chooser_dialog_run (), xapp_icon_chooser_dialog_run_with_icon(), and + * xapp_icon_chooser_dialog_run_with_category () may all be called multiple times. This is useful for + * applications which use this dialog multiple times, as it may improve performance for subsequent + * calls. + * + * Returns: GTK_RESPONSE_OK if the user selected an icon, or GTK_RESPONSE_CANCEL otherwise + */ +gint +xapp_icon_chooser_dialog_run_with_icon (XAppIconChooserDialog *dialog, + gchar *icon) +{ + XAppIconChooserDialogPrivate *priv; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + gtk_widget_show_all (GTK_WIDGET (dialog)); + gtk_entry_set_text (GTK_ENTRY (priv->search_bar), icon); + gtk_widget_grab_focus (priv->search_bar); + + gtk_main (); + + return priv->response; +} + +/** + * xapp_icon_chooser_dialog_run_with_category: + * @dialog: a #XAppIconChooserDialog + * + * Like xapp_icon_chooser_dialog_run but selects a particular category specified by @category. + * This is used when there is a particular category of icon that is more appropriate than the + * others. If the category does not exist, the first category in the list will be selected. To + * get a list of possible categories, use gtk_icon_theme_list_contexts (). + * + * xapp_icon_chooser_dialog_run (), xapp_icon_chooser_dialog_run_with_icon(), and + * xapp_icon_chooser_dialog_run_with_category () may all be called multiple times. This is useful for + * applications which use this dialog multiple times, as it may improve performance for subsequent + * calls. + * + * Returns: GTK_RESPONSE_OK if the user selected an icon, or GTK_RESPONSE_CANCEL otherwise + */ +gint +xapp_icon_chooser_dialog_run_with_category (XAppIconChooserDialog *dialog, + gchar *category) +{ + XAppIconChooserDialogPrivate *priv; + GList *children; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + gtk_widget_show_all (GTK_WIDGET (dialog)); + gtk_widget_grab_focus (priv->search_bar); + + children = gtk_container_get_children (GTK_CONTAINER (priv->list_box)); + for ( ; children; children = children->next) + { + GtkWidget *row; + GtkWidget *child; + const gchar *context; + + row = children->data; + child = gtk_bin_get_child (GTK_BIN (row)); + context = gtk_label_get_text (GTK_LABEL (child)); + if (g_strcmp0 (context, category) == 0) + { + gtk_list_box_select_row (GTK_LIST_BOX (priv->list_box), GTK_LIST_BOX_ROW (row)); + break; + } + } + + gtk_main (); + + return priv->response; +} + +/** + * xapp_icon_chooser_dialog_get_icon_string: + * @dialog: a #XAppIconChooserDialog + * + * Gets the currently selected icon from the dialog. If allow-paths is TRUE, this function may return + * either an icon name or a path depending on what the user selects. Otherwise it will only return an + * icon name. + * + * Returns: (transfer full): the string representation of the currently selected icon or NULL + * if no icon is selected. + */ +gchar * +xapp_icon_chooser_dialog_get_icon_string (XAppIconChooserDialog *dialog) +{ + XAppIconChooserDialogPrivate *priv; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + return g_strdup (priv->icon_string); +} + +static void +xapp_icon_chooser_dialog_close (XAppIconChooserDialog *dialog, + GtkResponseType response) +{ + XAppIconChooserDialogPrivate *priv; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + priv->response = response; + gtk_widget_hide (GTK_WIDGET (dialog)); + + gtk_main_quit (); +} + +static void +on_custom_button_clicked (GtkButton *button, + gpointer user_data) +{ + GtkResponseType response_id; + + response_id = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "response-id")); + + xapp_icon_chooser_dialog_close (XAPP_ICON_CHOOSER_DIALOG (user_data), response_id); +} + +/** + * xapp_icon_chooser_dialog_add_button: + * @dialog: an #XAppIconChooserDialog + * @button: a #GtkButton to add + * @packing: the #GtkPackType to specify start or end packing to the action bar + * @response_id: the dialog response id to return when this button is clicked. + * + * Allows a button to be added to the #GtkActionBar of the dialog with a custom + * response id. + */ +void +xapp_icon_chooser_dialog_add_button (XAppIconChooserDialog *dialog, + GtkWidget *button, + GtkPackType packing, + GtkResponseType response_id) +{ + XAppIconChooserDialogPrivate *priv; + GtkWidget *action_area; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + g_signal_connect (button, + "clicked", + G_CALLBACK (on_custom_button_clicked), + dialog); + + /* This saves having to use a custom container for callback data. */ + g_object_set_data (G_OBJECT (button), + "response-id", GINT_TO_POINTER (response_id)); + + if (packing == GTK_PACK_START) + { + gtk_action_bar_pack_start (GTK_ACTION_BAR (priv->action_area), button); + } + else + { + gtk_action_bar_pack_start (GTK_ACTION_BAR (priv->action_area), button); + } +} + +static gint +list_box_sort (GtkListBoxRow *row1, + GtkListBoxRow *row2, + gpointer user_data) +{ + GtkWidget *item; + const gchar *label1; + const gchar *label2; + + item = gtk_bin_get_child (GTK_BIN (row1)); + label1 = gtk_label_get_text (GTK_LABEL (item)); + + item = gtk_bin_get_child (GTK_BIN (row2)); + label2 = gtk_label_get_text (GTK_LABEL (item)); + + return g_strcmp0 (label1, label2); +} + +static gint +search_model_sort (GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + gpointer user_data) +{ + gchar *a_value; + gchar *b_value; + gchar *search_str; + gboolean a_starts_with; + gboolean b_starts_with; + gint ret; + + XAppIconChooserDialogPrivate *priv = (XAppIconChooserDialogPrivate *) user_data; + + search_str = priv->current_text; + + gtk_tree_model_get (model, a, COLUMN_DISPLAY_NAME, &a_value, -1); + gtk_tree_model_get (model, b, COLUMN_DISPLAY_NAME, &b_value, -1); + + ret = g_strcmp0 (a_value, b_value); + + if (search_str == NULL) + { + } + else + if (g_strcmp0 (a_value, search_str) == 0) + { + ret = -1; + } + else + if (g_strcmp0 (b_value, search_str) == 0) + { + ret = 1; + } + else + { + a_starts_with = g_str_has_prefix (a_value, search_str); + b_starts_with = g_str_has_prefix (b_value, search_str); + + if (a_starts_with && !b_starts_with) + { + ret = -1; + } + + if (!a_starts_with && b_starts_with) + { + ret = 1; + } + } + + g_free (a_value); + g_free (b_value); + + return ret; +} + +static void +load_categories (XAppIconChooserDialog *dialog) +{ + XAppIconChooserDialogPrivate *priv; + GtkListBoxRow *row; + GtkIconTheme *theme; + GList *contexts, *l; + gint i; + gint j; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + theme = gtk_icon_theme_get_default (); + contexts = gtk_icon_theme_list_contexts (theme); + + for (i = 0; i < G_N_ELEMENTS (categories); i++) + { + IconCategoryDefinition *category; + IconCategoryInfo *category_info; + GtkWidget *row; + GtkWidget *label; + GList *context_icons; + + category = &categories[i]; + + category_info = g_new0 (IconCategoryInfo, 1); + + category_info->name = _(category->name); + + for (j = 0; category->contexts[j] != NULL; j++) + { + GList *match; + + context_icons = gtk_icon_theme_list_icons (theme, category->contexts[j]); + category_info->icons = g_list_concat (category_info->icons, context_icons); + + match = g_list_find_custom (contexts, category->contexts[j], (GCompareFunc) g_strcmp0); + + if (match) + { + contexts = g_list_remove_link (contexts, match); + g_free (match->data); + g_list_free (match); + } + } + + /* Any contexts not consumed by categories should be added to the 'other' category */ + if (i == (G_N_ELEMENTS (categories) - 1) && g_list_length (contexts) > 0) + { + for (l = contexts; l != NULL; l = l->next) + { + +#if DEBUG_ICON_THEME + g_message ("Adding unused category to Other category: '%s'", (gchar *) l->data); +#endif + context_icons = gtk_icon_theme_list_icons (theme, (gchar *) l->data); + + category_info->icons = g_list_concat (category_info->icons, context_icons); + } + } + + if (g_list_length (category_info->icons) == 0) + { + free_category_info (category_info); + + continue; + } + + /* Add the list of icons for this category into our master search list */ + priv->full_icon_list = g_list_concat (priv->full_icon_list, + g_list_copy (category_info->icons)); + + category_info->model = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF); + g_signal_connect (category_info->model, "row-inserted", + G_CALLBACK (on_icon_store_icons_added), dialog); + + category_info->icons = g_list_sort (category_info->icons, (GCompareFunc) g_utf8_collate); + + row = gtk_list_box_row_new (); + label = gtk_label_new (category_info->name); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_widget_set_margin_start (GTK_WIDGET (label), 6); + gtk_widget_set_margin_end (GTK_WIDGET (label), 6); + + gtk_container_add (GTK_CONTAINER (row), label); + gtk_container_add (GTK_CONTAINER (priv->list_box), row); + + g_hash_table_insert (priv->categories, row, category_info); + } + + g_list_free_full (contexts, g_free); + + priv->full_icon_list = g_list_sort (priv->full_icon_list, (GCompareFunc) g_utf8_collate); + + row = gtk_list_box_get_row_at_index (GTK_LIST_BOX (priv->list_box), 0); + gtk_list_box_select_row (GTK_LIST_BOX (priv->list_box), row); +} + +GdkPixbuf * +wrangle_pixbuf_size (GdkPixbuf *pixbuf, + gint icon_size) +{ + gint width, height, new_width, new_height; + GdkPixbuf *out_pixbuf; + + new_width = new_height = -1; + + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + + if ((width > height ? width : height) > icon_size) + { + if (width > icon_size) + { + new_width = icon_size; + new_height = floor (((float) height / width) * new_width); + } + else if (height > icon_size) + { + new_height = icon_size; + new_width = floor (((float) width / height) * new_height); + } + + out_pixbuf = gdk_pixbuf_scale_simple (pixbuf, + new_width, + new_height, + GDK_INTERP_BILINEAR); + } + else + { + out_pixbuf = g_object_ref (pixbuf); + } + + return out_pixbuf; +} + +static gboolean +load_next_file_search_chunk (gpointer user_data) +{ + XAppIconChooserDialogPrivate *priv; + FileIconInfoLoadCallbackInfo *callback_info; + + callback_info = (FileIconInfoLoadCallbackInfo*) user_data; + priv = xapp_icon_chooser_dialog_get_instance_private (callback_info->dialog); + + if (g_cancellable_is_cancelled (callback_info->cancellable)) + { + free_file_info (callback_info); + + return G_SOURCE_REMOVE; + } + + search_path (callback_info->dialog, + priv->current_text, + priv->search_icon_store); + + free_file_info (callback_info); + + return G_SOURCE_REMOVE; +} + +static gboolean +load_next_category_chunk (gpointer user_data) +{ + XAppIconChooserDialogPrivate *priv; + NamedIconInfoLoadCallbackInfo *callback_info; + + callback_info = (NamedIconInfoLoadCallbackInfo*) user_data; + priv = xapp_icon_chooser_dialog_get_instance_private (callback_info->dialog); + + if (g_cancellable_is_cancelled (callback_info->cancellable)) + { + free_named_info (callback_info); + + return G_SOURCE_REMOVE; + } + + load_icons_for_category (callback_info->dialog, + callback_info->category_info, + priv->icon_size); + + free_named_info (callback_info); + + return G_SOURCE_REMOVE; +} + +static gboolean +load_next_name_search_chunk (gpointer user_data) +{ + XAppIconChooserDialogPrivate *priv; + NamedIconInfoLoadCallbackInfo *callback_info; + + callback_info = (NamedIconInfoLoadCallbackInfo*) user_data; + priv = xapp_icon_chooser_dialog_get_instance_private (callback_info->dialog); + + if (g_cancellable_is_cancelled (callback_info->cancellable)) + { + free_named_info (callback_info); + + return G_SOURCE_REMOVE; + } + + search_icon_name (callback_info->dialog, + priv->current_text, + priv->search_icon_store); + + free_named_info (callback_info); + + return G_SOURCE_REMOVE; +} + +static void +finish_pixbuf_load_from_file (GObject *stream, + GAsyncResult *res, + gpointer *user_data) +{ + XAppIconChooserDialogPrivate *priv; + FileIconInfoLoadCallbackInfo *callback_info; + GdkPixbuf *pixbuf, *final_pixbuf; + GError *error = NULL; + GtkTreeIter iter; + + callback_info = (FileIconInfoLoadCallbackInfo *) user_data; + priv = xapp_icon_chooser_dialog_get_instance_private (callback_info->dialog); + + pixbuf = gdk_pixbuf_new_from_stream_finish (res, &error); + + g_input_stream_close (G_INPUT_STREAM (stream), NULL, NULL); + g_object_unref (stream); + + if (g_cancellable_is_cancelled (callback_info->cancellable)) + { + g_clear_object (&pixbuf); + free_file_info (callback_info); + + return; + } + + if (pixbuf == NULL) + { + if (error && (error->domain != G_IO_ERROR || error->code != G_IO_ERROR_CANCELLED)) + { + g_message ("%s\n", error->message); + } + + final_pixbuf = NULL; + g_clear_error (&error); + } + else + { + final_pixbuf = wrangle_pixbuf_size (pixbuf, priv->icon_size); + g_object_unref (pixbuf); + } + + if (final_pixbuf) + { + GtkTreeIter iter; + + gtk_list_store_append (callback_info->model, &iter); + gtk_list_store_set (callback_info->model, &iter, + COLUMN_DISPLAY_NAME, callback_info->short_name, + COLUMN_FULL_NAME, callback_info->long_name, + COLUMN_PIXBUF, final_pixbuf, + -1); + + g_object_unref (final_pixbuf); + } + + if (callback_info->chunk_end) + { + g_idle_add ((GSourceFunc) load_next_file_search_chunk, callback_info); + } + else + { + free_file_info (callback_info); + } + +} + +static void +add_named_entry (NamedIconInfoLoadCallbackInfo *callback_info, + GdkPixbuf *pixbuf) +{ + GtkTreeIter iter; + + gtk_list_store_append (callback_info->model, &iter); + gtk_list_store_set (callback_info->model, &iter, + COLUMN_DISPLAY_NAME, callback_info->name, + COLUMN_FULL_NAME, callback_info->name, + COLUMN_PIXBUF, pixbuf, + -1); +} + +static gboolean +add_named_entry_with_existing_pixbuf (gpointer user_data) +{ + NamedIconInfoLoadCallbackInfo *callback_info; + + callback_info = (NamedIconInfoLoadCallbackInfo*) user_data; + + if (g_cancellable_is_cancelled (callback_info->cancellable)) + { + free_named_info (callback_info); + + return G_SOURCE_REMOVE; + } + + /* Category results have a category_info attached. */ + if (callback_info->category_info) + { + add_named_entry (callback_info, callback_info->pixbuf); + + if (callback_info->chunk_end) + { + g_idle_add ((GSourceFunc) load_next_category_chunk, callback_info); + + return G_SOURCE_REMOVE; + } + } + /* Otherwise, it's a search result set */ + else + { + add_named_entry (callback_info, callback_info->pixbuf); + + if (callback_info->chunk_end) + { + g_idle_add ((GSourceFunc) load_next_name_search_chunk, callback_info); + + return G_SOURCE_REMOVE; + } + } + + free_named_info (callback_info); + + return G_SOURCE_REMOVE; +} + +static void +finish_pixbuf_load_from_name (GObject *info, + GAsyncResult *res, + gpointer *user_data) +{ + XAppIconChooserDialogPrivate *priv; + NamedIconInfoLoadCallbackInfo *callback_info; + GdkPixbuf *pixbuf; + GError *error = NULL; + + callback_info = (NamedIconInfoLoadCallbackInfo*) user_data; + priv = xapp_icon_chooser_dialog_get_instance_private (callback_info->dialog); + + pixbuf = gtk_icon_info_load_icon_finish (GTK_ICON_INFO (info), res, &error); + g_object_unref (info); + + if (g_cancellable_is_cancelled (callback_info->cancellable)) + { + g_clear_object (&pixbuf); + + free_named_info (callback_info); + + return; + } + + if (pixbuf == NULL) + { + if (error && (error->domain != G_IO_ERROR || error->code != G_IO_ERROR_CANCELLED)) + { + g_message ("%s\n", error->message); + } + + free_named_info (callback_info); + + g_clear_error (&error); + + return; + } + + /* Hash table 'takes' reference, we don't have to free pixbuf. + callback_info->name is already owned by priv->full_icon_list so + it needs to be copied */ + g_hash_table_insert (priv->pixbufs_by_name, + g_strdup (callback_info->name), + (gpointer) pixbuf); + + /* If there's a category_info, this is a category selection. */ + if (callback_info->category_info) + { + add_named_entry (callback_info, pixbuf); + + if (callback_info->chunk_end) + { + g_idle_add ((GSourceFunc) load_next_category_chunk, callback_info); + + return; + } + } + /* Otherwise, it's a search result set */ + else + { + add_named_entry (callback_info, pixbuf); + + if (callback_info->chunk_end) + { + g_idle_add ((GSourceFunc) load_next_name_search_chunk, callback_info); + + return; + } + } + + free_named_info (callback_info); +} + +#define CATEGORY_CHUNK_SIZE 500 + +static void +load_icons_for_category (XAppIconChooserDialog *dialog, + IconCategoryInfo *category_info, + guint icon_size) +{ + XAppIconChooserDialogPrivate *priv; + GtkIconTheme *theme; + gint chunk_count; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + theme = gtk_icon_theme_get_default (); + + for (chunk_count = 0; chunk_count < CATEGORY_CHUNK_SIZE; chunk_count++) + { + if (category_info->iter == NULL) + { + category_info->iter = category_info->icons; + } + else + { + category_info->iter = category_info->iter->next; + } + + if (category_info->iter) + { + GdkPixbuf *pixbuf; + NamedIconInfoLoadCallbackInfo *callback_info; + const gchar *name = category_info->iter->data; + + callback_info = g_new0 (NamedIconInfoLoadCallbackInfo, 1); + callback_info->dialog = dialog; + callback_info->category_info = category_info; + callback_info->model = category_info->model; + callback_info->cancellable = g_object_ref (priv->cancellable); + callback_info->name = name; + callback_info->chunk_end = (chunk_count == CATEGORY_CHUNK_SIZE - 1); + + pixbuf = g_hash_table_lookup (priv->pixbufs_by_name, name); + + if (pixbuf != NULL) + { + callback_info->pixbuf = g_object_ref (pixbuf); + g_idle_add ((GSourceFunc) add_named_entry_with_existing_pixbuf, callback_info); + } + else + { + GtkIconInfo *info; + + info = gtk_icon_theme_lookup_icon (theme, name, icon_size, GTK_ICON_LOOKUP_FORCE_SIZE); + gtk_icon_info_load_icon_async (info, NULL, (GAsyncReadyCallback) (finish_pixbuf_load_from_name), callback_info); + } + } + else + { + gtk_widget_hide (priv->loading_bar); + break; // Quit the count early, we're out of data + } + } +} + +static void +on_category_selected (GtkListBox *list_box, + XAppIconChooserDialog *dialog) +{ + XAppIconChooserDialogPrivate *priv; + GList *selection; + GtkWidget *selected; + IconCategoryInfo *category_info; + GtkTreePath *new_path; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + clear_search_state (dialog); + + selection = gtk_list_box_get_selected_rows (GTK_LIST_BOX (priv->list_box)); + + if (!selection) + { + return; + } + + gtk_widget_show (priv->loading_bar); + + g_signal_handler_block (priv->search_bar, priv->search_changed_id); + gtk_entry_set_text (GTK_ENTRY (priv->search_bar), ""); + g_signal_handler_unblock (priv->search_bar, priv->search_changed_id); + + selected = selection->data; + category_info = g_hash_table_lookup (priv->categories, selected); + + priv->cancellable = g_cancellable_new (); + +#if DEBUG_REFS + g_object_weak_ref (G_OBJECT (priv->cancellable), (GWeakNotify) on_cancellable_finalize, priv); +#endif + + priv->current_category = category_info; + + gtk_list_store_clear (GTK_LIST_STORE (category_info->model)); + gtk_icon_view_set_model (GTK_ICON_VIEW (priv->icon_view), GTK_TREE_MODEL (category_info->model)); + + load_icons_for_category (dialog, + category_info, + priv->icon_size); + + gtk_adjustment_set_value (gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (priv->icon_view)), 0.0); + + g_list_free (selection); +} + +#define SEARCH_CHUNK_SIZE 2 + +static void +search_path (XAppIconChooserDialog *dialog, + const gchar *path_string, + GtkListStore *icon_store) +{ + XAppIconChooserDialogPrivate *priv; + gchar *search_str = NULL; + GFile *dir; + GFileInfo *child_info = NULL;; + gint chunk_count; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + if (g_file_test (path_string, G_FILE_TEST_IS_DIR)) + { + dir = g_file_new_for_path (path_string); + } + else + { + GFile *file; + + file = g_file_new_for_path (path_string); + dir = g_file_get_parent (file); + search_str = g_file_get_basename (file); + g_object_unref (file); + } + + if (!g_file_query_exists (dir, NULL) || + g_file_query_file_type (dir, G_FILE_QUERY_INFO_NONE, NULL) != G_FILE_TYPE_DIRECTORY) + { + g_free (search_str); + g_object_unref (dir); + return; + } + + if (!priv->search_file_enumerator) + { + priv->search_file_enumerator = g_file_enumerate_children (dir, + G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "," + G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE "," + G_FILE_ATTRIBUTE_STANDARD_SIZE "," + G_FILE_ATTRIBUTE_STANDARD_NAME, + G_FILE_QUERY_INFO_NONE, NULL, NULL); + + g_object_add_toggle_ref (G_OBJECT (priv->search_file_enumerator), + (GToggleNotify) on_enumerator_toggle_ref_called, + dialog); + +#if DEBUG_REFS + g_object_weak_ref (G_OBJECT (priv->search_file_enumerator), (GWeakNotify) on_enumerator_finalize, dialog); +#endif + } + + chunk_count = 0; + + while (chunk_count < SEARCH_CHUNK_SIZE) + { + const gchar *child_name; + gchar *child_path; + GFile *child; + GError *error = NULL; + + g_clear_object (&child_info); + child_info = g_file_enumerator_next_file (priv->search_file_enumerator, NULL, NULL); + + if (!child_info) + { + break; + } + + child_name = g_file_info_get_name (child_info); + child = g_file_enumerator_get_child (priv->search_file_enumerator, child_info); + child_path = g_file_get_path (child); + + if (search_str == NULL || g_str_has_prefix (child_name, search_str)) + { + priv->current_category = NULL; + + gchar *content_type; + gboolean uncertain; + + content_type = g_content_type_guess (child_name, NULL, 0, &uncertain); + + if (content_type && g_str_has_prefix (content_type, "image") && !uncertain) + { + GFileInputStream *stream; + + stream = g_file_read (child, NULL, &error); + + if (stream != NULL) + { + FileIconInfoLoadCallbackInfo *callback_info; + + callback_info = g_new0 (FileIconInfoLoadCallbackInfo, 1); + callback_info->dialog = dialog; + callback_info->model = icon_store; + callback_info->cancellable = g_object_ref (priv->cancellable); + callback_info->enumerator = g_object_ref (priv->search_file_enumerator); + callback_info->short_name = g_strdup (child_name); + callback_info->long_name = g_strdup (child_path); + callback_info->chunk_end = (chunk_count == SEARCH_CHUNK_SIZE - 1); + + gdk_pixbuf_new_from_stream_async (G_INPUT_STREAM (stream), + NULL, + (GAsyncReadyCallback) finish_pixbuf_load_from_file, + callback_info); + + chunk_count ++; + } + else + { + if (error) + { + g_message ("%s\n", error->message); + g_error_free (error); + } + } + } + + g_free (content_type); + } + + g_free (child_path); + g_object_unref (child); + } + + if (!child_info) + { + if (priv->search_file_enumerator) + { + g_object_unref (priv->search_file_enumerator); + } + + gtk_widget_hide (priv->loading_bar); + } + else + { + g_clear_object (&child_info); + } + + g_free (search_str); + g_object_unref (dir); +} + +static void +search_icon_name (XAppIconChooserDialog *dialog, + const gchar *name_string, + GtkListStore *icon_store) +{ + XAppIconChooserDialogPrivate *priv; + GtkIconTheme *theme; + GList *icons; + GtkIconInfo *info; + NamedIconInfoLoadCallbackInfo *callback_info; + gint chunk_count; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + theme = gtk_icon_theme_get_default (); + + icons = priv->full_icon_list; + + chunk_count = 0; + + while (chunk_count < SEARCH_CHUNK_SIZE) + { + if (priv->search_iter == NULL) + { + priv->search_iter = icons; + } + else + { + priv->search_iter = priv->search_iter->next; + } + + if (priv->search_iter) + { + priv->current_category = NULL; + + if (g_strrstr (priv->search_iter->data, name_string)) + { + GdkPixbuf *pixbuf; + NamedIconInfoLoadCallbackInfo *callback_info; + const gchar *name = priv->search_iter->data; + + callback_info = g_new0 (NamedIconInfoLoadCallbackInfo, 1); + callback_info->dialog = dialog; + callback_info->model = priv->search_icon_store; + callback_info->cancellable = g_object_ref (priv->cancellable); + callback_info->category_info = NULL; + callback_info->name = name; + callback_info->chunk_end = (chunk_count == SEARCH_CHUNK_SIZE - 1); + + pixbuf = g_hash_table_lookup (priv->pixbufs_by_name, name); + + if (pixbuf != NULL) + { + callback_info->pixbuf = g_object_ref (pixbuf); + g_idle_add ((GSourceFunc) add_named_entry_with_existing_pixbuf, callback_info); + } + else + { + GtkIconInfo *info; + + info = gtk_icon_theme_lookup_icon (theme, name, priv->icon_size, GTK_ICON_LOOKUP_FORCE_SIZE); + gtk_icon_info_load_icon_async (info, NULL, (GAsyncReadyCallback) (finish_pixbuf_load_from_name), callback_info); + } + + chunk_count++; + } + } + else + { + gtk_widget_hide (priv->loading_bar); + + break; // Quit the count early, we're out of data + } + } +} + +static void +on_search_text_changed (GtkSearchEntry *entry, + XAppIconChooserDialog *dialog) +{ + XAppIconChooserDialogPrivate *priv; + const gchar *search_text; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + /* The search cancellable is carried in search callback data. If the + * text changes, we cancel it here, our load callbacks will check the + * state, and react appropriately (like not adding results to the model). */ + clear_search_state (dialog); + + gtk_list_box_select_row (GTK_LIST_BOX (priv->list_box), NULL); + + priv->cancellable = g_cancellable_new (); + +#if DEBUG_REFS + g_object_weak_ref (G_OBJECT (priv->cancellable), (GWeakNotify) on_cancellable_finalize, dialog); +#endif + + search_text = gtk_entry_get_text (GTK_ENTRY (entry)); + + if (g_strcmp0 (search_text, "") == 0) + { + g_clear_pointer (&priv->current_text, g_free); + g_clear_pointer (&priv->icon_string, g_free); + + gtk_widget_hide (priv->loading_bar); + + gtk_list_store_clear (GTK_LIST_STORE (priv->search_icon_store)); + } + else + if (strlen (search_text) < 2) + { + return; + } + else + { + g_free (priv->current_text); + priv->current_text = g_strdup (search_text); + + gtk_widget_show (priv->loading_bar); + + gtk_list_store_clear (GTK_LIST_STORE (priv->search_icon_store)); + gtk_icon_view_set_model (GTK_ICON_VIEW (priv->icon_view), GTK_TREE_MODEL (priv->search_icon_store)); + if (g_strrstr (search_text, "/")) + { + if (priv->allow_paths) + { + search_path (dialog, search_text, priv->search_icon_store); + } + } + else + { + search_icon_name (dialog, search_text, priv->search_icon_store); + } + } +} + +static void +on_icon_view_selection_changed (GtkIconView *icon_view, + gpointer user_data) +{ + XAppIconChooserDialogPrivate *priv; + GList *selected_items; + gchar *icon_string = NULL; + + priv = xapp_icon_chooser_dialog_get_instance_private (user_data); + + selected_items = gtk_icon_view_get_selected_items (icon_view); + if (selected_items == NULL) + { + gtk_widget_set_sensitive (GTK_WIDGET (priv->select_button), FALSE); + } + else + { + GtkTreePath *tree_path; + GtkTreeModel *model; + GtkTreeIter iter; + + gtk_widget_set_sensitive (GTK_WIDGET (priv->select_button), TRUE); + + tree_path = selected_items->data; + model = gtk_icon_view_get_model (icon_view); + gtk_tree_model_get_iter (model, &iter, tree_path); + gtk_tree_model_get (model, &iter, COLUMN_FULL_NAME, &icon_string, -1); + } + + if (priv->icon_string != NULL) + { + g_free (priv->icon_string); + } + + priv->icon_string = icon_string; + + g_list_free_full (selected_items, (GDestroyNotify) gtk_tree_path_free); +} + +static void +on_icon_store_icons_added (GtkTreeModel *tree_model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer user_data) +{ + XAppIconChooserDialogPrivate *priv; + GtkTreePath *new_path; + + priv = xapp_icon_chooser_dialog_get_instance_private (user_data); + + if (tree_model != gtk_icon_view_get_model (GTK_ICON_VIEW (priv->icon_view))) { + return; + } + + new_path = gtk_tree_path_new_first (); + gtk_icon_view_select_path (GTK_ICON_VIEW (priv->icon_view), new_path); + + gtk_tree_path_free (new_path); +} + +static void +on_browse_button_clicked (GtkButton *button, + gpointer user_data) +{ + XAppIconChooserDialog *dialog = user_data; + XAppIconChooserDialogPrivate *priv; + GtkWidget *file_dialog; + const gchar *search_text; + GtkFileFilter *file_filter; + gint response; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + file_dialog = gtk_file_chooser_dialog_new (_("Select image file"), + GTK_WINDOW (dialog), + GTK_FILE_CHOOSER_ACTION_OPEN, + _("Cancel"), + GTK_RESPONSE_CANCEL, + _("Open"), + GTK_RESPONSE_ACCEPT, + NULL); + + search_text = gtk_entry_get_text (GTK_ENTRY (priv->search_bar)); + if (g_strrstr (search_text, "/")) + { + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (file_dialog), search_text); + } + else + { + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_dialog), "/usr/share/icons/"); + } + + file_filter = gtk_file_filter_new (); + gtk_file_filter_set_name (file_filter, _("Image")); + gtk_file_filter_add_pixbuf_formats (file_filter); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_dialog), file_filter); + + response = gtk_dialog_run (GTK_DIALOG (file_dialog)); + if (response == GTK_RESPONSE_ACCEPT) + { + gchar *filename; + + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_dialog)); + gtk_entry_set_text (GTK_ENTRY (priv->search_bar), filename); + g_free (filename); + } + + gtk_widget_destroy (file_dialog); +} + +static void +on_select_button_clicked (GtkButton *button, + gpointer user_data) +{ + xapp_icon_chooser_dialog_close (XAPP_ICON_CHOOSER_DIALOG (user_data), GTK_RESPONSE_OK); +} + +static void +on_cancel_button_clicked (GtkButton *button, + gpointer user_data) +{ + xapp_icon_chooser_dialog_close (XAPP_ICON_CHOOSER_DIALOG (user_data), GTK_RESPONSE_CANCEL); +} + +static gboolean +on_delete_event (GtkWidget *widget, + GdkEventAny *event) +{ + xapp_icon_chooser_dialog_close (XAPP_ICON_CHOOSER_DIALOG (widget), GTK_RESPONSE_CANCEL); + + return TRUE; +} + +static gboolean +on_select_event (XAppIconChooserDialog *dialog, + GdkEventAny *event) +{ + XAppIconChooserDialogPrivate *priv; + + priv = xapp_icon_chooser_dialog_get_instance_private (dialog); + + if (priv->icon_string != NULL) + { + xapp_icon_chooser_dialog_close (dialog, GTK_RESPONSE_OK); + } +} + +static void +on_icon_view_item_activated (GtkIconView *iconview, + GtkTreePath *path, + gpointer user_data) +{ + xapp_icon_chooser_dialog_close (XAPP_ICON_CHOOSER_DIALOG (user_data), GTK_RESPONSE_OK); +} + +static gboolean +on_search_bar_key_pressed (GtkWidget *widget, + GdkEvent *event, + gpointer user_data) +{ + XAppIconChooserDialogPrivate *priv; + guint keyval; + + priv = xapp_icon_chooser_dialog_get_instance_private (user_data); + + gdk_event_get_keyval (event, &keyval); + switch (keyval) + { + case GDK_KEY_Escape: + xapp_icon_chooser_dialog_close (XAPP_ICON_CHOOSER_DIALOG (user_data), GTK_RESPONSE_CANCEL); + return TRUE; + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + if (priv->icon_string != NULL) + { + xapp_icon_chooser_dialog_close (XAPP_ICON_CHOOSER_DIALOG (user_data), GTK_RESPONSE_OK); + } + return TRUE; + } + + return FALSE; +} diff -Nru xapp-1.2.2/libxapp/xapp-icon-chooser-dialog.h xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-dialog.h --- xapp-1.2.2/libxapp/xapp-icon-chooser-dialog.h 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-icon-chooser-dialog.h 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,43 @@ +#ifndef _XAPP_ICON_CHOOSER_DIALOG_H_ +#define _XAPP_ICON_CHOOSER_DIALOG_H_ + +#include +#include + +#include "xapp-gtk-window.h" + +G_BEGIN_DECLS + +#define XAPP_TYPE_ICON_CHOOSER_DIALOG (xapp_icon_chooser_dialog_get_type ()) + +G_DECLARE_FINAL_TYPE (XAppIconChooserDialog, xapp_icon_chooser_dialog, XAPP, ICON_CHOOSER_DIALOG, XAppGtkWindow) + +typedef enum +{ + XAPP_ICON_SIZE_16 = 16, + XAPP_ICON_SIZE_22 = 22, + XAPP_ICON_SIZE_24 = 24, + XAPP_ICON_SIZE_32 = 32, + XAPP_ICON_SIZE_48 = 48, + XAPP_ICON_SIZE_96 = 96 +} XAppIconSize; + +XAppIconChooserDialog * xapp_icon_chooser_dialog_new (void); + +gint xapp_icon_chooser_dialog_run (XAppIconChooserDialog *dialog); + +gint xapp_icon_chooser_dialog_run_with_icon (XAppIconChooserDialog *dialog, + gchar *icon); + +gint xapp_icon_chooser_dialog_run_with_category (XAppIconChooserDialog *dialog, + gchar *category); + +gchar * xapp_icon_chooser_dialog_get_icon_string (XAppIconChooserDialog *dialog); + +void xapp_icon_chooser_dialog_add_button (XAppIconChooserDialog *dialog, + GtkWidget *button, + GtkPackType packing, + GtkResponseType response_id); +G_END_DECLS + +#endif /* _XAPP_ICON_CHOOSER_DIALOG_H_ */ diff -Nru xapp-1.2.2/libxapp/xapp-preferences-window.c xapp-1.4.5+cindy/libxapp/xapp-preferences-window.c --- xapp-1.2.2/libxapp/xapp-preferences-window.c 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-preferences-window.c 2018-12-11 14:21:26.000000000 +0000 @@ -1,5 +1,6 @@ #include #include "xapp-preferences-window.h" +#include "xapp-stack-sidebar.h" /** * SECTION:xapp-preferences-window @@ -14,12 +15,11 @@ typedef struct { - GtkWidget *stack; - GtkWidget *side_switcher; - GtkWidget *button_area; - GtkSizeGroup *button_size_group; + GtkWidget *stack; + XAppStackSidebar *side_switcher; + GtkWidget *button_area; - gint num_pages; + gint num_pages; } XAppPreferencesWindowPrivate; enum @@ -38,33 +38,42 @@ XAppPreferencesWindowPrivate *priv = xapp_preferences_window_get_instance_private (window); GtkWidget *main_box; GtkWidget *secondary_box; + GtkStyleContext *style_context; gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE); gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DIALOG); + gtk_container_set_border_width (GTK_CONTAINER (window), 5); main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_container_set_border_width (GTK_CONTAINER (main_box), 5); gtk_container_add (GTK_CONTAINER (window), main_box); secondary_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_container_set_border_width (GTK_CONTAINER (secondary_box), 5); gtk_box_pack_start (GTK_BOX (main_box), secondary_box, TRUE, TRUE, 0); - priv->side_switcher = gtk_stack_sidebar_new (); - gtk_widget_set_size_request (priv->side_switcher, 100, -1); - gtk_box_pack_start (GTK_BOX (secondary_box), priv->side_switcher, FALSE, FALSE, 0); - gtk_widget_set_no_show_all (priv->side_switcher, TRUE); + style_context = gtk_widget_get_style_context (secondary_box); + gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_FRAME); + + priv->side_switcher = xapp_stack_sidebar_new (); + gtk_widget_set_size_request (GTK_WIDGET (priv->side_switcher), 100, -1); + gtk_box_pack_start (GTK_BOX (secondary_box), GTK_WIDGET (priv->side_switcher), FALSE, FALSE, 0); + gtk_widget_set_no_show_all (GTK_WIDGET (priv->side_switcher), TRUE); priv->stack = gtk_stack_new (); gtk_stack_set_transition_type (GTK_STACK (priv->stack), GTK_STACK_TRANSITION_TYPE_CROSSFADE); gtk_box_pack_start (GTK_BOX (secondary_box), priv->stack, TRUE, TRUE, 0); - gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (priv->side_switcher), GTK_STACK (priv->stack)); + xapp_stack_sidebar_set_stack (priv->side_switcher, GTK_STACK (priv->stack)); - priv->button_area = gtk_action_bar_new (); + style_context = gtk_widget_get_style_context (priv->stack); + gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_VIEW); + + priv->button_area = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); + gtk_container_set_border_width (GTK_CONTAINER (priv->button_area), 5); gtk_box_pack_start (GTK_BOX (main_box), priv->button_area, FALSE, FALSE, 0); gtk_widget_set_no_show_all (priv->button_area, TRUE); - priv->button_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - /* Keep track of the number of pages so we can hide the stack switcher with < 2 */ priv->num_pages = 0; } @@ -135,7 +144,7 @@ if (priv->num_pages > 1) { - gtk_widget_set_no_show_all (priv->side_switcher, FALSE); + gtk_widget_set_no_show_all (GTK_WIDGET (priv->side_switcher), FALSE); } } @@ -161,17 +170,13 @@ g_return_if_fail (XAPP_IS_PREFERENCES_WINDOW (window)); g_return_if_fail (GTK_IS_WIDGET (button)); - if (pack_type == GTK_PACK_START) - { - gtk_action_bar_pack_start (GTK_ACTION_BAR (priv->button_area), button); - gtk_widget_set_margin_start (button, 6); - } - else if (pack_type == GTK_PACK_END) + gtk_container_add (GTK_CONTAINER (priv->button_area), button); + + if (pack_type == GTK_PACK_END) { - gtk_action_bar_pack_end (GTK_ACTION_BAR (priv->button_area), button); - gtk_widget_set_margin_end (button, 6); + gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (priv->button_area), button, TRUE); } - else + else if (pack_type != GTK_PACK_START) { return; } @@ -179,6 +184,5 @@ style_context = gtk_widget_get_style_context (button); gtk_style_context_add_class (style_context, "text-button"); - gtk_size_group_add_widget (priv->button_size_group, button); gtk_widget_set_no_show_all (priv->button_area, FALSE); -} \ No newline at end of file +} diff -Nru xapp-1.2.2/libxapp/xapp-stack-sidebar.c xapp-1.4.5+cindy/libxapp/xapp-stack-sidebar.c --- xapp-1.2.2/libxapp/xapp-stack-sidebar.c 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-stack-sidebar.c 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,522 @@ +/* Based on gtkstacksidebar.c */ + +#include "xapp-stack-sidebar.h" + +/** + * SECTION:xapp-stack-sidebar + * @Title: XAppStackSidebar + * @Short_description: An automatic sidebar widget + * + * A XAppStackSidebar allows you to quickly and easily provide a + * consistent "sidebar" object for your user interface + * + * In order to use a XAppStackSidebar, you simply use a GtkStack to + * organize your UI flow, and add the sidebar to your sidebar area. You + * can use xapp_stack_sidebar_set_stack() to connect the #XAppStackSidebar + * to the #GtkStack. The #XAppStackSidebar is an extended version of the + * the #GtkStackSidebar that allows showing an icon in addition to the text. + * + * # CSS nodes + * + * XAppStackSidebar has a single CSS node with the name stacksidebar and + * style class .sidebar + * + * When circumstances require it, XAppStackSidebar adds the + * .needs-attention style class to the widgets representing the stack + * pages. + */ + + +struct _XAppStackSidebar +{ + GtkBin parent_instance; + + GtkListBox *list; + GtkStack *stack; + GHashTable *rows; + gboolean in_child_changed; +}; + +enum +{ + PROP_0, + PROP_STACK, + N_PROPERTIES +}; + +static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, }; + +G_DEFINE_TYPE (XAppStackSidebar, xapp_stack_sidebar, GTK_TYPE_BIN) + +static void +xapp_stack_sidebar_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + XAppStackSidebar *sidebar = XAPP_STACK_SIDEBAR (object); + + switch (prop_id) + { + case PROP_STACK: + xapp_stack_sidebar_set_stack (XAPP_STACK_SIDEBAR (object), g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +xapp_stack_sidebar_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + XAppStackSidebar *sidebar = XAPP_STACK_SIDEBAR (object); + + switch (prop_id) + { + case PROP_STACK: + g_value_set_object (value, sidebar->stack); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gint +sort_list (GtkListBoxRow *row1, + GtkListBoxRow *row2, + gpointer userdata) +{ + XAppStackSidebar *sidebar = XAPP_STACK_SIDEBAR (userdata); + GtkWidget *item; + GtkWidget *widget; + gint left = 0; + gint right = 0; + + + if (row1) + { + item = gtk_bin_get_child (GTK_BIN (row1)); + widget = g_object_get_data (G_OBJECT (item), "stack-child"); + gtk_container_child_get (GTK_CONTAINER (sidebar->stack), widget, + "position", &left, + NULL); + } + + if (row2) + { + item = gtk_bin_get_child (GTK_BIN (row2)); + widget = g_object_get_data (G_OBJECT (item), "stack-child"); + gtk_container_child_get (GTK_CONTAINER (sidebar->stack), widget, + "position", &right, + NULL); + } + + if (left < right) + { + return -1; + } + + if (left == right) + { + return 0; + } + + return 1; +} + +static void +xapp_stack_sidebar_row_selected (GtkListBox *box, + GtkListBoxRow *row, + gpointer user_data) +{ + XAppStackSidebar *sidebar = XAPP_STACK_SIDEBAR (user_data); + GtkWidget *item; + GtkWidget *widget; + + if (sidebar->in_child_changed) + { + return; + } + + if (!row) + { + return; + } + + item = gtk_bin_get_child (GTK_BIN (row)); + widget = g_object_get_data (G_OBJECT (item), "stack-child"); + gtk_stack_set_visible_child (sidebar->stack, widget); +} + +static void +xapp_stack_sidebar_init (XAppStackSidebar *sidebar) +{ + GtkStyleContext *style; + GtkWidget *sw; + + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_NEVER, + GTK_POLICY_AUTOMATIC); + + gtk_container_add (GTK_CONTAINER (sidebar), sw); + + sidebar->list = GTK_LIST_BOX (gtk_list_box_new ()); + + gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (sidebar->list)); + + gtk_list_box_set_sort_func (sidebar->list, sort_list, sidebar, NULL); + + g_signal_connect (sidebar->list, "row-selected", + G_CALLBACK (xapp_stack_sidebar_row_selected), sidebar); + + style = gtk_widget_get_style_context (GTK_WIDGET (sidebar)); + gtk_style_context_add_class (style, "sidebar"); + + gtk_widget_show_all (GTK_WIDGET (sidebar)); + + sidebar->rows = g_hash_table_new (NULL, NULL); +} + +static void +update_row (XAppStackSidebar *sidebar, + GtkWidget *widget, + GtkWidget *row) +{ + GList *children; + GList *list; + GtkWidget *item; + gchar *title; + gchar *icon_name; + gboolean needs_attention; + GtkStyleContext *context; + + gtk_container_child_get (GTK_CONTAINER (sidebar->stack), + widget, + "title", &title, + "icon-name", &icon_name, + "needs-attention", &needs_attention, + NULL); + + item = gtk_bin_get_child (GTK_BIN (row)); + + children = gtk_container_get_children (GTK_CONTAINER (item)); + for (list = children; list != NULL; list = list->next) + { + GtkWidget *child = list->data; + + if (GTK_IS_LABEL (child)) + { + gtk_label_set_text (GTK_LABEL (child), title); + } + else if (GTK_IS_IMAGE (child)) + { + gtk_image_set_from_icon_name (GTK_IMAGE (child), icon_name, GTK_ICON_SIZE_MENU); + } + } + + gtk_widget_set_visible (row, gtk_widget_get_visible (widget) && (title != NULL || icon_name != NULL)); + + context = gtk_widget_get_style_context (row); + if (needs_attention) + { + gtk_style_context_add_class (context, GTK_STYLE_CLASS_NEEDS_ATTENTION); + } + else + { + gtk_style_context_remove_class (context, GTK_STYLE_CLASS_NEEDS_ATTENTION); + } + + g_free (title); + g_free (icon_name); + g_list_free (children); +} + +static void +on_position_updated (GtkWidget *widget, + GParamSpec *pspec, + XAppStackSidebar *sidebar) +{ + gtk_list_box_invalidate_sort (sidebar->list); +} + +static void +on_child_updated (GtkWidget *widget, + GParamSpec *pspec, + XAppStackSidebar *sidebar) +{ + GtkWidget *row; + + row = g_hash_table_lookup (sidebar->rows, widget); + update_row (sidebar, widget, row); +} + +static void +add_child (GtkWidget *widget, + XAppStackSidebar *sidebar) +{ + GtkWidget *item; + GtkWidget *label; + GtkWidget *icon; + GtkWidget *row; + + /* Check we don't actually already know about this widget */ + if (g_hash_table_lookup (sidebar->rows, widget)) + { + return; + } + + /* Make a pretty item when we add children */ + item = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_widget_set_margin_start (item, 6); + gtk_widget_set_margin_end (item, 6); + + icon = gtk_image_new (); + gtk_box_pack_start (GTK_BOX (item), icon, FALSE, FALSE, 0); + + label = gtk_label_new (""); + gtk_box_pack_start (GTK_BOX (item), label, FALSE, FALSE, 0); + + row = gtk_list_box_row_new (); + gtk_container_add (GTK_CONTAINER (row), item); + gtk_widget_show_all (item); + + update_row (sidebar, widget, row); + + /* Hook up events */ + g_signal_connect (widget, "child-notify::title", + G_CALLBACK (on_child_updated), sidebar); + g_signal_connect (widget, "child-notify::icon-name", + G_CALLBACK (on_child_updated), sidebar); + g_signal_connect (widget, "child-notify::needs-attention", + G_CALLBACK (on_child_updated), sidebar); + g_signal_connect (widget, "notify::visible", + G_CALLBACK (on_child_updated), sidebar); + g_signal_connect (widget, "child-notify::position", + G_CALLBACK (on_position_updated), sidebar); + + g_object_set_data (G_OBJECT (item), "stack-child", widget); + g_hash_table_insert (sidebar->rows, widget, row); + gtk_container_add (GTK_CONTAINER (sidebar->list), row); +} + +static void +remove_child (GtkWidget *widget, + XAppStackSidebar *sidebar) +{ + GtkWidget *row; + + row = g_hash_table_lookup (sidebar->rows, widget); + if (!row) + { + return; + } + + g_signal_handlers_disconnect_by_func (widget, on_child_updated, sidebar); + g_signal_handlers_disconnect_by_func (widget, on_position_updated, sidebar); + + gtk_container_remove (GTK_CONTAINER (sidebar->list), row); + g_hash_table_remove (sidebar->rows, widget); +} + +static void +populate_sidebar (XAppStackSidebar *sidebar) +{ + GtkWidget *widget; + GtkWidget *row; + + gtk_container_foreach (GTK_CONTAINER (sidebar->stack), (GtkCallback)add_child, sidebar); + + widget = gtk_stack_get_visible_child (sidebar->stack); + if (widget) + { + row = g_hash_table_lookup (sidebar->rows, widget); + gtk_list_box_select_row (sidebar->list, GTK_LIST_BOX_ROW (row)); + } +} + +static void +clear_sidebar (XAppStackSidebar *sidebar) +{ + gtk_container_foreach (GTK_CONTAINER (sidebar->stack), (GtkCallback)remove_child, sidebar); +} + +static void +on_child_changed (GtkWidget *widget, + GParamSpec *pspec, + XAppStackSidebar *sidebar) +{ + GtkWidget *child; + GtkWidget *row; + + child = gtk_stack_get_visible_child (GTK_STACK (widget)); + row = g_hash_table_lookup (sidebar->rows, child); + + if (row != NULL) + { + sidebar->in_child_changed = TRUE; + gtk_list_box_select_row (sidebar->list, GTK_LIST_BOX_ROW (row)); + sidebar->in_child_changed = FALSE; + } +} + +static void +on_stack_child_added (GtkContainer *container, + GtkWidget *widget, + XAppStackSidebar *sidebar) +{ + add_child (widget, sidebar); +} + +static void +on_stack_child_removed (GtkContainer *container, + GtkWidget *widget, + XAppStackSidebar *sidebar) +{ + remove_child (widget, sidebar); +} + +static void +disconnect_stack_signals (XAppStackSidebar *sidebar) +{ + g_signal_handlers_disconnect_by_func (sidebar->stack, on_stack_child_added, sidebar); + g_signal_handlers_disconnect_by_func (sidebar->stack, on_stack_child_removed, sidebar); + g_signal_handlers_disconnect_by_func (sidebar->stack, on_child_changed, sidebar); + g_signal_handlers_disconnect_by_func (sidebar->stack, disconnect_stack_signals, sidebar); +} + +static void +connect_stack_signals (XAppStackSidebar *sidebar) +{ + g_signal_connect_after (sidebar->stack, "add", + G_CALLBACK (on_stack_child_added), sidebar); + g_signal_connect_after (sidebar->stack, "remove", + G_CALLBACK (on_stack_child_removed), sidebar); + g_signal_connect (sidebar->stack, "notify::visible-child", + G_CALLBACK (on_child_changed), sidebar); + g_signal_connect_swapped (sidebar->stack, "destroy", + G_CALLBACK (disconnect_stack_signals), sidebar); +} + +static void +xapp_stack_sidebar_dispose (GObject *object) +{ + XAppStackSidebar *sidebar = XAPP_STACK_SIDEBAR (object); + + xapp_stack_sidebar_set_stack (sidebar, NULL); + + G_OBJECT_CLASS (xapp_stack_sidebar_parent_class)->dispose (object); +} + +static void +xapp_stack_sidebar_finalize (GObject *object) +{ + XAppStackSidebar *sidebar = XAPP_STACK_SIDEBAR (object); + + g_hash_table_destroy (sidebar->rows); + + G_OBJECT_CLASS (xapp_stack_sidebar_parent_class)->finalize (object); +} + +static void +xapp_stack_sidebar_class_init (XAppStackSidebarClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + object_class->dispose = xapp_stack_sidebar_dispose; + object_class->finalize = xapp_stack_sidebar_finalize; + object_class->set_property = xapp_stack_sidebar_set_property; + object_class->get_property = xapp_stack_sidebar_get_property; + + obj_properties[PROP_STACK] = + g_param_spec_object ("stack", + "Stack", + "Associated stack for this XAppStackSidebar", + GTK_TYPE_STACK, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY); + + g_object_class_install_properties (object_class, N_PROPERTIES, obj_properties); + + gtk_widget_class_set_css_name (widget_class, "stacksidebar"); +} + +/** + * xapp_stack_sidebar_new: + * + * Creates a new sidebar. + * + * Returns: the new #XAppStackSidebar + */ + +XAppStackSidebar * +xapp_stack_sidebar_new (void) +{ + return g_object_new (XAPP_TYPE_STACK_SIDEBAR, NULL); +} + +/** + * xapp_stack_sidebar_set_stack: + * @sidebar: a #XAppStackSidebar + * @stack: a #GtkStack + * + * Set the #GtkStack associated with this #XAppStackSidebar. + * + * The sidebar widget will automatically update according to the order + * (packing) and items within the given #GtkStack. + */ + +void +xapp_stack_sidebar_set_stack (XAppStackSidebar *sidebar, + GtkStack *stack) +{ + g_return_if_fail (XAPP_IS_STACK_SIDEBAR (sidebar)); + g_return_if_fail (GTK_IS_STACK (stack) || stack == NULL); + + if (sidebar->stack == stack) + { + return; + } + + if (sidebar->stack) + { + disconnect_stack_signals (sidebar); + clear_sidebar (sidebar); + g_clear_object (&sidebar->stack); + } + + if (stack) + { + sidebar->stack = g_object_ref (stack); + populate_sidebar (sidebar); + connect_stack_signals (sidebar); + } + + gtk_widget_queue_resize (GTK_WIDGET (sidebar)); + + g_object_notify (G_OBJECT (sidebar), "stack"); +} + +/** + * xapp_stack_sidebar_get_stack: + * @sidebar: a #XAppStackSidebar + * + * Retrieves the stack. + * See xapp_stack_sidebar_set_stack(). + * + * Returns: (nullable) (transfer none): the associated #GtkStack or + * %NULL if none has been set explicitly + */ + +GtkStack * +xapp_stack_sidebar_get_stack (XAppStackSidebar *sidebar) +{ + g_return_val_if_fail (XAPP_IS_STACK_SIDEBAR (sidebar), NULL); + + return GTK_STACK (sidebar->stack); +} diff -Nru xapp-1.2.2/libxapp/xapp-stack-sidebar.h xapp-1.4.5+cindy/libxapp/xapp-stack-sidebar.h --- xapp-1.2.2/libxapp/xapp-stack-sidebar.h 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/libxapp/xapp-stack-sidebar.h 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,22 @@ +#ifndef _XAPP_STACK_SIDEBAR_H_ +#define _XAPP_STACK_SIDEBAR_H_ + +#include +#include + +G_BEGIN_DECLS + +#define XAPP_TYPE_STACK_SIDEBAR (xapp_stack_sidebar_get_type ()) + +G_DECLARE_FINAL_TYPE (XAppStackSidebar, xapp_stack_sidebar, XAPP, STACK_SIDEBAR, GtkBin) + +XAppStackSidebar *xapp_stack_sidebar_new (void); + +void xapp_stack_sidebar_set_stack (XAppStackSidebar *sidebar, + GtkStack *stack); + +GtkStack *xapp_stack_sidebar_get_stack (XAppStackSidebar *sidebar); + +G_END_DECLS + +#endif /*_XAPP_STACK_SIDEBAR_H_ */ diff -Nru xapp-1.2.2/makepot xapp-1.4.5+cindy/makepot --- xapp-1.2.2/makepot 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/makepot 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,4 @@ +#!/bin/bash + +xgettext --language=C --keyword=_ --keyword=N_ --output=xapp.pot libxapp/*.c + diff -Nru xapp-1.2.2/meson.build xapp-1.4.5+cindy/meson.build --- xapp-1.2.2/meson.build 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/meson.build 2018-12-11 14:21:26.000000000 +0000 @@ -1,6 +1,6 @@ project('xapp', 'c', - version : '1.2.2' + version : '1.4.5' ) gnome = import('gnome') @@ -27,7 +27,7 @@ top_inc = include_directories('.') subdir('libxapp') -# subdir('po') +subdir('po') subdir('pygobject') subdir('files') subdir('schemas') diff -Nru xapp-1.2.2/po/LINGUAS xapp-1.4.5+cindy/po/LINGUAS --- xapp-1.2.2/po/LINGUAS 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/po/LINGUAS 2018-12-11 14:21:26.000000000 +0000 @@ -1 +1,33 @@ +am +bg +ca +cs +cy +da +de +en_GB +eo +es +eu +fi fr +hr +hu +ia +id +is +it +kab +ko +lt +nl +pl +pt_BR +ro +ru +sk +sr +sv +tr +uk +zh_CN diff -Nru xapp-1.2.2/po/POTFILES xapp-1.4.5+cindy/po/POTFILES --- xapp-1.2.2/po/POTFILES 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/po/POTFILES 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -libxapp/xapp-gtk-window.c -libxapp/xapp-kbd-layout-controller.c -libxapp/xapp-monitor-blanker.c -libxapp/xapp-preferences-window.c diff -Nru xapp-1.2.2/po/am.po xapp-1.4.5+cindy/po/am.po --- xapp-1.2.2/po/am.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/am.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Amharic translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-16 23:13+0000\n" +"Last-Translator: samson \n" +"Language-Team: Amharic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "የ ምልክት መጠን" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "የ ተመረጠው የ ምልክት መጠን" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "ምልክት" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "ተግባሮች" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "መተግበሪያ" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "ምድቦች" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "አካላቶች" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "አርማዎች" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "ኢሞጂ" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "ቦታዎች" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "ሁኔታው" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "ሌሎች" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "ምልክት ይምረጡ" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "መፈለጊያ" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "መቃኛ" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "በ መጫን ላይ..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "ይምረጡ" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "መሰረዣ" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "የ ምስል ፋይል ይምረጡ" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "መክፈቻ" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "ምስል" diff -Nru xapp-1.2.2/po/bg.po xapp-1.4.5+cindy/po/bg.po --- xapp-1.2.2/po/bg.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/bg.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Bulgarian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-16 17:12+0000\n" +"Last-Translator: spacy01 \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Размер на иконите" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Предпочитан размер на иконките." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Иконка" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Реда представящ иконката." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Действия" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Приложения" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Категории" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Устройства" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Емблеми" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Емоджи" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime типове" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Места" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Състояние" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Други" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Избор на иконка" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Търсене" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Преглед" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Зареждане..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Избери" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Отказ" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Разреши път" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Дали да се резреши път." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Избор на файл с изображение" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Отвори" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Образ" diff -Nru xapp-1.2.2/po/ca.po xapp-1.4.5+cindy/po/ca.po --- xapp-1.2.2/po/ca.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/ca.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Catalan translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 22:13+0000\n" +"Last-Translator: Isidro Pisa \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Mida de la icona" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "La mida preferida de la icona." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Icona" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "La cadena que representa la icona." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Accions" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplicacions" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categories" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Dispositius" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblemes" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Tipus MIME" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Llocs" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Estat" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Altres" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Seleccioneu una icona" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Cerca" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Navega" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Carregant ..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Selecciona" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Cancel·la" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Permet camins" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Si es permeten camins o no." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Selecciona el fitxer d'imatge" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Obre" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Imatge" diff -Nru xapp-1.2.2/po/cs.po xapp-1.4.5+cindy/po/cs.po --- xapp-1.2.2/po/cs.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/cs.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Czech translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 18:10+0000\n" +"Last-Translator: Pavel Borecki \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Velikost ikony" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Upřednostňovaná velikost ikony." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikona" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Řetězec představující ikonu" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Akce" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplikace" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategorie" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Zařízení" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Symbolické obrázky" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Smajlíky" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "MIME typy" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Místa" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Stav" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Ostatní" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Zvolte ikonu" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Hledat" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Procházet" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Načítání…" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Vybrat" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Storno" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Umožnit popisy umístění" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Zda umožnit popisy umístění." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Vyberte soubor s obrázkem" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Otevřít" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Obrázek" diff -Nru xapp-1.2.2/po/cy.po xapp-1.4.5+cindy/po/cy.po --- xapp-1.2.2/po/cy.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/cy.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Welsh translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-12-05 10:06+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Welsh \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "" diff -Nru xapp-1.2.2/po/da.po xapp-1.4.5+cindy/po/da.po --- xapp-1.2.2/po/da.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/da.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Danish translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 17:35+0000\n" +"Last-Translator: Alan Mortensen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Ikonstørrelse" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Den foretrukne ikonstørrelse." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikon" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Strengen som repræsenterer ikonet." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Handlinger" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Programmer" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategorier" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Enheder" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblemer" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mimetyper" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Steder" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Status" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Andet" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Vælg et ikon" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Søg" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Gennemse" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Indlæser …" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Vælg" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Annullér" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Tillad stier" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Hvorvidt stier skal tillades." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Vælg billedfil" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Åbn" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Billede" diff -Nru xapp-1.2.2/po/de.po xapp-1.4.5+cindy/po/de.po --- xapp-1.2.2/po/de.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/de.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# German translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 14:32+0000\n" +"Last-Translator: Tobias Bannert \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Symbolgröße" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Die bevorzugte Symbolgröße." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Symbol" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Die Zeichenfolge stellt das Symbol dar." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Aktionen" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Anwendungen" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategorien" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Geräte" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Embleme" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime-Typen" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Orte" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Zustand" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Andere" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Ein Symbol auswählen" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Suchen" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Durchsuchen" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Wird geladen …" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Auswählen" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Abbrechen" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Pfade erlauben" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Ob Pfade erlaubt sind." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Bilddatei auswählen" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Öffnen" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Bild" diff -Nru xapp-1.2.2/po/en_GB.po xapp-1.4.5+cindy/po/en_GB.po --- xapp-1.2.2/po/en_GB.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/en_GB.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# English (United Kingdom) translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 17:56+0000\n" +"Last-Translator: Stephan Woidowski \n" +"Language-Team: English (United Kingdom) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Icon size" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "The preferred icon size." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Icon" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "The string representing the icon." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Actions" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Applications" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categories" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Devices" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblems" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime types" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Places" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Status" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Other" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Choose an icon" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Search" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Browse" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Loading..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Select" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Cancel" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Allow Paths" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Whether to allow paths." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Select image file" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Open" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Image" diff -Nru xapp-1.2.2/po/eo.po xapp-1.4.5+cindy/po/eo.po --- xapp-1.2.2/po/eo.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/eo.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Esperanto translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-12-09 18:27+0000\n" +"Last-Translator: Piet Coppens \n" +"Language-Team: Esperanto \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Piktograma grando" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "" diff -Nru xapp-1.2.2/po/es.po xapp-1.4.5+cindy/po/es.po --- xapp-1.2.2/po/es.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/es.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Spanish translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 22:12+0000\n" +"Last-Translator: Isidro Pisa \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Tamaño de Icono" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Tamaño preferido de Icono." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Icono" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "La cadena que representa un icono." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Acciones" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplicaciones" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categorías" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Dispositivos" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblemas" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Tipos MIME" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Lugares" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Estado" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Otros" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Elija un icono" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Buscar" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Explorar" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Cargando..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Seleccionar" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Cancelar" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Permitir rutas" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Si se permiten rutas o no." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Seleccionar archivo de imagen" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Abrir" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Imagen" diff -Nru xapp-1.2.2/po/eu.po xapp-1.4.5+cindy/po/eu.po --- xapp-1.2.2/po/eu.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/eu.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Basque translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-25 20:36+0000\n" +"Last-Translator: Asier Iturralde Sarasola \n" +"Language-Team: Basque \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Ikonoaren tamaina" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Hobetsitako ikono tamaina" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikonoa" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Ikonoa adierazten duen katea." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Ekintzak" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplikazioak" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategoriak" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Gailuak" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Ikurrak" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emojiak" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime motak" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Lekuak" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Egoera" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Bestelakoak" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Aukeratu ikono bat" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Bilatu" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Arakatu" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Kargatzen..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Hautatu" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Utzi" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Onartu bideak" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Bideak onartu behar diren ala ez." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Hautatu irudi-fitxategia" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Ireki" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Irudia" diff -Nru xapp-1.2.2/po/fi.po xapp-1.4.5+cindy/po/fi.po --- xapp-1.2.2/po/fi.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/fi.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Finnish translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-16 14:14+0000\n" +"Last-Translator: Ari Ervasti \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Kuvakkeen koko" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Haluttu kuvakkeen koko." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Kuvake" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Kuvaketta kuvaava merkkijono." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Toiminnot" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Sovellukset" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Luokat" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Laitteet" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Tunnukset" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime–tyypit" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Sijainnit" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Tila" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Muut" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Valitse kuvake" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Etsi" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Selaa" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Ladataan..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Valitse" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Peruuta" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Salli polut" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Tuleeko polut sallia." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Valitse kuvatiedosto" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Avaa" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Kuva" diff -Nru xapp-1.2.2/po/fr.po xapp-1.4.5+cindy/po/fr.po --- xapp-1.2.2/po/fr.po 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/po/fr.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# French translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-21 10:06+0000\n" +"Last-Translator: Clement Lefebvre \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Taille de l'icône" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "La taille d'icône préférée." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Icône" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "La chaîne représentant l'icône." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Actions" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Applications" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Catégories" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Appareils" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblèmes" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Émojis" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Types MIME" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Emplacements" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Statut" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Autre" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Choisissez une icone" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Rechercher" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Parcourir" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Chargement…" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Sélectionner" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Annuler" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Autoriser les chemins d'accès" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Autoriser ou non les chemins d'accès." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Sélectionner une image" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Ouvrir" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Image" diff -Nru xapp-1.2.2/po/hr.po xapp-1.4.5+cindy/po/hr.po --- xapp-1.2.2/po/hr.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/hr.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Croatian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-19 17:37+0000\n" +"Last-Translator: gogo \n" +"Language-Team: Croatian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Veličina ikona" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Željena veličina ikona." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikona" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Unos koji predstavlja ikonu." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Radnje" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplikacije" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategorije" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Uređaji" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Obilježja" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Smajliji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime vrste" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Lokacije" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Stanje" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Ostalo" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Odaberi ikonu" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Pretraži" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Pregledaj" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Učitavanje..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Odaberi" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Odustani" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Dopusti putanje" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Treba li dopustiti putanje." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Odaberi datoteku slike" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Otvori" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Slika" diff -Nru xapp-1.2.2/po/hu.po xapp-1.4.5+cindy/po/hu.po --- xapp-1.2.2/po/hu.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/hu.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,117 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-25 15:14+0000\n" +"Last-Translator: KAMI \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" +"Language: hu\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Ikonméret" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Az ikon mérete." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikon" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Az ikon megnevezése." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Műveletek" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Alkalmazások" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategóriák" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Eszközök" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblémák" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emodzsi" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "MIME-típusok" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Helyek" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Állapot" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Egyéb" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Válasszon ikont" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Keresés" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Tallózás" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Betöltés…" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Kiválasztás" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Mégse" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Megengedett elérési útvonalak" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Engedélyezze a további elérési útvonalakat." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Válasszon képfájlt" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Megnyitás" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Kép" diff -Nru xapp-1.2.2/po/ia.po xapp-1.4.5+cindy/po/ia.po --- xapp-1.2.2/po/ia.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/ia.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Interlingua translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-16 20:27+0000\n" +"Last-Translator: karm \n" +"Language-Team: Interlingua \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Dimensiones del Icone" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Le dimension preferite del icone." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Icone" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Le catena de characteres que representa le icone." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Actiones" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Applicationes" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categorias" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Dispositivos" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblemas" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Typos de mime" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Locos" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Stato" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Altere" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Elige un icone" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Cercar" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Navigar" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Cargamento..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Seliger" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Cancellar" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Consentir le percursos" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Si consentir le percursos." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Eliger le file de imagine" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Aperir" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Imagine" diff -Nru xapp-1.2.2/po/id.po xapp-1.4.5+cindy/po/id.po --- xapp-1.2.2/po/id.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/id.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Indonesian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-09 04:14+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Indonesian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "" diff -Nru xapp-1.2.2/po/is.po xapp-1.4.5+cindy/po/is.po --- xapp-1.2.2/po/is.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/is.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Icelandic translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-12-05 17:38+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Táknmyndastærð" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Kjörstærð táknmyndar." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Táknmynd" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Textastrengurinn sem stendur fyrir táknmyndina." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Aðgerðir" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Forrit" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Flokkar" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Tæki" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Merkimiðar" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Tjáningartákn - emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "MIME tegundir" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Staðir" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Staða" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Annað" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Veldu táknmynd" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Leita" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Flakka" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Hleð inn..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Velja" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Hætta við" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Leyfa slóðir" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Hvort leyfa eigi slóðir." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Veldu myndskrá" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Opna" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Mynd" diff -Nru xapp-1.2.2/po/it.po xapp-1.4.5+cindy/po/it.po --- xapp-1.2.2/po/it.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/it.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Italian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-25 13:47+0000\n" +"Last-Translator: lang-it \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Dimensione econe" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "La dimensione preferita per le icone" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Icona" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "La stringa che rappresenta l'icona" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Azioni" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Applicazioni" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categorie" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Dispositivi" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Simboli" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Tipi Mime" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Risorse" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Stato" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Altro" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Scegliere un'icona" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Cerca" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Sfoglia" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Caricamento..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Seleziona" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Annulla" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Consenti percorsi" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Se consentire i percorsi" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Selezione un file immagine" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Apri" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Immagine" diff -Nru xapp-1.2.2/po/kab.po xapp-1.4.5+cindy/po/kab.po --- xapp-1.2.2/po/kab.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/kab.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Kabyle translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 15:41+0000\n" +"Last-Translator: Slimane Amiri \n" +"Language-Team: Kabyle \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Tiddi n tignit" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Tiddi tanuraft n tignit." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Tignit" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Azrar ara yesenkden tignit." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Tigawin" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Isnasen" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Taggayin" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Ibenkan" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Izamulen" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Tignit n uḥulfu" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Anawen mime" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Isunen" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Addad" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Wayeḍ" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Fren tagnit" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Nadi" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Snirem" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Tulya..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Fren" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Sefsex" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Sireg iberdan" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Ma yella ad tsirgeḍ iberdan." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Fren afaylu n tugna" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Ldi" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Tugna" diff -Nru xapp-1.2.2/po/ko.po xapp-1.4.5+cindy/po/ko.po --- xapp-1.2.2/po/ko.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/ko.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Korean translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 14:19+0000\n" +"Last-Translator: Jung-Kyu Park \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "아이콘 크기" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "좋아하는 아이콘 크기입니다." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "아이콘" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "아이콘을 표시하는 문자열입니다." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "동작" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "애플리케이션" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "카테고리" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "장치" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "엠블럼" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "이모지" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime 형식" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "위치" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "상태" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "기타" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "아이콘 선택" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "검색" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "탐색" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "불러오고 있습니다..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "선택" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "취소" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "경로 허용" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "경로 허용 여부 결정." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "이미지 파일 선택" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "열기" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "이미지" diff -Nru xapp-1.2.2/po/lt.po xapp-1.4.5+cindy/po/lt.po --- xapp-1.2.2/po/lt.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/lt.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Lithuanian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 21:11+0000\n" +"Last-Translator: Moo \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Piktogramų dydis" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Pageidaujamas piktogramų dydis." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Piktograma" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Eilutė, atvaizduojanti piktogramą." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Veiksmai" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Programos" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategorijos" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Įrenginiai" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblemos" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Šypsenėlės" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime tipai" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Vietos" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Būsena" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Kita" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Pasirinkite piktogramą" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Ieškoti" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Naršyti" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Įkeliama..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Pasirinkti" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Atsisakyti" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Leisti kelius" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Ar leisti kelius." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Pasirinkti paveikslo failą" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Atverti" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Paveikslas" diff -Nru xapp-1.2.2/po/nl.po xapp-1.4.5+cindy/po/nl.po --- xapp-1.2.2/po/nl.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/nl.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Dutch translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 11:27+0000\n" +"Last-Translator: Pjotr12345 \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Pictogramgrootte" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "De voorkeursgrootte van de pictogrammen." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Pictogram" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "De tekenreeks die het pictogram vertegenwoordigt." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Acties" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Toepassingen" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categorieën" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Apparaten" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblemen" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emotiepictogrammen" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Bestandssoorten" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Locaties" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Status" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Overige" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Kies een pictogram" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Zoeken" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Bladeren" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Bezig met laden…" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Kiezen" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Afbreken" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Paden toestaan" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Of paden al dan niet moeten worden toegestaan." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Kies afbeeldingsbestand" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Openen" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Afbeelding" diff -Nru xapp-1.2.2/po/pl.po xapp-1.4.5+cindy/po/pl.po --- xapp-1.2.2/po/pl.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/pl.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Polish translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-17 12:54+0000\n" +"Last-Translator: Mariusz \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Rozmiar ikon" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Preferowana wielkość ikon." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikona" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Akcje" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Programy" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategorie" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Urządzenia" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Symbole" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Typy Mime" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Miejsca" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Status" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Inne" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Wybór ikony" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Wyszukaj" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Przeglądaj" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Wczytywanie…" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Wybierz" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Anuluj" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Zezwól ścieżki" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Wybierz plik graficzny" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Otwórz" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Obraz" diff -Nru xapp-1.2.2/po/pt_BR.po xapp-1.4.5+cindy/po/pt_BR.po --- xapp-1.2.2/po/pt_BR.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/pt_BR.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Brazilian Portuguese translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-16 12:09+0000\n" +"Last-Translator: Gilberto vagner \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Tamanho do ícone" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "O tamanho do ícone preferido" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ícone" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "O texto representando o ícone." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Ações" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplicativos" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categorias" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Dispositivos" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblemas" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Tipos MIME" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Locais" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Status" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Outros" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Escolha um ícone" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Pesquisar" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Navegar" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Carregando…" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Selecionar" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Cancelar" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Caminhos Permitidos" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Que seja para permitir caminhos." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Selecionar arquivo da imagem" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Abrir" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Imagem" diff -Nru xapp-1.2.2/po/ro.po xapp-1.4.5+cindy/po/ro.po --- xapp-1.2.2/po/ro.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/ro.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Romanian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-12-04 09:27+0000\n" +"Last-Translator: Dorian Baciu \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Mărime pictogramă" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Dimensiunea preferată a pictogramei." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Pictogramă" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Șirul reprezentând pictograma." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Acțiuni" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplicații" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Categorii" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Dispozitive" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Embleme" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Tipuri MIME" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Locații" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Stare" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Alte" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Alege o pictogramă" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Căutare" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Navigare" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Se încarcă..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Selectare" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Anulare" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Permite căi" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Fie pentru a permite căi." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Selectare fişier imagine" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Deschide" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Imagine" diff -Nru xapp-1.2.2/po/ru.po xapp-1.4.5+cindy/po/ru.po --- xapp-1.2.2/po/ru.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/ru.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Russian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-28 16:30+0000\n" +"Last-Translator: Dmitriy Kulikov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Размер значка" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Предпочтительный размер значка." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Значок" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Строка, соответствующая значку." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Действия" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Приложения" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Категории" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Устройства" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Эмблемы" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Эмодзи" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Типы MIME" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Места" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Статус" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Другое" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Выберите значок" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Поиск" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Обзор" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Загрузка…" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Выбрать" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Отмена" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Разрешать пути" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Разрешать ли пути." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Выберите файл изображения" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Открыть" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Изображение" diff -Nru xapp-1.2.2/po/sk.po xapp-1.4.5+cindy/po/sk.po --- xapp-1.2.2/po/sk.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/sk.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,122 @@ +# Slovak translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-01 17:36+0000\n" +"Last-Translator: Vendelín Slezák \n" +"Language-Team: Slovak \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" +"Language: sk\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Veľkosť ikony" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Preferovaná veľkosť ikony." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikona" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Reťazec reprezentujúci ikonu." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Akcie" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Aplikácie" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategórie" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Zariadenia" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblémy" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emotikony" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime typy" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Miesta" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Status" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Ostatné" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Hľadať" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Prehliadať" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Vybrať" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Zrušiť" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Povoliť cesty" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Či povoliť cesty." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Vybrať súbor obrázku" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Otvoriť" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Obrázok" diff -Nru xapp-1.2.2/po/sr.po xapp-1.4.5+cindy/po/sr.po --- xapp-1.2.2/po/sr.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/sr.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Serbian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-20 20:38+0000\n" +"Last-Translator: Knez \n" +"Language-Team: Serbian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Величина иконе" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Жељена величина иконе." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Икона" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Унос који представља икону." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Радње" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Апликације" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Категорије" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Уређаји" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Обележја" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Смајлији" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Миме врсте" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Локације" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Стање" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Остало" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Изаберите икону" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Претрага" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Погледај" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Учитавање..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Изаберите" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Одустани" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Дозволите путању" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Требало би дозволити путању." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Изаберите датотеку слике" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Отвори" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Слика" diff -Nru xapp-1.2.2/po/sv.po xapp-1.4.5+cindy/po/sv.po --- xapp-1.2.2/po/sv.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/sv.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Swedish translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 19:29+0000\n" +"Last-Translator: Jan-Olof Svensson \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Ikonstorlek" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Föredragen ikonstorlek." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Ikon" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Strängen som representerar ikonen." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Åtgärder" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Program" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategorier" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Enheter" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Emblem" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emojier" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mimetyper" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Platser" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Status" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Annan" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Välj en ikon" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Sök" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Bläddra" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Hämtar..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Välj" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Avbryt" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Tillåt sökvägar" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Om du vill tillåta sökvägar." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Välj bildfil" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Öppna" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Bild" diff -Nru xapp-1.2.2/po/tr.po xapp-1.4.5+cindy/po/tr.po --- xapp-1.2.2/po/tr.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/tr.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Turkish translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-15 10:17+0000\n" +"Last-Translator: Butterfly \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Simge boyutu" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Tercih edilen simge boyutu." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Simge" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Simgeyi temsil eden dize." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Eylemler" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Uygulamalar" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Kategoriler" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Aygıtlar" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Amblemler" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "İfade" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Mime türleri" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Yerler" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Durum" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Diğer" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Bir simge seçin" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Arama" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Gözat" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Yükleniyor..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Seç" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "İptal" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Yollara İzin Ver" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Yollara izin verilip verilmeyeceği." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Resim dosyası seç" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Aç" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Resim" diff -Nru xapp-1.2.2/po/uk.po xapp-1.4.5+cindy/po/uk.po --- xapp-1.2.2/po/uk.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/uk.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Ukrainian translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-18 10:51+0000\n" +"Last-Translator: stuartlittle \n" +"Language-Team: Ukrainian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "Розмір іконки" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "Бажаний розмір іконки." + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "Іконка" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "Рядок, який представляє іконку." + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "Дії" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "Додатки" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "Категорії" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "Пристрої" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "Емблеми" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Емодзі" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "Типи MIME" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "Місця" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "Стан" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "Інше" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "Виберіть піктограму" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "Пошук" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "Перегляд" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "Завантаження..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "Вибрати" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "Скасувати" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "Дозволяти шляхи" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "Чи дозволяти шляхи." + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "Вибрати файл зображення" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "Відкрити" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "Зображення" diff -Nru xapp-1.2.2/po/zh_CN.po xapp-1.4.5+cindy/po/zh_CN.po --- xapp-1.2.2/po/zh_CN.po 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/po/zh_CN.po 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# Chinese (Simplified) translation for linuxmint +# Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 +# This file is distributed under the same license as the linuxmint package. +# FIRST AUTHOR , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: linuxmint\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: 2018-11-16 05:32+0000\n" +"Last-Translator: AlephAlpha \n" +"Language-Team: Chinese (Simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2018-12-11 12:03+0000\n" +"X-Generator: Launchpad (build 18837)\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "图标大小" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "首选图标大小。" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "图标" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "代表图标的字符串。" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "动作" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "应用程序" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "分类" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "设备" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "徽标" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "Emoji" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "MIME 类型" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "位置" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "状态" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "其他" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "选择一个图标" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "搜索" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "浏览" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "正在加载..." + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "选择" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "取消" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "允许路径" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "是否允许路径。" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "选择图像文件" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "打开" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr "图像" diff -Nru xapp-1.2.2/pygobject/XApp.py xapp-1.4.5+cindy/pygobject/XApp.py --- xapp-1.2.2/pygobject/XApp.py 2018-07-17 07:36:03.000000000 +0000 +++ xapp-1.4.5+cindy/pygobject/XApp.py 2018-12-11 14:21:26.000000000 +0000 @@ -21,5 +21,15 @@ class GtkWindow(XApp.GtkWindow): pass +class GtkButton(XApp.IconChooserButton): + pass + +class GtkBin(XApp.StackSidebar): + pass + GtkWindow = override(GtkWindow) +GtkButton = override(GtkButton) +GtkBin = override(GtkBin) __all__.append('GtkWindow') +__all__.append('GtkButton') +__all__.append('GtkBin') diff -Nru xapp-1.2.2/test-scripts/xapp-icon-chooser-dialog xapp-1.4.5+cindy/test-scripts/xapp-icon-chooser-dialog --- xapp-1.2.2/test-scripts/xapp-icon-chooser-dialog 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/test-scripts/xapp-icon-chooser-dialog 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,49 @@ +#!/usr/bin/python3 + +import gi +gi.require_version('Gtk', '3.0') +gi.require_version('XApp', '1.0') + +from gi.repository import Gtk, XApp, Gdk + +import argparse +import signal +signal.signal(signal.SIGINT, signal.SIG_DFL) + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + group = parser.add_mutually_exclusive_group() + # if there are no arguments supplied, we should create a new launcher in the default location (usually ~/.local/share/applications/) + group.add_argument('-c', '--category', dest='category', metavar='CATEGORY', + help='The category to select when the dialog is opened.') + group.add_argument('-i', '--icon-string', dest='icon', metavar='ICON_STRING', + help='The icon to select when the dialog is opened. This can be an icon name or a path. ' + 'If the icon doesn\'t exist, it will not cause an error, but there may not be an icon ' + 'selected.') + parser.add_argument('-b', '--clipboard', dest='clipboard', action='store_true', + help='If this option is supplied, the result will be copied to the clipboard when an icon is ' + 'selected and the dialog closed.') + parser.add_argument('-p', '--disallow-paths', dest='paths', action='store_false', + help='causes the path.') + + args = parser.parse_args() + + dialog = XApp.IconChooserDialog(allow_paths=args.paths) + dialog.set_skip_taskbar_hint(False) + if args.category: + response = dialog.run_with_category(args.category) + elif args.icon: + response = dialog.run_with_icon(args.icon) + else: + response = dialog.run() + + if response == Gtk.ResponseType.OK: + string = dialog.get_icon_string() + print(string) + + if args.clipboard: + clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) + clipboard.set_text(string, -1) + clipboard.store() + else: + print('Dialog canceled') diff -Nru xapp-1.2.2/xapp.pot xapp-1.4.5+cindy/xapp.pot --- xapp-1.2.2/xapp.pot 1970-01-01 00:00:00.000000000 +0000 +++ xapp-1.4.5+cindy/xapp.pot 2018-12-11 14:21:26.000000000 +0000 @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-11-15 10:11+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libxapp/xapp-icon-chooser-button.c:162 +#: libxapp/xapp-icon-chooser-dialog.c:601 +msgid "Icon size" +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:163 +#: libxapp/xapp-icon-chooser-dialog.c:602 +msgid "The preferred icon size." +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:177 +msgid "Icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-button.c:178 +msgid "The string representing the icon." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:93 +msgid "Actions" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:96 +msgid "Applications" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:99 +msgid "Categories" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:102 +msgid "Devices" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:105 +msgid "Emblems" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:108 +msgid "Emoji" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:111 +msgid "Mime types" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:114 +msgid "Places" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:117 +msgid "Status" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:120 +msgid "Other" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:449 +msgid "Choose an icon" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:471 +msgid "Search" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:478 +msgid "Browse" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:534 +msgid "Loading..." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:558 +msgid "Select" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:567 +#: libxapp/xapp-icon-chooser-dialog.c:1787 +msgid "Cancel" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:614 +msgid "Allow Paths" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:615 +msgid "Whether to allow paths." +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1784 +msgid "Select image file" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1789 +msgid "Open" +msgstr "" + +#: libxapp/xapp-icon-chooser-dialog.c:1804 +msgid "Image" +msgstr ""