Hello community, here is the log from the commit of package polari for openSUSE:Factory checked in at 2016-05-16 12:04:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/polari (Old) and /work/SRC/openSUSE:Factory/.polari.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "polari" Changes: -------- --- /work/SRC/openSUSE:Factory/polari/polari.changes 2016-05-05 08:12:49.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.polari.new/polari.changes 2016-05-16 12:04:04.000000000 +0200 @@ -1,0 +2,8 @@ +Thu May 12 13:33:51 UTC 2016 - zai...@opensuse.org + +- Update to version 3.20.2: + + Support pasting text/image content from files (bgo#766066). + + Enable text/image uploads via drag and drop (bgo#766068). + + Updated translations. + +------------------------------------------------------------------- Old: ---- polari-3.20.1.tar.xz New: ---- polari-3.20.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ polari.spec ++++++ --- /var/tmp/diff_new_pack.Gd5401/_old 2016-05-16 12:04:05.000000000 +0200 +++ /var/tmp/diff_new_pack.Gd5401/_new 2016-05-16 12:04:05.000000000 +0200 @@ -18,7 +18,7 @@ Name: polari -Version: 3.20.1 +Version: 3.20.2 Release: 0 Summary: An IRC Client for GNOME License: GPL-2.0+ and LGPL-2.1+ ++++++ polari-3.20.1.tar.xz -> polari-3.20.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/NEWS new/polari-3.20.2/NEWS --- old/polari-3.20.1/NEWS 2016-04-29 18:55:32.000000000 +0200 +++ new/polari-3.20.2/NEWS 2016-05-10 22:01:20.000000000 +0200 @@ -1,3 +1,14 @@ +3.20.2 - "Screw Maximilian" +=========================== +* Support pasting text/image content from files [Florian; #766066] +* Enable text/image uploads via drag and drop [Florian; #766068] + +Contributors: + Florian Müllner + +Translations: + Kjartan Maraas [nb] + 3.20.1 - "Judy Stays" ===================== * Update roomList header popover on name changes [Sankaranarayanan; #763178] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/configure new/polari-3.20.2/configure --- old/polari-3.20.1/configure 2016-04-29 18:56:34.000000000 +0200 +++ new/polari-3.20.2/configure 2016-05-10 22:02:08.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for polari 3.20.1. +# Generated by GNU Autoconf 2.69 for polari 3.20.2. # # Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=polari>. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='polari' PACKAGE_TARNAME='polari' -PACKAGE_VERSION='3.20.1' -PACKAGE_STRING='polari 3.20.1' +PACKAGE_VERSION='3.20.2' +PACKAGE_STRING='polari 3.20.2' PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=polari' PACKAGE_URL='' @@ -1393,7 +1393,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures polari 3.20.1 to adapt to many kinds of systems. +\`configure' configures polari 3.20.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1463,7 +1463,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of polari 3.20.1:";; + short | recursive ) echo "Configuration of polari 3.20.2:";; esac cat <<\_ACEOF @@ -1595,7 +1595,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -polari configure 3.20.1 +polari configure 3.20.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1964,7 +1964,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by polari $as_me 3.20.1, which was +It was created by polari $as_me 3.20.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2845,7 +2845,7 @@ # Define the identity of the package. PACKAGE='polari' - VERSION='3.20.1' + VERSION='3.20.2' cat >>confdefs.h <<_ACEOF @@ -16181,7 +16181,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by polari $as_me 3.20.1, which was +This file was extended by polari $as_me 3.20.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16238,7 +16238,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -polari config.status 3.20.1 +polari config.status 3.20.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/configure.ac new/polari-3.20.2/configure.ac --- old/polari-3.20.1/configure.ac 2016-04-29 18:55:32.000000000 +0200 +++ new/polari-3.20.2/configure.ac 2016-05-10 22:01:27.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([polari],[3.20.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=polari],[polari]) +AC_INIT([polari],[3.20.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=polari],[polari]) AX_IS_RELEASE([git-directory]) AC_SUBST([APP_ID],[org.gnome.Polari]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/po/nb.po new/polari-3.20.2/po/nb.po --- old/polari-3.20.1/po/nb.po 2016-04-23 01:19:31.000000000 +0200 +++ new/polari-3.20.2/po/nb.po 2016-05-10 21:56:34.000000000 +0200 @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: polari 3.19.x\n" +"Project-Id-Version: polari 3.20.x\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-01-10 20:40+0100\n" -"PO-Revision-Date: 2016-01-10 20:41+0100\n" +"POT-Creation-Date: 2016-05-01 15:19+0200\n" +"PO-Revision-Date: 2016-05-01 15:24+0200\n" "Last-Translator: Kjartan Maraas <kmar...@gnome.org>\n" "Language-Team: Norwegian Bokmål <i18n...@lister.ping.uio.no>\n" "Language: \n" @@ -20,13 +20,13 @@ "X-Rosetta-Export-Date: 2007-02-25 00:08+0000\n" #: ../data/appdata/org.gnome.Polari.appdata.xml.in.h:1 -#: ../data/org.gnome.Polari.desktop.in.h:1 ../data/resources/main-window.ui.h:3 -#: ../src/roomStack.js:77 +#: ../data/org.gnome.Polari.desktop.in.h:1 ../data/resources/main-window.ui.h:1 +#: ../src/roomStack.js:94 msgid "Polari" msgstr "Polari" #: ../data/appdata/org.gnome.Polari.appdata.xml.in.h:2 -#: ../data/org.gnome.Polari.desktop.in.h:2 ../src/application.js:455 +#: ../data/org.gnome.Polari.desktop.in.h:2 ../src/application.js:625 msgid "An Internet Relay Chat Client for GNOME" msgstr "En Internet Relay Chat-klient for GNOME" @@ -56,10 +56,6 @@ msgid "IRC;Internet;Relay;Chat;" msgstr "IRC;Internett;Relay;Chat;Prat;Lynmeldinger;" -#: ../data/org.gnome.Polari.desktop.in.h:4 -msgid "Show connections" -msgstr "Vis tilkoblinger" - #: ../data/org.gnome.Polari.gschema.xml.h:1 msgid "Saved channel list" msgstr "Lagret kanalliste" @@ -84,170 +80,200 @@ msgid "Window maximized state" msgstr "Vinduets maksimeringstilstand" +#: ../data/org.gnome.Polari.gschema.xml.h:7 +msgid "Last active channel" +msgstr "Sist aktive kanal" + +#: ../data/org.gnome.Polari.gschema.xml.h:8 +msgid "Last active (selected) channel" +msgstr "Sist aktive (valgte) kanal" + #: ../data/resources/connection-details.ui.h:1 -msgid "_Address" -msgstr "_Adresse" +msgid "_Server Address" +msgstr "_Tjeneradresse" #: ../data/resources/connection-details.ui.h:2 -msgid "_Description" -msgstr "_Beskrivelse" +msgid "Net_work Name" +msgstr "Nett_verksnavn" #: ../data/resources/connection-details.ui.h:3 +#: ../data/resources/join-room-dialog.ui.h:8 +msgid "optional" +msgstr "valgfri" + +#: ../data/resources/connection-details.ui.h:4 +msgid "Use secure c_onnection" +msgstr "Bruk sikker tilk_obling" + +#: ../data/resources/connection-details.ui.h:5 msgid "_Nickname" msgstr "Kalle_navn" -#: ../data/resources/connection-details.ui.h:4 +#: ../data/resources/connection-details.ui.h:6 msgid "_Real Name" msgstr "Vi_rkelig navn" -#: ../data/resources/connection-details.ui.h:5 -#: ../data/resources/join-room-dialog.ui.h:4 -msgid "optional" -msgstr "valgfri" +#: ../data/resources/connection-properties.ui.h:1 +#: ../data/resources/entry-area.ui.h:4 +#: ../data/resources/join-room-dialog.ui.h:2 +msgid "_Cancel" +msgstr "_Avbryt" -#. translators: This will be used in the phrase: "Open Connections in the application menu" -#. translators: This will be used in the phrase: "Enable them by opening Connections in the application menu" -#: ../data/resources/connection-list-dialog.ui.h:1 -#: ../data/resources/menus.ui.h:1 ../src/roomStack.js:113 -#: ../src/roomStack.js:123 -msgid "Connections" -msgstr "Tilkoblinger" - -#: ../data/resources/connection-list-dialog.ui.h:2 -msgid "Use the + button to add a new connection." -msgstr "Bruk +-knappen for å legge til en ny tilkobling." - -#: ../data/resources/connection-list-dialog.ui.h:3 -msgid "Add" -msgstr "Legg til" +#: ../data/resources/connection-properties.ui.h:2 +msgid "_Apply" +msgstr "_Bruk" -#: ../data/resources/connection-list-dialog.ui.h:4 -msgid "Remove" -msgstr "Fjern" +#: ../data/resources/entry-area.ui.h:1 +msgid "Change nickname:" +msgstr "Endre kallenavn:" + +#: ../data/resources/entry-area.ui.h:2 +msgid "_Change" +msgstr "_Endre" + +#: ../data/resources/entry-area.ui.h:3 +msgid "Change nickname" +msgstr "Endre kallenavn" + +#: ../data/resources/entry-area.ui.h:5 +msgid "_Paste" +msgstr "_Lim inn" #: ../data/resources/help-overlay.ui.h:1 +msgctxt "shortcut window" msgid "General" msgstr "Generelt" #: ../data/resources/help-overlay.ui.h:2 +msgctxt "shortcut window" msgid "Join Room" msgstr "Bli med i rom" #: ../data/resources/help-overlay.ui.h:3 -msgid "Message User" -msgstr "Send melding til bruker" - -#: ../data/resources/help-overlay.ui.h:4 +msgctxt "shortcut window" msgid "Leave Room" -msgstr "Forlat praterom" +msgstr "Forlat rom" -#: ../data/resources/help-overlay.ui.h:5 +#: ../data/resources/help-overlay.ui.h:4 +msgctxt "shortcut window" msgid "Show Userlist" msgstr "Vis brukerliste" -#: ../data/resources/help-overlay.ui.h:6 ../data/resources/menus.ui.h:5 +#: ../data/resources/help-overlay.ui.h:5 +msgctxt "shortcut window" msgid "Quit" msgstr "Avslutt" -#: ../data/resources/help-overlay.ui.h:7 ../data/resources/menus.ui.h:3 +#: ../data/resources/help-overlay.ui.h:6 +msgctxt "shortcut window" msgid "Keyboard Shortcuts" msgstr "Tastatursnarveier" -#: ../data/resources/help-overlay.ui.h:8 +#: ../data/resources/help-overlay.ui.h:7 +msgctxt "shortcut window" msgid "Navigation" msgstr "Navigasjon" -#: ../data/resources/help-overlay.ui.h:9 +#: ../data/resources/help-overlay.ui.h:8 +msgctxt "shortcut window" msgid "Next Room" msgstr "Neste rom" -#: ../data/resources/help-overlay.ui.h:10 +#: ../data/resources/help-overlay.ui.h:9 +msgctxt "shortcut window" msgid "Previous Room" msgstr "Forrige rom" +#: ../data/resources/help-overlay.ui.h:10 +msgctxt "shortcut window" +msgid "Next Room with Unread Messages" +msgstr "Neste rom med uleste meldinger" + #: ../data/resources/help-overlay.ui.h:11 +msgctxt "shortcut window" +msgid "Previous Room with Unread Messages" +msgstr "Forrige rom med uleste meldinger" + +#: ../data/resources/help-overlay.ui.h:12 +msgctxt "shortcut window" msgid "First Room" msgstr "Første rom" -#: ../data/resources/help-overlay.ui.h:12 +#: ../data/resources/help-overlay.ui.h:13 +msgctxt "shortcut window" msgid "Last Room" msgstr "Siste rom" -#: ../data/resources/help-overlay.ui.h:13 +#: ../data/resources/help-overlay.ui.h:14 +msgctxt "shortcut window" msgid "First - Ninth Room" msgstr "Første - niende rom" -#: ../data/resources/join-room-dialog.ui.h:1 ../src/joinDialog.js:223 +#: ../data/resources/join-room-dialog.ui.h:1 ../src/joinDialog.js:272 msgid "Join Chat Room" msgstr "Bli med i praterom" -#: ../data/resources/join-room-dialog.ui.h:2 -#: ../data/resources/message-user-dialog.ui.h:1 ../src/connections.js:394 -msgid "_Cancel" -msgstr "_Avbryt" - -#: ../data/resources/join-room-dialog.ui.h:3 ../src/joinDialog.js:225 +#: ../data/resources/join-room-dialog.ui.h:3 msgid "_Join" msgstr "_Bli med" -#: ../data/resources/join-room-dialog.ui.h:5 -msgid "_Add Connection" -msgstr "_Legg til tilkobling" - -#: ../data/resources/join-room-dialog.ui.h:6 -#: ../data/resources/message-user-dialog.ui.h:3 +#: ../data/resources/join-room-dialog.ui.h:4 msgid "C_onnection" msgstr "Tilk_obling" -#: ../data/resources/join-room-dialog.ui.h:7 +#: ../data/resources/join-room-dialog.ui.h:5 +msgid "_Add Network" +msgstr "_Legg til nettverk" + +#: ../data/resources/join-room-dialog.ui.h:6 msgid "Room _Name" msgstr "_Navn på rom" -#: ../data/resources/join-room-dialog.ui.h:8 +#: ../data/resources/join-room-dialog.ui.h:7 msgid "_Password" msgstr "_Passord" -#: ../data/resources/main-window.ui.h:1 -msgid "Join a Room" -msgstr "Bli med i et rom" +#: ../data/resources/join-room-dialog.ui.h:9 +msgid "_Add" +msgstr "_Legg til" + +#: ../data/resources/join-room-dialog.ui.h:10 +msgid "_Custom Network" +msgstr "_Egendefinert nettverk" #: ../data/resources/main-window.ui.h:2 -msgid "Message a User" -msgstr "Send melding til en bruker" +msgid "Add rooms and networks" +msgstr "Legg til rom og nettverk" -#: ../data/resources/main-window.ui.h:4 -msgid "Join room" -msgstr "Bli med i et rom" +#: ../data/resources/menus.ui.h:1 +msgid "Keyboard Shortcuts" +msgstr "Tastatursnarveier" #: ../data/resources/menus.ui.h:2 -msgid "Preferences" -msgstr "Brukervalg" - -#: ../data/resources/menus.ui.h:4 msgid "About" msgstr "Om" -#: ../data/resources/message-user-dialog.ui.h:2 -msgid "_Message" -msgstr "_Melding" - -#: ../data/resources/message-user-dialog.ui.h:4 -msgid "_Recent" -msgstr "_Nylig" - -#: ../data/resources/message-user-dialog.ui.h:5 -msgid "_Name" -msgstr "_Navn" +#: ../data/resources/menus.ui.h:3 +msgid "Quit" +msgstr "Avslutt" #: ../data/resources/room-list-header.ui.h:1 -msgid "Connection Error" -msgstr "Feil ved tilkobling" +msgid "Reconnect" +msgstr "Koble til på nytt" + +#: ../data/resources/room-list-header.ui.h:2 +msgid "Remove" +msgstr "Fjern" + +#: ../data/resources/room-list-header.ui.h:3 +msgid "Properties" +msgstr "Egenskaper" #: ../data/resources/user-list-details.ui.h:1 msgid "Loading details" msgstr "Laster inn detaljer" -#: ../data/resources/user-list-details.ui.h:2 ../src/userList.js:222 +#: ../data/resources/user-list-details.ui.h:2 ../src/userList.js:218 msgid "Last Activity:" msgstr "Siste aktivitet:" @@ -255,11 +281,20 @@ msgid "Message" msgstr "Melding" -#: ../src/application.js:372 +#: ../src/application.js:225 ../src/utils.js:181 +msgid "Failed to open link" +msgstr "Klarte ikke å åpne lenke" + +#: ../src/application.js:535 msgid "Good Bye" msgstr "Ha det bra" -#: ../src/application.js:454 +#: ../src/application.js:567 +#, javascript-format +msgid "%s removed." +msgstr "%s fjernet." + +#: ../src/application.js:624 msgid "translator-credits" msgstr "" "Øivind Hoel <oh...@cvs.gnome.org>\n" @@ -267,70 +302,74 @@ "Kjartan Maraas <kmar...@gnome.org>\n" "Åka Sikrom <a4nospampleasethank...@hush.com>" -#: ../src/application.js:460 +#: ../src/application.js:630 msgid "Learn more about Polari" msgstr "Lær mer om Polari" -#: ../src/chatView.js:129 +#: ../src/appNotifications.js:85 +msgid "Undo" +msgstr "Angre" + +#: ../src/chatView.js:133 msgid "New Messages" msgstr "Nye meldinger" -#: ../src/chatView.js:605 +#: ../src/chatView.js:642 msgid "Open Link" msgstr "Åpne lenke" -#: ../src/chatView.js:611 +#: ../src/chatView.js:648 msgid "Copy Link Address" msgstr "Kopier lenkeadresse" -#: ../src/chatView.js:774 +#: ../src/chatView.js:819 #, javascript-format msgid "%s is now known as %s" msgstr "%s er nå kjent som %s" -#: ../src/chatView.js:781 +#: ../src/chatView.js:826 #, javascript-format msgid "%s has disconnected" msgstr "%s har koblet fra" -#: ../src/chatView.js:790 +#: ../src/chatView.js:835 #, javascript-format msgid "%s has been kicked by %s" msgstr "%s er kastet ut av %s" -#: ../src/chatView.js:792 +#: ../src/chatView.js:837 #, javascript-format msgid "%s has been kicked" msgstr "%s er kastet ut" -#: ../src/chatView.js:799 +#: ../src/chatView.js:844 #, javascript-format msgid "%s has been banned by %s" msgstr "%s er nå utestengt av %s" -#: ../src/chatView.js:801 +#: ../src/chatView.js:846 #, javascript-format msgid "%s has been banned" msgstr "%s er nå utestengt" -#: ../src/chatView.js:807 +#: ../src/chatView.js:852 #, javascript-format msgid "%s joined" msgstr "%s ble med" -#: ../src/chatView.js:813 +#: ../src/chatView.js:858 #, javascript-format msgid "%s left" msgstr "%s gikk ut" -#: ../src/chatView.js:902 +#: ../src/chatView.js:954 #, javascript-format msgid "%d user joined" msgid_plural "%d users joined" msgstr[0] "%d bruker ble med" msgstr[1] "%d brukere ble med" -#: ../src/chatView.js:905 +#: ../src/chatView.js:957 #, javascript-format msgid "%d user left" msgid_plural "%d users left" @@ -339,14 +378,14 @@ #. today #. Translators: Time in 24h format -#: ../src/chatView.js:966 +#: ../src/chatView.js:1024 msgid "%H∶%M" msgstr "%H.%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 24h format. i.e. "Yesterday, 14:30" -#: ../src/chatView.js:971 +#: ../src/chatView.js:1029 #, no-c-format msgid "Yesterday, %H∶%M" msgstr "I går, %H.%M" @@ -354,7 +393,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 24h format. i.e. "Monday, 14:30" -#: ../src/chatView.js:976 +#: ../src/chatView.js:1034 #, no-c-format msgid "%A, %H∶%M" msgstr "%A, %H.%M" @@ -363,7 +402,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 24h format. #. i.e. "May 25, 14:30" -#: ../src/chatView.js:982 +#: ../src/chatView.js:1040 #, no-c-format msgid "%B %d, %H∶%M" msgstr "%d %B, %H.%M" @@ -372,21 +411,21 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 24h format. #. i.e. "May 25 2012, 14:30" -#: ../src/chatView.js:988 +#: ../src/chatView.js:1046 #, no-c-format msgid "%B %d %Y, %H∶%M" msgstr "%d %B %Y, %H.%M" #. today #. Translators: Time in 12h format -#: ../src/chatView.js:993 +#: ../src/chatView.js:1051 msgid "%l∶%M %p" msgstr "%H.%M" #. yesterday #. Translators: this is the word "Yesterday" followed by a #. time string in 12h format. i.e. "Yesterday, 2:30 pm" -#: ../src/chatView.js:998 +#: ../src/chatView.js:1056 #, no-c-format msgid "Yesterday, %l∶%M %p" msgstr "I går, %H.%M" @@ -394,7 +433,7 @@ #. this week #. Translators: this is the week day name followed by a time #. string in 12h format. i.e. "Monday, 2:30 pm" -#: ../src/chatView.js:1003 +#: ../src/chatView.js:1061 #, no-c-format msgid "%A, %l∶%M %p" msgstr "%A, %H.%M" @@ -403,7 +442,7 @@ #. Translators: this is the month name and day number #. followed by a time string in 12h format. #. i.e. "May 25, 2:30 pm" -#: ../src/chatView.js:1009 +#: ../src/chatView.js:1067 #, no-c-format msgid "%B %d, %l∶%M %p" msgstr "%d %B, %H.%M" @@ -412,12 +451,22 @@ #. Translators: this is the month name, day number, year #. number followed by a time string in 12h format. #. i.e. "May 25 2012, 2:30 pm" -#: ../src/chatView.js:1015 +#: ../src/chatView.js:1073 #, no-c-format msgid "%B %d %Y, %l∶%M %p" msgstr "%d %B %Y, %H.%M" -#: ../src/connections.js:239 +#: ../src/connections.js:42 +msgid "Already added" +msgstr "Allerede lagt til" + +#. Translators: %s is a connection name +#: ../src/connections.js:431 +#, javascript-format +msgid "“%s” Properties" +msgstr "Egenskaper for «%s»" + +#: ../src/connections.js:475 msgid "" "Polari disconnected due to a network error. Please check if the address " "field is correct." @@ -425,21 +474,38 @@ "Polari er koblet fra på grunn av en nettverksfeil. Vennligst sjekk om " "adressefeltet er korrekt." -#: ../src/connections.js:379 ../src/roomList.js:235 ../src/roomList.js:255 -msgid "Edit Connection" -msgstr "Rediger tilkobling" - -#: ../src/connections.js:380 -msgid "New Connection" -msgstr "Ny tilkobling" +#: ../src/entryArea.js:236 +#, javascript-format +msgid "Paste %s line of text to public paste service?" +msgid_plural "Paste %s lines of text to public paste service?" +msgstr[0] "Lim inn %s tekstlinje på offentlig utklippstavle?" +msgstr[1] "Lim inn %s tekstlinjer på offentlig utklippstavle?" + +#: ../src/entryArea.js:240 +#, javascript-format +msgid "Uploading %s line of text to public paste service…" +msgid_plural "Uploading %s lines of text to public paste service…" +msgstr[0] "" +msgstr[1] "" -#: ../src/connections.js:396 -msgid "A_pply" -msgstr "_Bruk" +#: ../src/entryArea.js:247 +msgid "Upload image to public paste service?" +msgstr "" -#: ../src/connections.js:396 -msgid "Cr_eate" -msgstr "_Lag" +#: ../src/entryArea.js:248 +msgid "Uploading image to public paste service…" +msgstr "" + +#. translators: %s is a nick, #%s a channel +#: ../src/entryArea.js:257 +#, javascript-format +msgid "%s in #%s" +msgstr "%s i #%s" + +#: ../src/entryArea.js:259 +#, javascript-format +msgid "Paste from %s" +msgstr "Lim inn fra %s" #. commands that would be nice to support: #. @@ -478,204 +544,190 @@ msgstr "/ME <handling> - sender <handling> til gjeldende kanal" #: ../src/ircParser.js:29 +msgid "/MSG <nick> [<message>] - sends a private message to <nick>" +msgstr "/MSG <kallenavn> - sender en privat melding til <kallenavn>" + +#: ../src/ircParser.js:30 msgid "/NAMES - lists users on the current channel" msgstr "/NAMES - viser brukere i gjeldende kanal" -#: ../src/ircParser.js:30 +#: ../src/ircParser.js:31 msgid "/NICK <nickname> - sets your nick to <nickname>" msgstr "/NICK <kallenavn> - endrer eget kallenavn til <kallenavn>" -#: ../src/ircParser.js:31 +#: ../src/ircParser.js:32 msgid "" "/PART [<channel>] [<reason>] - leaves <channel>, by default the current one" msgstr "" "/PART [<kanal>] [<grunn>] - forlater <kanal>, eller gjeldende kanal hvis du " "ikke velger noe" -#: ../src/ircParser.js:32 +#: ../src/ircParser.js:33 msgid "/QUERY <nick> - opens a private conversation with <nick>" msgstr "/QUERY <kallenavn> - åpner en privat samtale med <kallenavn>" -#: ../src/ircParser.js:33 +#: ../src/ircParser.js:34 msgid "/QUIT [<reason>] - disconnects from the current server" msgstr "/QUIT [<grunn>] - kobler fra gjeldende tjener" -#: ../src/ircParser.js:34 +#: ../src/ircParser.js:35 msgid "/SAY <text> - sends <text> to the current room/contact" msgstr "/SAY <tekst> - sender <tekst> til gjeldende rom/kontakt" -#: ../src/ircParser.js:35 +#: ../src/ircParser.js:36 msgid "/TOPIC <topic> - sets the topic to <topic>, or shows the current one" msgstr "" "/TOPIC <tema> - endrer kanaltema til <tema>, eller viser gjeldende tema" -#: ../src/ircParser.js:38 +#: ../src/ircParser.js:39 msgid "Unknown command - try /HELP for a list of available commands" msgstr "" "Ukjent kommando. Prøv /HELP for å se en liste over tilgjengelige kommandoer" -#: ../src/ircParser.js:59 +#: ../src/ircParser.js:60 #, javascript-format msgid "Usage: %s" msgstr "Bruk: %s" -#: ../src/ircParser.js:97 +#: ../src/ircParser.js:98 msgid "Known commands:" msgstr "Kjente kommandoer:" -#: ../src/ircParser.js:177 +#: ../src/ircParser.js:198 #, javascript-format msgid "Users on %s:" msgstr "Brukere på %s:" -#: ../src/ircParser.js:261 +#: ../src/ircParser.js:283 msgid "No topic set" msgstr "Emne er ikke valgt" -#: ../src/joinDialog.js:224 -msgid "Add Connection" -msgstr "Legg til tilkobling" - -#: ../src/joinDialog.js:226 -msgid "_Save" -msgstr "_Lagre" +#: ../src/joinDialog.js:273 +msgid "Add Network" +msgstr "Legg til nettverk" -#: ../src/mainWindow.js:306 +#: ../src/mainWindow.js:308 #, javascript-format msgid "%d user" msgid_plural "%d users" msgstr[0] "%d bruker" msgstr[1] "%d brukere" -#: ../src/messageDialog.js:95 -msgid "No recent users" -msgstr "Ingen nylige brukere" - -#. translators: %s is a nick, #%s a channel -#: ../src/pasteManager.js:95 -#, javascript-format -msgid "%s in #%s" -msgstr "%s i #%s" - -#: ../src/pasteManager.js:97 -#, javascript-format -msgid "Paste from %s" -msgstr "Lim inn fra %s" - -#: ../src/pasteManager.js:306 -#, javascript-format -msgid "Uploading %s" -msgstr "Laster opp %s" - -#: ../src/roomList.js:104 +#: ../src/roomList.js:129 msgid "Leave chatroom" msgstr "Forlat praterom" -#: ../src/roomList.js:105 +#: ../src/roomList.js:129 msgid "End conversation" msgstr "Avslutt samtale" -#: ../src/roomList.js:213 +#: ../src/roomList.js:216 #, javascript-format -msgid "Connection %s has an error" -msgstr "Tilkobling %s har en feil" +msgid "Network %s has an error" +msgstr "Nettverk %s har en feil" -#: ../src/roomList.js:233 -msgid "Please check your connection details." -msgstr "Vennligst sjekk tilkoblingsdetaljene." - -#: ../src/roomList.js:254 -msgid "Could not make connection in a safe way." -msgstr "Kunne ikke koble til på en sikker måte." - -#: ../src/roomList.js:262 -msgid "Authentication failed." -msgstr "Autentisering feilet." - -#: ../src/roomList.js:263 ../src/roomList.js:274 ../src/roomList.js:282 -msgid "Try again" -msgstr "Prøv igjen" +#. Translators: This is an account name followed by a +#. server address, e.g. "GNOME (irc.gnome.org)" +#: ../src/roomList.js:266 +#, javascript-format +msgid "%s (%s)" +msgstr "%s (%s)" #: ../src/roomList.js:273 -msgid "The server is busy." -msgstr "Tjeneren er opptatt." +msgid "Connection Problem" +msgstr "Feil ved tilkobling" #: ../src/roomList.js:281 -msgid "Failed to connect for an unknown reason." -msgstr "Klarte ikke å koble til av ukjent grunn." +msgid "Connected" +msgstr "Koblet til" + +#: ../src/roomList.js:283 +msgid "Connecting..." +msgstr "Kobler til …" -#: ../src/roomStack.js:111 -msgid "Begin chatting by adding a new connection." -msgstr "Start samtale ved å legge til en ny tilkobling." +#: ../src/roomList.js:285 +msgid "Offline" +msgstr "Frakoblet" -#: ../src/roomStack.js:114 +#: ../src/roomList.js:287 +msgid "Unknown" +msgstr "Ukjent" + +#: ../src/roomList.js:307 #, javascript-format -msgid "Open %s in the application menu." -msgstr "Åpne %s i programmenyen." +msgid "Could not connect to %s in a safe way." +msgstr "Kunne ikke koble til %s på en sikker måte." -#: ../src/roomStack.js:117 -msgid "Join a room using the + button." -msgstr "Bli med i et samtalerom ved å bruke +-knappen" +#: ../src/roomList.js:310 +#, javascript-format +msgid "%s requires a password." +msgstr "%s krever et passord." -#: ../src/roomStack.js:121 -msgid "Your connections are disabled." -msgstr "Tilkoblingene dine er slått av." +#: ../src/roomList.js:316 +#, javascript-format +msgid "Could not connect to %s. The server is busy." +msgstr "Kunne ikke koble til %s. Tjeneren er opptatt." -#: ../src/roomStack.js:124 +#: ../src/roomList.js:319 #, javascript-format -msgid "Enable them by opening %s in the application menu." -msgstr "Slå dem på ved å åpne %s i programmenyen." +msgid "Could not connect to %s." +msgstr "Kunne ikke koble til %s." -#: ../src/userList.js:178 +#: ../src/roomStack.js:97 +msgid "Join a room using the + button." +msgstr "Bli med i et samtalerom ved å bruke +-knappen" + +#: ../src/userList.js:174 #, javascript-format msgid "%d second ago" msgid_plural "%d seconds ago" msgstr[0] "%d sekund siden" msgstr[1] "%d sekunder siden" -#: ../src/userList.js:183 +#: ../src/userList.js:179 #, javascript-format msgid "%d minute ago" msgid_plural "%d minutes ago" msgstr[0] "%d minutt siden" msgstr[1] "%d minutter siden" -#: ../src/userList.js:188 +#: ../src/userList.js:184 #, javascript-format msgid "%d hour ago" msgid_plural "%d hours ago" msgstr[0] "%d time siden" msgstr[1] "%d timer siden" -#: ../src/userList.js:193 +#: ../src/userList.js:189 #, javascript-format msgid "%d day ago" msgid_plural "%d days ago" msgstr[0] "%d dag siden" msgstr[1] "%d dager siden" -#: ../src/userList.js:198 +#: ../src/userList.js:194 #, javascript-format msgid "%d week ago" msgid_plural "%d weeks ago" msgstr[0] "%d uke siden" msgstr[1] "%d uker siden" -#: ../src/userList.js:202 +#: ../src/userList.js:198 #, javascript-format msgid "%d month ago" msgid_plural "%d months ago" msgstr[0] "%d måned siden" msgstr[1] "%d måneder siden" -#: ../src/userList.js:380 +#: ../src/userList.js:383 msgid "No results" msgstr "Ingen resultater" -#: ../src/userList.js:554 +#: ../src/userList.js:556 msgid "All" msgstr "Alle" -#: ../src/utils.js:133 -msgid "Failed to open link" -msgstr "Klarte ikke å åpne lenke" +#: ../src/utils.js:121 +#, javascript-format +msgid "Polari server password for %s" +msgstr "Passord tjener for %s" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/src/chatView.js new/polari-3.20.2/src/chatView.js --- old/polari-3.20.1/src/chatView.js 2016-04-29 18:08:12.000000000 +0200 +++ new/polari-3.20.2/src/chatView.js 2016-05-10 21:56:34.000000000 +0200 @@ -11,6 +11,7 @@ const Lang = imports.lang; const Mainloop = imports.mainloop; +const PasteManager = imports.pasteManager; const Signals = imports.signals; const Utils = imports.utils; @@ -220,7 +221,9 @@ const ChatView = new Lang.Class({ Name: 'ChatView', Extends: Gtk.ScrolledWindow, + Implements: [PasteManager.DropTargetIface], Properties: { + 'can-drop': GObject.ParamSpec.override('can-drop', PasteManager.DropTargetIface), 'max-nick-chars': GObject.ParamSpec.uint('max-nick-chars', 'max-nick-chars', 'max-nick-chars', @@ -308,7 +311,7 @@ this._scrollBottom = adj.upper - adj.page_size; this._app = Gio.Application.get_default(); - this._app.pasteManager.addWidget(this._view); + PasteManager.DropTargetIface.addTargets(this, this._view); this._hoverCursor = Gdk.Cursor.new(Gdk.CursorType.HAND1); @@ -516,6 +519,10 @@ return this._maxNickChars; }, + get can_drop() { + return this._channel != null; + }, + _updateMaxNickChars: function(length) { if (length <= this._maxNickChars) return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/src/entryArea.js new/polari-3.20.2/src/entryArea.js --- old/polari-3.20.1/src/entryArea.js 2016-03-16 18:22:07.000000000 +0100 +++ new/polari-3.20.2/src/entryArea.js 2016-05-10 21:56:34.000000000 +0200 @@ -21,16 +21,37 @@ const ChatEntry = new Lang.Class({ Name: 'ChatEntry', Extends: Gtk.Entry, + Implements: [PasteManager.DropTargetIface], + Properties: { + 'can-drop': GObject.ParamSpec.override('can-drop', PasteManager.DropTargetIface), + }, Signals: { 'text-pasted': { param_types: [GObject.TYPE_STRING, GObject.TYPE_INT] }, - 'image-pasted': { param_types: [GdkPixbuf.Pixbuf.$gtype] } }, + 'image-pasted': { param_types: [GdkPixbuf.Pixbuf.$gtype] }, + 'file-pasted': { param_types: [Gio.File.$gtype] } }, _init: function(params) { this.parent(params); + PasteManager.DropTargetIface.addTargets(this, this); + this._useDefaultHandler = false; }, + get can_drop() { + return true; + }, + + vfunc_drag_data_received: function(context, x, y, data, info, time) { + let str = data.get_text(); + if (!str || str.split('\n').length >= MAX_LINES) + // Disable GtkEntry's built-in drop target support + return; + + GObject.signal_stop_emission_by_name(this, 'drag-data-received'); + this.parent(context, x, y, data, info, time); + }, + vfunc_paste_clipboard: function(entry) { if (!this.editable || this._useDefaultHandler) { this.parent(); @@ -38,21 +59,12 @@ } let clipboard = Gtk.Clipboard.get_default(this.get_display()); - clipboard.request_text(Lang.bind(this, - function(clipboard, text) { - if (text == null) - return; - text = text.trim(); - - let nLines = text.split('\n').length; - if (nLines >= MAX_LINES) { - this.emit('text-pasted', text, nLines); - return; - } - - this._useDefaultHandler = true; - this.emit('paste-clipboard'); - this._useDefaultHandler = false; + clipboard.request_uris(Lang.bind(this, + function(clipboard, uris) { + if (uris && uris.length) + this.emit('file-pasted', Gio.File.new_for_uri(uris[0])); + else + clipboard.request_text(Lang.bind(this, this._onTextReceived)); })); clipboard.request_image(Lang.bind(this, @@ -62,6 +74,22 @@ this.emit('image-pasted', pixbuf); })); }, + + _onTextReceived: function(clipboard, text) { + if (text == null) + return; + text = text.trim(); + + let nLines = text.split('\n').length; + if (nLines >= MAX_LINES) { + this.emit('text-pasted', text, nLines); + return; + } + + this._useDefaultHandler = true; + this.emit('paste-clipboard'); + this._useDefaultHandler = false; + } }); const EntryArea = new Lang.Class({ @@ -116,8 +144,33 @@ })); this._nickPopover.set_default_widget(this._changeButton); - this._chatEntry.connect('text-pasted', Lang.bind(this, this._onTextPasted)); - this._chatEntry.connect('image-pasted', Lang.bind(this, this._onImagePasted)); + this._chatEntry.connect('text-pasted', Lang.bind(this, + function(entry, text, nLines) { + this.pasteText(text, nLines); + })); + this._chatEntry.connect('text-dropped', Lang.bind(this, + function(entry, text) { + this.pasteText(text, text.split('\n').length); + })); + + this._chatEntry.connect('image-pasted', Lang.bind(this, + function(entry, image) { + this.pasteImage(image); + })); + this._chatEntry.connect('image-dropped', Lang.bind(this, + function(entry, image) { + this.pasteImage(image); + })); + + this._chatEntry.connect('file-pasted', Lang.bind(this, + function(entry, file) { + this.pasteFile(file); + })); + this._chatEntry.connect('file-dropped', Lang.bind(this, + function(entry, file) { + this.pasteFile(file); + })); + this._chatEntry.connect('changed', Lang.bind(this, this._onEntryChanged)); this._chatEntry.connect('activate', Lang.bind(this, @@ -231,7 +284,7 @@ } }, - _onTextPasted: function(entry, text, nLines) { + pasteText: function(text, nLines) { this._confirmLabel.label = ngettext("Paste %s line of text to public paste service?", "Paste %s lines of text to public paste service?", @@ -243,12 +296,48 @@ this._setPasteContent(text); }, - _onImagePasted: function(entry, pixbuf) { + pasteImage: function(pixbuf) { this._confirmLabel.label = _("Upload image to public paste service?"); this._uploadLabel.label = _("Uploading image to public paste service…"); this._setPasteContent(pixbuf); }, + pasteFile: function(file) { + file.query_info_async(Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, + Gio.FileQueryInfoFlags.NONE, + GLib.PRIORITY_DEFAULT, null, + Lang.bind(this, this._onFileInfoReady)); + }, + + _onFileInfoReady: function(file, res) { + let fileInfo = null; + try { + fileInfo = file.query_info_finish(res); + } catch(e) { + return; + } + + let contentType = fileInfo.get_content_type(); + + if (Gio.content_type_is_a(contentType, 'text/plain')) + file.load_contents_async(null, Lang.bind(this, + function(f, res) { + let [, contents, ,] = f.load_contents_finish(res); + let text = contents.toString(); + this.pasteText(text, text.length); + })); + else if (Gio.content_type_is_a(contentType, 'image/*')) + file.read_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, + function(f, res) { + let stream = f.read_finish(res); + GdkPixbuf.Pixbuf.new_from_stream_async(stream, null, + Lang.bind(this, function(stream, res) { + let pixbuf = GdkPixbuf.Pixbuf.new_from_stream_finish(res); + this.pasteImage(pixbuf); + })); + })); + }, + _onPasteClicked: function() { let title; let nick = this._room.channel.connection.self_contact.alias; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/src/pasteManager.js new/polari-3.20.2/src/pasteManager.js --- old/polari-3.20.1/src/pasteManager.js 2016-02-25 12:44:04.000000000 +0100 +++ new/polari-3.20.2/src/pasteManager.js 2016-05-10 21:56:34.000000000 +0200 @@ -2,6 +2,7 @@ const GdkPixbuf = imports.gi.GdkPixbuf; const GLib = imports.gi.GLib; const Gio = imports.gi.Gio; +const GObject = imports.gi.GObject; const Gtk = imports.gi.Gtk; const Polari = imports.gi.Polari; const Tp = imports.gi.TelepathyGLib; @@ -18,25 +19,49 @@ IMAGE: 3, }; +function _getTargetForContentType(contentType) { + if (Gio.content_type_is_a(contentType, 'text/plain')) + return DndTargetType.TEXT; + else if (Gio.content_type_is_a(contentType, 'image/*')) + return DndTargetType.IMAGE; + else + return 0; +} + + const PasteManager = new Lang.Class({ Name: 'PasteManager', _init: function() { - this._widgets = []; + }, - this._dragHighlight = false; - this._dragDataReceived = false; - this._dragPending = false; + pasteContent: function(content, title, callback) { + if (typeof content == 'string') { + Utils.gpaste(content, title, callback); + } else if (content instanceof GdkPixbuf.Pixbuf) { + Utils.imgurPaste(content, title, callback); + } else { + throw new Error('Unhandled content type'); + } + } +}); - this._roomManager = ChatroomManager.getDefault(); +const DropTargetIface = new Lang.Interface({ + Name: 'DropTargetIface', + Requires: [GObject.Object], + Properties: { + 'can-drop': GObject.ParamSpec.boolean('can-drop', '', '', + GObject.ParamFlags.READABLE, + false) + }, + Signals: { + 'text-dropped': { param_types: [GObject.TYPE_STRING] }, + 'image-dropped': { param_types: [GdkPixbuf.Pixbuf.$gtype] }, + 'file-dropped': { param_types: [Gio.File.$gtype] } }, - addWidget: function(widget) { - // auto-paste needs some design; disable for now - return; - - if (this._widgets.indexOf(widget) != -1) - return; + addTargets: function(widget) { + this._dragHighlight = false; widget.drag_dest_set(0, [], Gdk.DragAction.COPY); @@ -53,32 +78,14 @@ widget.connect('drag-drop', Lang.bind(this, this._onDragDrop)); widget.connect('drag-leave', Lang.bind(this, this._onDragLeave)); widget.connect('drag-motion', Lang.bind(this, this._onDragMotion)); - widget.connect('drag-data-received', - Lang.bind(this, this._onDragDataReceived)); - - widget.connect('destroy', Lang.bind(this, - function(w) { - for (let i = 0; i < this._widgets.length; i++) - if (this._widgets[i] == w) { - this._widgets.slice(i, 1); - break; - } - })); - - this._widgets.push(widget); - }, - - pasteContent: function(content, title, callback) { - if (typeof content == 'string') { - Utils.gpaste(content, title, callback); - } else if (content instanceof GdkPixbuf.Pixbuf) { - Utils.imgurPaste(content, title, callback); - } else { - throw new Error('Unhandled content type'); - } + widget.connect_after('drag-data-received', + Lang.bind(this, this._onDragDataReceived)); }, _onDragDrop: function(widget, context, x, y, time) { + if (!this.can_drop) + return Gdk.EVENT_PROPAGATE; + if (!Polari.drag_dest_supports_target(widget, context, null)) return Gdk.EVENT_PROPAGATE; @@ -89,34 +96,22 @@ _onDragLeave: function(widget, context, time) { widget.drag_unhighlight(); this._dragHighlight = false; - this._dragDataReceived = false; - this._dragPending = false; }, _onDragMotion: function(widget, context, x, y, time) { + if (!this.can_drop) + return Gdk.EVENT_PROPAGATE; + if (!Polari.drag_dest_supports_target(widget, context, null)) return Gdk.EVENT_PROPAGATE; let info = Polari.drag_dest_find_target(widget, context); switch (info) { case DndTargetType.TEXT: - //case DndTargetType.IMAGE: - Gdk.drag_status(context, Gdk.DragAction.COPY, time); - break; + case DndTargetType.IMAGE: case DndTargetType.URI_LIST: - /* FIXME: the latter doesn't seem to work, pretend to support - all drops */ Gdk.drag_status(context, Gdk.DragAction.COPY, time); break; - - let action = 0; - if (!this._dragDataReceived) { - this._dragPending = true; - Polari.drag_dest_request_data(widget, context, time); - } else { - Gdk.drag_status(context, action, time); - } - break; default: return Gdk.EVENT_PROPAGATE; } @@ -131,28 +126,6 @@ _onDragDataReceived: function(widget, context, x, y, data, info, time) { - if (this._dragPending) { - this._dragPending = false; - - if (info != DndTargetType.URI_LIST) { - Gdk.drag_status(context, 0, time); - return; - } - - let uris = data.get_uris(); - this._dragDataReceived = true; - // TODO: handle multiple files ... - let file = Gio.File.new_for_uri(uris[0]); - this._lookupFileInfo(file, Lang.bind(this, - function(name, targetType) { - let action = 0; - if (targetType == DndTargetType.TEXT) - action = Gdk.DragAction.COPY; - Gdk.drag_status(context, action, time); - })); - return; - } - if (info == DndTargetType.URI_LIST) { let uris = data.get_uris(); if (!uris) { @@ -163,43 +136,30 @@ // TODO: handle multiple files ... let file = Gio.File.new_for_uri(uris[0]); this._lookupFileInfo(file, Lang.bind(this, - function(name, targetType) { - let canHandle = // targetType != 0; - targetType == DndTargetType.TEXT; - + function(targetType) { + let canHandle = targetType != 0; if (canHandle) - this._handleFileContent(file, displayName, targetType); + this.emit('file-dropped', file); Gtk.drag_finish(context, canHandle, false, time); })); } else { let success = false; switch(info) { case DndTargetType.TEXT: - this.pasteText(data.get_text()); + this.emit('text-dropped', data.get_text()); success = true; break; case DndTargetType.IMAGE: - // not implemented - //this._pasteImage(data.get_pixbuf()); + this.emit('image-dropped', data.get_pixbuf()); + success = true; break; } Gtk.drag_finish(context, success, false, time); } }, - _getTargetForContentType: function(contentType) { - if (Gio.content_type_is_a(contentType, 'text/plain')) - return DndTargetType.TEXT; - else if (Gio.content_type_is_a(contentType, 'image/*')) - return DndTargetType.IMAGE; - else - return 0; - }, - _lookupFileInfo: function(file, callback) { - let attr = Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE + ',' + - Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME; - file.query_info_async(attr, + file.query_info_async(Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, Gio.FileQueryInfoFlags.NONE, GLib.PRIORITY_DEFAULT, null, Lang.bind(this, @@ -208,43 +168,12 @@ try { fileInfo = file.query_info_finish(res); } catch(e) { - logError(e); - callback(null, 0); + callback(0); Gtk.drag_finish(context, false, false, time); } - let displayName = fileInfo.get_display_name(); let contentType = fileInfo.get_content_type(); - let targetType = this._getTargetForContentType(contentType); - callback(displayName, targetType); + callback(_getTargetForContentType(contentType)); })) - }, - - - _handleFileContent: function(file, name, type) { - let app = Gio.Application.get_default(); - let n = new UploadNotification(name); - app.notificationQueue.addNotification(n); - - if (type == DndTargetType.TEXT) { - file.load_contents_async(null, Lang.bind(this, - function(f, res) { - let [, contents, ,] = f.load_contents_finish(res); - this._pasteText(contents.toString(), n); - })); - } else if (type == DndTargetType.IMAGE) { - file.read_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, - function(f, res) { - let stream = f.read_finish(res); - GdkPixbuf.Pixbuf.new_from_stream_async(stream, null, - Lang.bind(this, function(stream, res) { - let pixbuf = GdkPixbuf.Pixbuf.new_from_stream_finish(res); - this._pasteImage(pixbuf, n); - })); - })); - } else { - log('Unhandled type'); - n.close(); - } } }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polari-3.20.1/src/roomStack.js new/polari-3.20.2/src/roomStack.js --- old/polari-3.20.1/src/roomStack.js 2016-04-29 18:06:24.000000000 +0200 +++ new/polari-3.20.2/src/roomStack.js 2016-05-10 21:56:34.000000000 +0200 @@ -135,6 +135,19 @@ GObject.BindingFlags.SYNC_CREATE); sizeGroup.add_widget(this._entryArea); + this._view.connect('text-dropped', Lang.bind(this, + function(view, text) { + this._entryArea.pasteText(text, text.split('\n').length); + })); + this._view.connect('image-dropped', Lang.bind(this, + function(view, image) { + this._entryArea.pasteImage(image); + })); + this._view.connect('file-dropped', Lang.bind(this, + function(view, file) { + this._entryArea.pasteFile(file); + })); + this.show_all(); },