Browse Source

Removed fullscreen and date-in-statusbar plugins

The fullscreen plugin made xviewer switch to fullscreen on double-clicks, this was moved to xviewer itself.
The date-in-statusbar plugin just showed the date in the statusbar (and didn't do it well, with an odd position and making the statusbar fatter), it was removed.
tags/1.2.0
Clement Lefebvre 4 years ago
parent
commit
9bafe07de9
15 changed files with 172 additions and 989 deletions
  1. +1
    -1
      Makefile.am
  2. +0
    -1
      configure.ac
  3. +1
    -1
      data/org.x.viewer.gschema.xml.in
  4. +0
    -2
      debian/xviewer.install
  5. +0
    -159
      plugins/ChangeLog
  6. +0
    -54
      plugins/Makefile.am
  7. +0
    -9
      plugins/fullscreen/fullscreen.plugin.desktop.in
  8. +0
    -189
      plugins/fullscreen/xviewer-fullscreen-plugin.c
  9. +0
    -81
      plugins/fullscreen/xviewer-fullscreen-plugin.h
  10. +0
    -8
      plugins/statusbar-date/statusbar-date.plugin.desktop.in
  11. +0
    -228
      plugins/statusbar-date/xviewer-statusbar-date-plugin.c
  12. +0
    -82
      plugins/statusbar-date/xviewer-statusbar-date-plugin.h
  13. +0
    -5
      po/POTFILES.in
  14. +147
    -169
      po/xviewer.pot
  15. +23
    -0
      src/xviewer-window.c

+ 1
- 1
Makefile.am View File

@@ -2,7 +2,7 @@ if ENABLE_JPEG
jpeg_DIRS = jpegutils
endif

SUBDIRS = $(jpeg_DIRS) cut-n-paste src plugins po help data doc
SUBDIRS = $(jpeg_DIRS) cut-n-paste src po help data doc

ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}



+ 0
- 1
configure.ac View File

@@ -354,7 +354,6 @@ doc/Makefile
doc/reference/Makefile
doc/reference/version.xml
doc/reference/xviewer-docs.xml
plugins/Makefile
])

AC_OUTPUT


+ 1
- 1
data/org.x.viewer.gschema.xml.in View File

@@ -125,7 +125,7 @@
</schema>
<schema id="org.x.viewer.plugins" path="/org/x/viewer/plugins/">
<key name="active-plugins" type="as">
<default>['fullscreen']</default>
<default>[]</default>
<summary>Active plugins</summary>
<description>List of active plugins. It doesn't contain the "Location" of the active plugins. See the .xviewer-plugin file for obtaining the "Location" of a given plugin.</description>
</key>


+ 0
- 2
debian/xviewer.install View File

@@ -9,6 +9,4 @@ usr/share/icons
usr/share/locale
usr/share/applications
usr/lib/xviewer/*.so
usr/lib/xviewer/plugins/*plugin
usr/lib/xviewer/plugins/*.so
usr/lib/xviewer/girepository-1.0

+ 0
- 159
plugins/ChangeLog View File

@@ -1,159 +0,0 @@
2009-08-09 Felix Riemann <friemann@gnome.org>

* Makefile.am:
Add support for Automake 1.11's silent build rules.

2009-07-25 Felix Riemann <friemann@gnome.org>

* Makefile.am:
Merge per-plugin Makefiles into a single one. This makes it possible
to build the plugins in parallel.

2009-04-10 Felix Riemann <friemann@svn.gnome.org>

* reload/xviewer-reload-plugin.c:
Make reload action available from the scrollview's context menu.

2009-04-10 Felix Riemann <friemann@svn.gnome.org>

* reload/xviewer-reload-plugin.c: (impl_activate),
(xviewer_reload_plugin_class_init):
Update reload plugin to be independent of the five predefined
menu slots. Also remove unneeded hook.

2009-03-16 Claudio Saavedra <csaavedra@igalia.com>

* NEWS: Updates for 2.26.0

2009-03-03 Felix Riemann <friemann@svn.gnome.org>

* 2.25.92 version marker.

2009-02-28 Felix Riemann <friemann@svn.gnome.org>

* reload/xviewer-reload-plugin.c: Use 'R' as shortcut key. The old one is
needed elsewhere.

2009-02-16 Felix Riemann <friemann@svn.gnome.org>

* 2.25.91 version marker.

2009-02-03 Felix Riemann <friemann@svn.gnome.org>

* 2.25.90 version marker.

2008-12-15 Felix Riemann <friemann@svn.gnome.org>

* 2.25.3 version marker.

2008-12-01 Felix Riemann <friemann@svn.gnome.org>

* 2.25.2 version marker.

2008-11-03 Felix Riemann <friemann@svn.gnome.org>

* 2.25.1 version marker.

2008-09-22 Felix Riemann <friemann@svn.gnome.org>

* 2.24.0 version marker.

2008-09-09 Claudio Saavedra <csaavedra@igalia.com>

* 2.23.92 version marker.

2008-09-07 Felix Riemann <friemann@svn.gnome.org>

* reload/xviewer-reload-plugin.c: (reload_cb): Adapt reload plugin to the
latest API changes regarding image reloading. This turns this plugin
pretty much into a boilerplate plugin. Part of bug #548392.

2008-09-02 Claudio Saavedra <csaavedra@igalia.com>

* 2.23.91 version marker.

2008-08-21 Claudio Saavedra <csaavedra@igalia.com>

* fullscreen/Makefile.am: Fix a comment.

2008-07-19 Felix Riemann <friemann@svn.gnome.org>

* 2.23.90 version marker.

2008-08-19 Claudio Saavedra <csaavedra@igalia.com>

* plugins/fullscreen/Makefile.am:
* plugins/reload/Makefile.am:
* plugins/statusbar-date/Makefile.am:

Use plugin_LDADD to set the appropriate libraries instead of
plugin_LDFLAGS. Fixes bug #548202 (Paul).

2008-07-21 Felix Riemann <friemann@svn.gnome.org>

* 2.23.5 version marker.

2008-06-16 Lucas Rocha <lucasr@gnome.org>

* 2.23.4.1 version marker.

2008-06-16 Lucas Rocha <lucasr@gnome.org>

* 2.23.4 version marker.

2008-06-12 Felix Riemann <friemann@svn.gnome.org>

* fullscreen/Makefile.am:
* reload/Makefile.am:
* statusbar-date/Makefile.am:
Remove libtool versioning scheme from plugins.

2008-06-03 Lucas Rocha <lucasr@gnome.org>

* 2.23.3 version marker.

2008-05-12 Felix Riemann <friemann@svn.gnome.org>

* 2.23.2 version marker.

2008-04-21 Lucas Rocha <lucasr@gnome.org>

* 2.23.1 version marker.

2008-03-20 Claudio Saavedra <csaavedra@gnome.org>

* statusbar-date/xviewer-statusbar-date-plugin.c: (impl_activate): Request
a wider size, to give place for the human readable date.

2008-03-20 Claudio Saavedra <csaavedra@gnome.org>

* statusbar-date/xviewer-statusbar-date-plugin.c: (impl_deactivate):
Disconnect the signal handler on plugin deactivation.

2008-03-20 Claudio Saavedra <csaavedra@gnome.org>

* statusbar-date/xviewer-statusbar-date-plugin.c: (statusbar_set_date),
(selection_changed_cb), (impl_activate), (impl_deactivate): Do some refactoring
to allow to set the date during plugin activation.

2008-03-20 Claudio Saavedra <csaavedra@gnome.org>

* statusbar-date/xviewer-statusbar-date-plugin.c:
(selection_changed_cb): Remove unnecessary checks
for HAVE_EXIF.

2008-03-20 Claudio Saavedra <csaavedra@alumnos.utalca.cl>

* Makefile.am: Add statusbar-date plugin conditionally on
libexif presence.
* statusbar-date/Makefile.am:
* statusbar-date/xviewer-statusbar-date-plugin.c: (free_window_data),
(selection_changed_cb), (xviewer_statusbar_date_plugin_init),
(xviewer_statusbar_date_plugin_finalize), (impl_activate),
(impl_deactivate), (impl_update_ui),
(xviewer_statusbar_date_plugin_class_init):
* statusbar-date/xviewer-statusbar-date-plugin.h:
* statusbar-date/statusbar-date.xviewer-plugin.desktop.in:

Added a plugin to show the EXIF date on the statusbar. This fixes
bug #466566.

+ 0
- 54
plugins/Makefile.am View File

@@ -1,54 +0,0 @@
AUTOMAKE_OPTIONS = subdir-objects

pluginsdir = $(libdir)/xviewer/plugins

AM_CPPFLAGS = \
-I$(top_srcdir)/src \
$(XVIEWER_CFLAGS) \
$(WARN_CFLAGS) \
-DXVIEWER_LOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\"

AM_LDFLAGS = -avoid-version -module

plugins_LTLIBRARIES = \
fullscreen/libfullscreen.la

plugins_in_files = \
fullscreen/fullscreen.plugin.desktop.in

# Fullscreen plugin
fullscreen_libfullscreen_la_SOURCES = \
fullscreen/xviewer-fullscreen-plugin.h \
fullscreen/xviewer-fullscreen-plugin.c

fullscreen_libfullscreen_la_LIBADD = \
$(top_builddir)/src/libxviewer.la \
$(XVIEWER_LIBS)

# Statusbar Date Plugin
if HAVE_EXIF
plugins_LTLIBRARIES += statusbar-date/libstatusbar-date.la

statusbar_date_libstatusbar_date_la_SOURCES = \
statusbar-date/xviewer-statusbar-date-plugin.h \
statusbar-date/xviewer-statusbar-date-plugin.c

statusbar_date_libstatusbar_date_la_LIBADD = \
$(top_builddir)/src/libxviewer.la \
$(XVIEWER_LIBS)

plugins_in_files += statusbar-date/statusbar-date.plugin.desktop.in
endif

# Generate plugin info files

%.plugin: %.plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(AM_V_GEN)$(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache

plugins_DATA = $(plugins_in_files:.plugin.desktop.in=.plugin)

DISTCLEANFILES = $(plugins_DATA)
CLEANFILES = $(plugins_DATA)

EXTRA_DIST = $(plugins_in_files)

-include $(top_srcdir)/git.mk

+ 0
- 9
plugins/fullscreen/fullscreen.plugin.desktop.in View File

@@ -1,9 +0,0 @@
[Plugin]
Module=fullscreen
IAge=2
_Name=Fullscreen with double-click
Icon=view-fullscreen
_Description=Activate fullscreen mode with double-click
Authors=Lucas Rocha <lucasr@gnome.org>
Copyright=Copyright © 2007 Lucas Rocha
Website=http://www.gnome.org/projects/xviewer

+ 0
- 189
plugins/fullscreen/xviewer-fullscreen-plugin.c View File

@@ -1,189 +0,0 @@
/* Fullscreen with double-click -- Sets xviewer to fullscreen by double-clicking
*
* Copyright (C) 2007-2012 The Free Software Foundation
*
* Author: Lucas Rocha <lucasr@gnome.org>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include "xviewer-fullscreen-plugin.h"

#include <gmodule.h>
#include <glib/gi18n-lib.h>
#include <libpeas/peas-activatable.h>

#include <xviewer-debug.h>
#include <xviewer-scroll-view.h>
#include <xviewer-window-activatable.h>

static void xviewer_window_activatable_iface_init (XviewerWindowActivatableInterface *iface);

G_DEFINE_DYNAMIC_TYPE_EXTENDED (XviewerFullscreenPlugin,
xviewer_fullscreen_plugin,
PEAS_TYPE_EXTENSION_BASE,
0,
G_IMPLEMENT_INTERFACE_DYNAMIC (XVIEWER_TYPE_WINDOW_ACTIVATABLE,
xviewer_window_activatable_iface_init))

enum {
PROP_0,
PROP_WINDOW
};

static gboolean
on_button_press (GtkWidget *widget, GdkEventButton *event, XviewerWindow *window)
{
XviewerScrollView *view = XVIEWER_SCROLL_VIEW (widget);

if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) {
XviewerWindowMode mode = xviewer_window_get_mode (window);
GdkEvent *ev = (GdkEvent*) event;

if(!xviewer_scroll_view_event_is_over_image (view, ev))
return FALSE;

if (mode == XVIEWER_WINDOW_MODE_SLIDESHOW ||
mode == XVIEWER_WINDOW_MODE_FULLSCREEN)
xviewer_window_set_mode (window, XVIEWER_WINDOW_MODE_NORMAL);
else if (mode == XVIEWER_WINDOW_MODE_NORMAL)
xviewer_window_set_mode (window, XVIEWER_WINDOW_MODE_FULLSCREEN);

return TRUE;
}

return FALSE;
}

static void
xviewer_fullscreen_plugin_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
XviewerFullscreenPlugin *plugin = XVIEWER_FULLSCREEN_PLUGIN (object);

switch (prop_id)
{
case PROP_WINDOW:
plugin->window = XVIEWER_WINDOW (g_value_dup_object (value));
break;

default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}

static void
xviewer_fullscreen_plugin_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
XviewerFullscreenPlugin *plugin = XVIEWER_FULLSCREEN_PLUGIN (object);

switch (prop_id)
{
case PROP_WINDOW:
g_value_set_object (value, plugin->window);
break;

default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}

static void
xviewer_fullscreen_plugin_init (XviewerFullscreenPlugin *plugin)
{
xviewer_debug_message (DEBUG_PLUGINS, "XviewerFullscreenPlugin initializing");
}

static void
xviewer_fullscreen_plugin_dispose (GObject *object)
{
XviewerFullscreenPlugin *plugin = XVIEWER_FULLSCREEN_PLUGIN (object);

xviewer_debug_message (DEBUG_PLUGINS, "XviewerFullscreenPlugin disposing");

if (plugin->window != NULL) {
g_object_unref (plugin->window);
plugin->window = NULL;
}

G_OBJECT_CLASS (xviewer_fullscreen_plugin_parent_class)->dispose (object);
}

static void
xviewer_fullscreen_plugin_activate (XviewerWindowActivatable *activatable)
{
XviewerFullscreenPlugin *plugin = XVIEWER_FULLSCREEN_PLUGIN (activatable);
GtkWidget *view = xviewer_window_get_view (plugin->window);

xviewer_debug (DEBUG_PLUGINS);

plugin->signal_id = g_signal_connect (G_OBJECT (view),
"button-press-event",
G_CALLBACK (on_button_press),
plugin->window);
}

static void
xviewer_fullscreen_plugin_deactivate (XviewerWindowActivatable *activatable)
{
XviewerFullscreenPlugin *plugin = XVIEWER_FULLSCREEN_PLUGIN (activatable);
GtkWidget *view = xviewer_window_get_view (plugin->window);

g_signal_handler_disconnect (view, plugin->signal_id);
}

static void
xviewer_fullscreen_plugin_class_init (XviewerFullscreenPluginClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);

object_class->dispose = xviewer_fullscreen_plugin_dispose;
object_class->set_property = xviewer_fullscreen_plugin_set_property;
object_class->get_property = xviewer_fullscreen_plugin_get_property;

g_object_class_override_property (object_class, PROP_WINDOW, "window");
}

static void
xviewer_fullscreen_plugin_class_finalize (XviewerFullscreenPluginClass *klass)
{
}

static void
xviewer_window_activatable_iface_init (XviewerWindowActivatableInterface *iface)
{
iface->activate = xviewer_fullscreen_plugin_activate;
iface->deactivate = xviewer_fullscreen_plugin_deactivate;
}

G_MODULE_EXPORT void
peas_register_types (PeasObjectModule *module)
{
xviewer_fullscreen_plugin_register_type (G_TYPE_MODULE (module));
peas_object_module_register_extension_type (module,
XVIEWER_TYPE_WINDOW_ACTIVATABLE,
XVIEWER_TYPE_FULLSCREEN_PLUGIN);
}

+ 0
- 81
plugins/fullscreen/xviewer-fullscreen-plugin.h View File

@@ -1,81 +0,0 @@
/* Fullscreen with double-click -- Sets xviewer to fullscreen by double-clicking
*
* Copyright (C) 2007-2012 The Free Software Foundation
*
* Author: Lucas Rocha <lucasr@gnome.org>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

#ifndef __XVIEWER_FULLSCREEN_PLUGIN_H__
#define __XVIEWER_FULLSCREEN_PLUGIN_H__

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <libpeas/peas-extension-base.h>
#include <libpeas/peas-object-module.h>

#include <xviewer-window.h>

G_BEGIN_DECLS

/*
* Type checking and casting macros
*/
#define XVIEWER_TYPE_FULLSCREEN_PLUGIN (xviewer_fullscreen_plugin_get_type ())
#define XVIEWER_FULLSCREEN_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XVIEWER_TYPE_FULLSCREEN_PLUGIN, XviewerFullscreenPlugin))
#define XVIEWER_FULLSCREEN_PLUGIN_CLASS(k) G_TYPE_CHECK_CLASS_CAST((k), XVIEWER_TYPE_FULLSCREEN_PLUGIN, XviewerFullscreenPluginClass))
#define XVIEWER_IS_FULLSCREEN_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XVIEWER_TYPE_FULLSCREEN_PLUGIN))
#define XVIEWER_IS_FULLSCREEN_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XVIEWER_TYPE_FULLSCREEN_PLUGIN))
#define XVIEWER_FULLSCREEN_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XVIEWER_TYPE_FULLSCREEN_PLUGIN, XviewerFullscreenPluginClass))

/* Private structure type */
typedef struct _XviewerFullscreenPluginPrivate XviewerFullscreenPluginPrivate;

/*
* Main object structure
*/
typedef struct _XviewerFullscreenPlugin XviewerFullscreenPlugin;

struct _XviewerFullscreenPlugin
{
PeasExtensionBase parent_instance;

XviewerWindow *window;
gulong signal_id;
};

/*
* Class definition
*/
typedef struct _XviewerFullscreenPluginClass XviewerFullscreenPluginClass;

struct _XviewerFullscreenPluginClass
{
PeasExtensionBaseClass parent_class;
};

/*
* Public methods
*/
GType xviewer_fullscreen_plugin_get_type (void) G_GNUC_CONST;

/* All the plugins must implement this function */
G_MODULE_EXPORT void peas_register_types (PeasObjectModule *module);

G_END_DECLS

#endif /* __XVIEWER_FULLSCREEN_PLUGIN_H__ */

+ 0
- 8
plugins/statusbar-date/statusbar-date.plugin.desktop.in View File

@@ -1,8 +0,0 @@
[Plugin]
Module=statusbar-date
IAge=2
_Name=Date in statusbar
_Description=Shows the image date in the window statusbar
Authors=Claudio Saavedra <csaavedra@gnome.org>
Copyright=Copyright © 2008 Free Software Foundation
Website=http://www.gnome.org/projects/xviewer

+ 0
- 228
plugins/statusbar-date/xviewer-statusbar-date-plugin.c View File

@@ -1,228 +0,0 @@
/* Statusbar Date -- Shows the EXIF date in XVIEWER's statusbar
*
* Copyright (C) 2008-2010 The Free Software Foundation
*
* Author: Claudio Saavedra <csaavedra@gnome.org>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include "xviewer-statusbar-date-plugin.h"

#include <gmodule.h>
#include <glib/gi18n-lib.h>

#include <libpeas/peas.h>

#include <xviewer-debug.h>
#include <xviewer-scroll-view.h>
#include <xviewer-image.h>
#include <xviewer-thumb-view.h>
#include <xviewer-exif-util.h>
#include <xviewer-window.h>
#include <xviewer-window-activatable.h>

static void xviewer_window_activatable_iface_init (XviewerWindowActivatableInterface *iface);

G_DEFINE_DYNAMIC_TYPE_EXTENDED (XviewerStatusbarDatePlugin,
xviewer_statusbar_date_plugin,
PEAS_TYPE_EXTENSION_BASE,
0,
G_IMPLEMENT_INTERFACE_DYNAMIC (XVIEWER_TYPE_WINDOW_ACTIVATABLE,
xviewer_window_activatable_iface_init))

enum {
PROP_0,
PROP_WINDOW
};

static void
statusbar_set_date (GtkStatusbar *statusbar, XviewerThumbView *view)
{
XviewerImage *image;
gchar *date = NULL;
gchar time_buffer[32];
ExifData *exif_data;

if (xviewer_thumb_view_get_n_selected (view) == 0)
return;

image = xviewer_thumb_view_get_first_selected_image (view);

gtk_statusbar_pop (statusbar, 0);

if (!xviewer_image_has_data (image, XVIEWER_IMAGE_DATA_EXIF)) {
if (!xviewer_image_load (image, XVIEWER_IMAGE_DATA_EXIF, NULL, NULL)) {
gtk_widget_hide (GTK_WIDGET (statusbar));
}
}

exif_data = xviewer_image_get_exif_info (image);
if (exif_data) {
date = xviewer_exif_util_format_date (
xviewer_exif_data_get_value (exif_data, EXIF_TAG_DATE_TIME_ORIGINAL, time_buffer, 32));
xviewer_exif_data_free (exif_data);
}

if (date) {
gtk_statusbar_push (statusbar, 0, date);
gtk_widget_show (GTK_WIDGET (statusbar));
g_free (date);
} else {
gtk_widget_hide (GTK_WIDGET (statusbar));
}
}

static void
selection_changed_cb (XviewerThumbView *view, XviewerStatusbarDatePlugin *plugin)
{
statusbar_set_date (GTK_STATUSBAR (plugin->statusbar_date), view);
}

static void
xviewer_statusbar_date_plugin_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
XviewerStatusbarDatePlugin *plugin = XVIEWER_STATUSBAR_DATE_PLUGIN (object);

switch (prop_id)
{
case PROP_WINDOW:
plugin->window = XVIEWER_WINDOW (g_value_dup_object (value));
break;

default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}

static void
xviewer_statusbar_date_plugin_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
XviewerStatusbarDatePlugin *plugin = XVIEWER_STATUSBAR_DATE_PLUGIN (object);

switch (prop_id)
{
case PROP_WINDOW:
g_value_set_object (value, plugin->window);
break;

default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}

static void
xviewer_statusbar_date_plugin_init (XviewerStatusbarDatePlugin *plugin)
{
xviewer_debug_message (DEBUG_PLUGINS, "XviewerStatusbarDatePlugin initializing");
}

static void
xviewer_statusbar_date_plugin_dispose (GObject *object)
{
XviewerStatusbarDatePlugin *plugin = XVIEWER_STATUSBAR_DATE_PLUGIN (object);

xviewer_debug_message (DEBUG_PLUGINS, "XviewerStatusbarDatePlugin disposing");

if (plugin->window != NULL) {
g_object_unref (plugin->window);
plugin->window = NULL;
}

G_OBJECT_CLASS (xviewer_statusbar_date_plugin_parent_class)->dispose (object);
}

static void
xviewer_statusbar_date_plugin_activate (XviewerWindowActivatable *activatable)
{
XviewerStatusbarDatePlugin *plugin = XVIEWER_STATUSBAR_DATE_PLUGIN (activatable);
XviewerWindow *window = plugin->window;
GtkWidget *statusbar = xviewer_window_get_statusbar (window);
GtkWidget *thumbview = xviewer_window_get_thumb_view (window);

xviewer_debug (DEBUG_PLUGINS);

plugin->statusbar_date = gtk_statusbar_new ();
gtk_widget_set_size_request (plugin->statusbar_date, 200, 10);
gtk_box_pack_end (GTK_BOX (statusbar),
plugin->statusbar_date,
FALSE, FALSE, 0);

plugin->signal_id = g_signal_connect_after (G_OBJECT (thumbview),
"selection_changed",
G_CALLBACK (selection_changed_cb), plugin);

statusbar_set_date (GTK_STATUSBAR (plugin->statusbar_date),
XVIEWER_THUMB_VIEW (xviewer_window_get_thumb_view (window)));
}

static void
xviewer_statusbar_date_plugin_deactivate (XviewerWindowActivatable *activatable)
{
XviewerStatusbarDatePlugin *plugin = XVIEWER_STATUSBAR_DATE_PLUGIN (activatable);
XviewerWindow *window = plugin->window;
GtkWidget *statusbar = xviewer_window_get_statusbar (window);
GtkWidget *view = xviewer_window_get_thumb_view (window);

g_signal_handler_disconnect (view, plugin->signal_id);

gtk_container_remove (GTK_CONTAINER (statusbar),
plugin->statusbar_date);
}

static void
xviewer_statusbar_date_plugin_class_init (XviewerStatusbarDatePluginClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);

object_class->dispose = xviewer_statusbar_date_plugin_dispose;
object_class->set_property = xviewer_statusbar_date_plugin_set_property;
object_class->get_property = xviewer_statusbar_date_plugin_get_property;
g_object_class_override_property (object_class, PROP_WINDOW, "window");
}

static void
xviewer_statusbar_date_plugin_class_finalize (XviewerStatusbarDatePluginClass *klass)
{
}

static void
xviewer_window_activatable_iface_init (XviewerWindowActivatableInterface *iface)
{
iface->activate = xviewer_statusbar_date_plugin_activate;
iface->deactivate = xviewer_statusbar_date_plugin_deactivate;
}

G_MODULE_EXPORT void
peas_register_types (PeasObjectModule *module)
{
xviewer_statusbar_date_plugin_register_type (G_TYPE_MODULE (module));
peas_object_module_register_extension_type (module,
XVIEWER_TYPE_WINDOW_ACTIVATABLE,
XVIEWER_TYPE_STATUSBAR_DATE_PLUGIN);
}

+ 0
- 82
plugins/statusbar-date/xviewer-statusbar-date-plugin.h View File

@@ -1,82 +0,0 @@
/* Statusbar Date -- Shows the EXIF date in XVIEWER's statusbar
*
* Copyright (C) 2008 The Free Software Foundation
*
* Author: Claudio Saavedra <csaavedra@gnome.org>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

#ifndef __XVIEWER_STATUSBAR_DATE_PLUGIN_H__
#define __XVIEWER_STATUSBAR_DATE_PLUGIN_H__

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <libpeas/peas-extension-base.h>
#include <libpeas/peas-object-module.h>

#include <xviewer-window.h>

G_BEGIN_DECLS

/*
* Type checking and casting macros
*/
#define XVIEWER_TYPE_STATUSBAR_DATE_PLUGIN (xviewer_statusbar_date_plugin_get_type ())
#define XVIEWER_STATUSBAR_DATE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XVIEWER_TYPE_STATUSBAR_DATE_PLUGIN, XviewerStatusbarDatePlugin))
#define XVIEWER_STATUSBAR_DATE_PLUGIN_CLASS(k) G_TYPE_CHECK_CLASS_CAST((k), XVIEWER_TYPE_STATUSBAR_DATE_PLUGIN, XviewerStatusbarDatePluginClass))
#define XVIEWER_IS_STATUSBAR_DATE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XVIEWER_TYPE_STATUSBAR_DATE_PLUGIN))
#define XVIEWER_IS_STATUSBAR_DATE_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XVIEWER_TYPE_STATUSBAR_DATE_PLUGIN))
#define XVIEWER_STATUSBAR_DATE_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XVIEWER_TYPE_STATUSBAR_DATE_PLUGIN, XviewerStatusbarDatePluginClass))

/* Private structure type */
typedef struct _XviewerStatusbarDatePluginPrivate XviewerStatusbarDatePluginPrivate;

/*
* Main object structure
*/
typedef struct _XviewerStatusbarDatePlugin XviewerStatusbarDatePlugin;

struct _XviewerStatusbarDatePlugin
{
PeasExtensionBase parent_instance;

XviewerWindow *window;
GtkWidget *statusbar_date;
gulong signal_id;
};

/*
* Class definition
*/
typedef struct _XviewerStatusbarDatePluginClass XviewerStatusbarDatePluginClass;

struct _XviewerStatusbarDatePluginClass
{
PeasExtensionBaseClass parent_class;
};

/*
* Public methods
*/
GType xviewer_statusbar_date_plugin_get_type (void) G_GNUC_CONST;

/* All the plugins must implement this function */
G_MODULE_EXPORT void peas_register_types (PeasObjectModule *module);

G_END_DECLS

#endif /* __XVIEWER_STATUSBAR_DATE_PLUGIN_H__ */

+ 0
- 5
po/POTFILES.in View File

@@ -10,11 +10,6 @@ data/xviewer.desktop.in.in
[type: gettext/glade]data/xviewer-multiple-save-as-dialog.ui
[type: gettext/glade]data/xviewer-preferences-dialog.ui
[type: gettext/gsettings]data/org.x.viewer.gschema.xml.in
plugins/fullscreen/xviewer-fullscreen-plugin.c
plugins/fullscreen/fullscreen.plugin.desktop.in
plugins/reload/xviewer-reload-plugin.c
plugins/reload/reload.plugin.desktop.in
plugins/statusbar-date/statusbar-date.plugin.desktop.in
src/xviewer-application.c
src/xviewer-close-confirmation-dialog.c
src/xviewer-error-message-area.c


+ 147
- 169
po/xviewer.pot View File

@@ -1,19 +1,22 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-10 16:57+0000\n"
"POT-Creation-Date: 2016-09-08 15:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
"X-Launchpad-Export-Date: 2016-06-25 09:32+0000\n"
"X-Generator: Launchpad (build 18111)\n"
"Language: \n"

#. Translaters: This string is for a toggle to display a toolbar.
#. * The name of the toolbar is automatically computed from the widgets
@@ -55,36 +58,36 @@ msgstr ""
msgid "Separator"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:1 ../src/xviewer-window.c:4047
#: ../data/xviewer-app-menu.xml.h:1 ../src/xviewer-window.c:4095
msgid "_View"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:2 ../src/xviewer-window.c:4073
#: ../data/xviewer-app-menu.xml.h:2 ../src/xviewer-window.c:4121
msgid "_Toolbar"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:3 ../src/xviewer-window.c:4076
#: ../data/xviewer-app-menu.xml.h:3 ../src/xviewer-window.c:4124
msgid "_Statusbar"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:4 ../src/xviewer-window.c:4079
#: ../data/xviewer-app-menu.xml.h:4 ../src/xviewer-window.c:4127
msgid "_Image Gallery"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:5 ../src/xviewer-window.c:4082
#: ../data/xviewer-app-menu.xml.h:5 ../src/xviewer-window.c:4130
msgid "Side _Pane"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:6 ../src/xviewer-window.c:4061
#: ../data/xviewer-app-menu.xml.h:6 ../src/xviewer-window.c:4109
msgid "Prefere_nces"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:7 ../data/xviewer-preferences-dialog.ui.h:2
#: ../src/xviewer-window.c:2565 ../src/xviewer-window.c:4050
#: ../src/xviewer-window.c:2592 ../src/xviewer-window.c:4098
msgid "_Help"
msgstr ""

#: ../data/xviewer-app-menu.xml.h:8 ../src/xviewer-window.c:4067
#: ../data/xviewer-app-menu.xml.h:8 ../src/xviewer-window.c:4115
msgid "_About"
msgstr ""

@@ -106,7 +109,6 @@ msgid ""
msgstr ""

#: ../data/xviewer.desktop.in.in.h:1 ../src/xviewer-application.c:293
#: ../src/xviewer-window.c:6181
msgid "Image Viewer"
msgstr ""

@@ -119,7 +121,7 @@ msgstr ""
msgid "Picture;Slideshow;Graphics;"
msgstr ""

#: ../data/xviewer-image-properties-dialog.ui.h:1 ../src/xviewer-window.c:5082
#: ../data/xviewer-image-properties-dialog.ui.h:1 ../src/xviewer-window.c:5133
msgid "Image Properties"
msgstr ""

@@ -132,8 +134,8 @@ msgid "_Next"
msgstr ""

#: ../data/xviewer-image-properties-dialog.ui.h:4
#: ../data/xviewer-preferences-dialog.ui.h:3 ../src/xviewer-window.c:2563
#: ../src/xviewer-window.c:4055
#: ../data/xviewer-preferences-dialog.ui.h:3 ../src/xviewer-window.c:2590
#: ../src/xviewer-window.c:4103
msgid "_Close"
msgstr ""

@@ -254,8 +256,8 @@ msgstr ""
#: ../src/xviewer-close-confirmation-dialog.c:172
#: ../src/xviewer-error-message-area.c:119 ../src/xviewer-file-chooser.c:456
#: ../src/xviewer-file-chooser.c:464 ../src/xviewer-file-chooser.c:472
#: ../src/xviewer-window.c:3376 ../src/xviewer-window.c:3379
#: ../src/xviewer-window.c:3630
#: ../src/xviewer-window.c:3410 ../src/xviewer-window.c:3413
#: ../src/xviewer-window.c:3678
msgid "_Cancel"
msgstr ""

@@ -383,7 +385,7 @@ msgstr ""
msgid "Sequence"
msgstr ""

#. I18N: This sentence will be displayed above a horizonzal scale to select a number of seconds in xviewer's preferences dialog.
#. I18N: This sentence will be displayed above a horizonzal scale to select a number of seconds in xviewer
#: ../data/xviewer-preferences-dialog.ui.h:21
msgid "_Time between images:"
msgstr ""
@@ -612,38 +614,12 @@ msgid ""
"given plugin."
msgstr ""

#: ../plugins/fullscreen/fullscreen.plugin.desktop.in.h:1
msgid "Fullscreen with double-click"
msgstr ""

#: ../plugins/fullscreen/fullscreen.plugin.desktop.in.h:2
msgid "Activate fullscreen mode with double-click"
msgstr ""

#: ../plugins/reload/xviewer-reload-plugin.c:74
#: ../plugins/reload/reload.plugin.desktop.in.h:1
msgid "Reload Image"
msgstr ""

#: ../plugins/reload/xviewer-reload-plugin.c:76
#: ../plugins/reload/reload.plugin.desktop.in.h:2
msgid "Reload current image"
msgstr ""

#: ../plugins/statusbar-date/statusbar-date.plugin.desktop.in.h:1
msgid "Date in statusbar"
msgstr ""

#: ../plugins/statusbar-date/statusbar-date.plugin.desktop.in.h:2
msgid "Shows the image date in the window statusbar"
msgstr ""

#: ../src/xviewer-close-confirmation-dialog.c:166
msgid "Close _without Saving"
msgstr ""

#: ../src/xviewer-close-confirmation-dialog.c:178
#: ../src/xviewer-file-chooser.c:465 ../src/xviewer-window.c:4088
#: ../src/xviewer-file-chooser.c:465 ../src/xviewer-window.c:4136
msgid "_Save"
msgstr ""

@@ -677,11 +653,12 @@ msgstr ""
msgid "If you don't save, all your changes will be lost."
msgstr ""

#: ../src/xviewer-error-message-area.c:124 ../src/xviewer-window.c:847
#: ../src/xviewer-error-message-area.c:124 ../src/xviewer-window.c:874
#: ../src/xviewer-window.c:4190
msgid "_Reload"
msgstr ""

#: ../src/xviewer-error-message-area.c:129 ../src/xviewer-window.c:4094
#: ../src/xviewer-error-message-area.c:129 ../src/xviewer-window.c:4142
msgid "Save _As…"
msgstr ""

@@ -823,8 +800,7 @@ msgstr ""

#. Pixel size of image: width x height in pixel
#: ../src/xviewer-file-chooser.c:289 ../src/xviewer-metadata-sidebar.c:234
#: ../src/xviewer-metadata-sidebar.c:238
#: ../src/xviewer-properties-dialog.c:139
#: ../src/xviewer-metadata-sidebar.c:238 ../src/xviewer-properties-dialog.c:139
#: ../src/xviewer-properties-dialog.c:141 ../src/xviewer-thumb-view.c:516
msgid "pixel"
msgid_plural "pixels"
@@ -892,8 +868,7 @@ msgstr ""
msgid "Couldn't allocate memory for loading JPEG file"
msgstr ""

#: ../src/xviewer-metadata-sidebar.c:247
#: ../src/xviewer-properties-dialog.c:156
#: ../src/xviewer-metadata-sidebar.c:247 ../src/xviewer-properties-dialog.c:156
msgid "Unknown"
msgstr ""

@@ -901,8 +876,8 @@ msgstr ""
msgid "File size:"
msgstr ""

#: ../src/xviewer-metadata-sidebar.c:521
#: ../src/xviewer-properties-dialog.c:737 ../src/xviewer-window.c:4098
#: ../src/xviewer-metadata-sidebar.c:521 ../src/xviewer-properties-dialog.c:737
#: ../src/xviewer-window.c:4146
msgid "Show the folder which contains this file in the file manager"
msgstr ""

@@ -1047,28 +1022,28 @@ msgstr ""
#. * - image height
#. * - image size in bytes
#. * - zoom in percent
#: ../src/xviewer-window.c:541
#: ../src/xviewer-window.c:543
#, c-format
msgid "%i × %i pixel %s %i%%"
msgid_plural "%i × %i pixels %s %i%%"
msgstr[0] ""
msgstr[1] ""

#: ../src/xviewer-window.c:849 ../src/xviewer-window.c:2793
#: ../src/xviewer-window.c:876 ../src/xviewer-window.c:2827
msgctxt "MessageArea"
msgid "Hi_de"
msgstr ""

#. The newline character is currently necessary due to a problem
#. * with the automatic line break.
#: ../src/xviewer-window.c:859
#: ../src/xviewer-window.c:886
#, c-format
msgid ""
"The image \"%s\" has been modified by an external application.\n"
"Would you like to reload it?"
msgstr ""

#: ../src/xviewer-window.c:1023
#: ../src/xviewer-window.c:1050
#, c-format
msgid "Use \"%s\" to open the selected image"
msgstr ""
@@ -1078,71 +1053,71 @@ msgstr ""
#. * - the original filename
#. * - the current image's position in the queue
#. * - the total number of images queued for saving
#: ../src/xviewer-window.c:1179
#: ../src/xviewer-window.c:1206
#, c-format
msgid "Saving image \"%s\" (%u/%u)"
msgstr ""

#: ../src/xviewer-window.c:1574
#: ../src/xviewer-window.c:1601
#, c-format
msgid "Opening image \"%s\""
msgstr ""

#: ../src/xviewer-window.c:1898
#: ../src/xviewer-window.c:1925
msgid "_Leave Fullscreen"
msgstr ""

#. L10N: This the reason why the screensaver is inhibited.
#: ../src/xviewer-window.c:2030
#: ../src/xviewer-window.c:2057
msgid "Viewing a slideshow"
msgstr ""

#: ../src/xviewer-window.c:2259
#: ../src/xviewer-window.c:2286
#, c-format
msgid ""
"Error printing file:\n"
"%s"
msgstr ""

#: ../src/xviewer-window.c:2558
#: ../src/xviewer-window.c:2585
msgid "Toolbar Editor"
msgstr ""

#: ../src/xviewer-window.c:2561
#: ../src/xviewer-window.c:2588
msgid "_Reset to Default"
msgstr ""

#: ../src/xviewer-window.c:2726 ../src/xviewer-window.c:2741
#: ../src/xviewer-window.c:2755 ../src/xviewer-window.c:2770
msgid "Error launching System Settings: "
msgstr ""

#. I18N: When setting mnemonics for these strings, watch out to not
#. clash with mnemonics from xviewer's menubar
#: ../src/xviewer-window.c:2791
#: ../src/xviewer-window.c:2825
msgid "_Open Background Preferences"
msgstr ""

#. The newline character is currently necessary due to a problem
#. * with the automatic line break.
#: ../src/xviewer-window.c:2807
#: ../src/xviewer-window.c:2841
#, c-format
msgid ""
"The image \"%s\" has been set as Desktop Background.\n"
"Would you like to modify its appearance?"
msgstr ""

#: ../src/xviewer-window.c:3274
#: ../src/xviewer-window.c:3308
msgid "Saving image locally…"
msgstr ""

#: ../src/xviewer-window.c:3352
#: ../src/xviewer-window.c:3386
#, c-format
msgid ""
"Are you sure you want to remove\n"
"\"%s\" permanently?"
msgstr ""

#: ../src/xviewer-window.c:3355
#: ../src/xviewer-window.c:3389
#, c-format
msgid ""
"Are you sure you want to remove\n"
@@ -1153,55 +1128,55 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""

#: ../src/xviewer-window.c:3377 ../src/xviewer-window.c:3641
#: ../src/xviewer-window.c:3411 ../src/xviewer-window.c:3689
msgid "_Delete"
msgstr ""

#: ../src/xviewer-window.c:3380 ../src/xviewer-window.c:3643
#: ../src/xviewer-window.c:3414 ../src/xviewer-window.c:3691
msgid "_Yes"
msgstr ""

#. add 'dont ask again' button
#: ../src/xviewer-window.c:3384 ../src/xviewer-window.c:3635
#: ../src/xviewer-window.c:3418 ../src/xviewer-window.c:3683
msgid "Do _not ask again during this session"
msgstr ""

#: ../src/xviewer-window.c:3428
#: ../src/xviewer-window.c:3462
#, c-format
msgid "Couldn't retrieve image file"
msgstr ""

#: ../src/xviewer-window.c:3444
#: ../src/xviewer-window.c:3478
#, c-format
msgid "Couldn't retrieve image file information"
msgstr ""

#: ../src/xviewer-window.c:3460 ../src/xviewer-window.c:3702
#: ../src/xviewer-window.c:3494 ../src/xviewer-window.c:3750
#, c-format
msgid "Couldn't delete file"
msgstr ""

#. set dialog error message
#: ../src/xviewer-window.c:3510 ../src/xviewer-window.c:3798
#: ../src/xviewer-window.c:3544 ../src/xviewer-window.c:3846
#, c-format
msgid "Error on deleting image %s"
msgstr ""

#: ../src/xviewer-window.c:3603
#: ../src/xviewer-window.c:3651
#, c-format
msgid ""
"Are you sure you want to move\n"
"\"%s\" to the trash?"
msgstr ""

#: ../src/xviewer-window.c:3606
#: ../src/xviewer-window.c:3654
#, c-format
msgid ""
"A trash for \"%s\" couldn't be found. Do you want to remove this image "
"permanently?"
msgstr ""

#: ../src/xviewer-window.c:3611
#: ../src/xviewer-window.c:3659
#, c-format
msgid ""
"Are you sure you want to move\n"
@@ -1212,344 +1187,347 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""

#: ../src/xviewer-window.c:3616
#: ../src/xviewer-window.c:3664
msgid ""
"Some of the selected images can't be moved to the trash and will be removed "
"permanently. Are you sure you want to proceed?"
msgstr ""

#: ../src/xviewer-window.c:3633 ../src/xviewer-window.c:4124
#: ../src/xviewer-window.c:4151
#: ../src/xviewer-window.c:3681 ../src/xviewer-window.c:4172
#: ../src/xviewer-window.c:4202
msgid "Move to _Trash"
msgstr ""

#: ../src/xviewer-window.c:3680 ../src/xviewer-window.c:3694
#: ../src/xviewer-window.c:3728 ../src/xviewer-window.c:3742
#, c-format
msgid "Couldn't access trash."
msgstr ""

#: ../src/xviewer-window.c:4045
#: ../src/xviewer-window.c:4093
msgid "_Image"
msgstr ""

#: ../src/xviewer-window.c:4046
#: ../src/xviewer-window.c:4094
msgid "_Edit"
msgstr ""

#: ../src/xviewer-window.c:4048
#: ../src/xviewer-window.c:4096
msgid "_Go"
msgstr ""

#: ../src/xviewer-window.c:4049
#: ../src/xviewer-window.c:4097
msgid "_Tools"
msgstr ""

#: ../src/xviewer-window.c:4052
#: ../src/xviewer-window.c:4100
msgid "_Open…"
msgstr ""

#: ../src/xviewer-window.c:4053
#: ../src/xviewer-window.c:4101
msgid "Open a file"
msgstr ""

#: ../src/xviewer-window.c:4056
#: ../src/xviewer-window.c:4104
msgid "Close window"
msgstr ""

#: ../src/xviewer-window.c:4058
#: ../src/xviewer-window.c:4106
msgid "T_oolbar"
msgstr ""

#: ../src/xviewer-window.c:4059
#: ../src/xviewer-window.c:4107
msgid "Edit the application toolbar"
msgstr ""

#: ../src/xviewer-window.c:4062
#: ../src/xviewer-window.c:4110
msgid "Preferences for Image Viewer"
msgstr ""

#: ../src/xviewer-window.c:4064
#: ../src/xviewer-window.c:4112
msgid "_Contents"
msgstr ""

#: ../src/xviewer-window.c:4065
#: ../src/xviewer-window.c:4113
msgid "Help on this application"
msgstr ""

#: ../src/xviewer-window.c:4068
#: ../src/xviewer-window.c:4116
msgid "About this application"
msgstr ""

#: ../src/xviewer-window.c:4074
#: ../src/xviewer-window.c:4122
msgid "Changes the visibility of the toolbar in the current window"
msgstr ""

#: ../src/xviewer-window.c:4077
#: ../src/xviewer-window.c:4125
msgid "Changes the visibility of the statusbar in the current window"
msgstr ""

#: ../src/xviewer-window.c:4080
msgid ""
"Changes the visibility of the image gallery pane in the current window"
#: ../src/xviewer-window.c:4128
msgid "Changes the visibility of the image gallery pane in the current window"
msgstr ""

#: ../src/xviewer-window.c:4083
#: ../src/xviewer-window.c:4131
msgid "Changes the visibility of the side pane in the current window"
msgstr ""

#: ../src/xviewer-window.c:4089
#: ../src/xviewer-window.c:4137
msgid "Save changes in currently selected images"
msgstr ""

#: ../src/xviewer-window.c:4091
#: ../src/xviewer-window.c:4139
msgid "Open _with"
msgstr ""

#: ../src/xviewer-window.c:4092
#: ../src/xviewer-window.c:4140
msgid "Open the selected image with a different application"
msgstr ""

#: ../src/xviewer-window.c:4095
#: ../src/xviewer-window.c:4143
msgid "Save the selected images with a different name"
msgstr ""

#: ../src/xviewer-window.c:4097
#: ../src/xviewer-window.c:4145
msgid "Show Containing _Folder"
msgstr ""

#: ../src/xviewer-window.c:4100
#: ../src/xviewer-window.c:4148
msgid "_Print…"
msgstr ""

#: ../src/xviewer-window.c:4101
#: ../src/xviewer-window.c:4149
msgid "Print the selected image"
msgstr ""

#: ../src/xviewer-window.c:4103
#: ../src/xviewer-window.c:4151
msgid "Prope_rties"
msgstr ""

#: ../src/xviewer-window.c:4104
#: ../src/xviewer-window.c:4152
msgid "Show the properties and metadata of the selected image"
msgstr ""

#: ../src/xviewer-window.c:4106
#: ../src/xviewer-window.c:4154
msgid "_Undo"
msgstr ""

#: ../src/xviewer-window.c:4107
#: ../src/xviewer-window.c:4155
msgid "Undo the last change in the image"
msgstr ""

#: ../src/xviewer-window.c:4109
#: ../src/xviewer-window.c:4157
msgid "Flip _Horizontal"
msgstr ""

#: ../src/xviewer-window.c:4110
#: ../src/xviewer-window.c:4158
msgid "Mirror the image horizontally"
msgstr ""

#: ../src/xviewer-window.c:4112
#: ../src/xviewer-window.c:4160
msgid "Flip _Vertical"
msgstr ""

#: ../src/xviewer-window.c:4113
#: ../src/xviewer-window.c:4161
msgid "Mirror the image vertically"
msgstr ""

#: ../src/xviewer-window.c:4115
#: ../src/xviewer-window.c:4163
msgid "_Rotate Clockwise"
msgstr ""

#: ../src/xviewer-window.c:4116
#: ../src/xviewer-window.c:4164
msgid "Rotate the image 90 degrees to the right"
msgstr ""

#: ../src/xviewer-window.c:4118
#: ../src/xviewer-window.c:4166
msgid "Rotate Counterc_lockwise"
msgstr ""

#: ../src/xviewer-window.c:4119
#: ../src/xviewer-window.c:4167
msgid "Rotate the image 90 degrees to the left"
msgstr ""

#: ../src/xviewer-window.c:4121
#: ../src/xviewer-window.c:4169
msgid "Set as Wa_llpaper"
msgstr ""

#: ../src/xviewer-window.c:4122
#: ../src/xviewer-window.c:4170
msgid "Set the selected image as the wallpaper"
msgstr ""

#: ../src/xviewer-window.c:4125
#: ../src/xviewer-window.c:4173
msgid "Move the selected image to the trash folder"
msgstr ""

#: ../src/xviewer-window.c:4127
#: ../src/xviewer-window.c:4175
msgid "_Delete Image"
msgstr ""

#: ../src/xviewer-window.c:4128
#: ../src/xviewer-window.c:4176
msgid "Delete the selected image"
msgstr ""

#: ../src/xviewer-window.c:4130
#: ../src/xviewer-window.c:4178
msgid "_Copy"
msgstr ""

#: ../src/xviewer-window.c:4131
#: ../src/xviewer-window.c:4179
msgid "Copy the selected image to the clipboard"
msgstr ""

#: ../src/xviewer-window.c:4133 ../src/xviewer-window.c:4142
#: ../src/xviewer-window.c:4145
#: ../src/xviewer-window.c:4181 ../src/xviewer-window.c:4193
#: ../src/xviewer-window.c:4196
msgid "_Zoom In"
msgstr ""

#: ../src/xviewer-window.c:4134 ../src/xviewer-window.c:4143
#: ../src/xviewer-window.c:4182 ../src/xviewer-window.c:4194
msgid "Enlarge the image"
msgstr ""

#: ../src/xviewer-window.c:4136 ../src/xviewer-window.c:4148
#: ../src/xviewer-window.c:4184 ../src/xviewer-window.c:4199
msgid "Zoom _Out"
msgstr ""

#: ../src/xviewer-window.c:4137 ../src/xviewer-window.c:4146
#: ../src/xviewer-window.c:4149
#: ../src/xviewer-window.c:4185 ../src/xviewer-window.c:4197
#: ../src/xviewer-window.c:4200
msgid "Shrink the image"
msgstr ""

#: ../src/xviewer-window.c:4139
#: ../src/xviewer-window.c:4187
msgid "_Normal Size"
msgstr ""

#: ../src/xviewer-window.c:4140
#: ../src/xviewer-window.c:4188
msgid "Show the image at its normal size"
msgstr ""

#: ../src/xviewer-window.c:4157
#: ../src/xviewer-window.c:4191
msgid "Reload the image"
msgstr ""

#: ../src/xviewer-window.c:4208
msgid "_Fullscreen"
msgstr ""

#: ../src/xviewer-window.c:4158
#: ../src/xviewer-window.c:4209
msgid "Show the current image in fullscreen mode"
msgstr ""

#: ../src/xviewer-window.c:4160
#: ../src/xviewer-window.c:4211
msgid "Pause Slideshow"
msgstr ""

#: ../src/xviewer-window.c:4161
#: ../src/xviewer-window.c:4212
msgid "Pause or resume the slideshow"
msgstr ""

#: ../src/xviewer-window.c:4163
#: ../src/xviewer-window.c:4214
msgid "_Best Fit"
msgstr ""

#: ../src/xviewer-window.c:4164
#: ../src/xviewer-window.c:4215
msgid "Fit the image to the window"
msgstr ""

#: ../src/xviewer-window.c:4169 ../src/xviewer-window.c:4184
#: ../src/xviewer-window.c:4220 ../src/xviewer-window.c:4235
msgid "_Previous Image"
msgstr ""

#: ../src/xviewer-window.c:4170
#: ../src/xviewer-window.c:4221
msgid "Go to the previous image of the gallery"
msgstr ""

#: ../src/xviewer-window.c:4172
#: ../src/xviewer-window.c:4223
msgid "_Next Image"
msgstr ""

#: ../src/xviewer-window.c:4173
#: ../src/xviewer-window.c:4224
msgid "Go to the next image of the gallery"
msgstr ""

#: ../src/xviewer-window.c:4175 ../src/xviewer-window.c:4187
#: ../src/xviewer-window.c:4226 ../src/xviewer-window.c:4238
msgid "_First Image"
msgstr ""

#: ../src/xviewer-window.c:4176
#: ../src/xviewer-window.c:4227
msgid "Go to the first image of the gallery"
msgstr ""

#: ../src/xviewer-window.c:4178 ../src/xviewer-window.c:4190
#: ../src/xviewer-window.c:4229 ../src/xviewer-window.c:4241
msgid "_Last Image"
msgstr ""

#: ../src/xviewer-window.c:4179
#: ../src/xviewer-window.c:4230
msgid "Go to the last image of the gallery"
msgstr ""

#: ../src/xviewer-window.c:4181
#: ../src/xviewer-window.c:4232
msgid "_Random Image"
msgstr ""

#: ../src/xviewer-window.c:4182
#: ../src/xviewer-window.c:4233
msgid "Go to a random image of the gallery"
msgstr ""

#: ../src/xviewer-window.c:4340
#: ../src/xviewer-window.c:4391
msgid "S_lideshow"
msgstr ""

#: ../src/xviewer-window.c:4341
#: ../src/xviewer-window.c:4392
msgid "Start a slideshow view of the images"
msgstr ""

#: ../src/xviewer-window.c:4413
#: ../src/xviewer-window.c:4464
msgid "Previous"
msgstr ""

#: ../src/xviewer-window.c:4418
#: ../src/xviewer-window.c:4469
msgid "Next"
msgstr ""

#: ../src/xviewer-window.c:4425
#: ../src/xviewer-window.c:4476
msgid "Right"
msgstr ""

#: ../src/xviewer-window.c:4428
#: ../src/xviewer-window.c:4479
msgid "Left"
msgstr ""

#: ../src/xviewer-window.c:4431
#: ../src/xviewer-window.c:4482
msgid "Show Folder"
msgstr ""

#: ../src/xviewer-window.c:4434
#: ../src/xviewer-window.c:4485
msgid "In"
msgstr ""

#: ../src/xviewer-window.c:4437
#: ../src/xviewer-window.c:4488
msgid "Out"
msgstr ""

#: ../src/xviewer-window.c:4440
#: ../src/xviewer-window.c:4491
msgid "Normal"
msgstr ""

#: ../src/xviewer-window.c:4443
#: ../src/xviewer-window.c:4494
msgid "Fit"
msgstr ""

#: ../src/xviewer-window.c:4446
#: ../src/xviewer-window.c:4497
msgid "Gallery"
msgstr ""

#: ../src/xviewer-window.c:4463
#: ../src/xviewer-window.c:4514
msgctxt "action (to trash)"
msgid "Trash"
msgstr ""

#: ../src/xviewer-window.c:4829
#: ../src/xviewer-window.c:4880
#, c-format
msgid "Edit the current image using %s"
msgstr ""

#: ../src/xviewer-window.c:4831
#: ../src/xviewer-window.c:4882
msgid "Edit Image"
msgstr ""



+ 23
- 0
src/xviewer-window.c View File

@@ -813,6 +813,25 @@ image_thumb_changed_cb (XviewerImage *image, gpointer data)
}
}

static gboolean
on_button_pressed (GtkWidget *widget, GdkEventButton *event, XviewerWindow *window)
{
if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) {
XviewerWindowMode mode = xviewer_window_get_mode (window);
GdkEvent *ev = (GdkEvent*) event;

if (mode == XVIEWER_WINDOW_MODE_SLIDESHOW ||
mode == XVIEWER_WINDOW_MODE_FULLSCREEN)
xviewer_window_set_mode (window, XVIEWER_WINDOW_MODE_NORMAL);
else if (mode == XVIEWER_WINDOW_MODE_NORMAL)
xviewer_window_set_mode (window, XVIEWER_WINDOW_MODE_FULLSCREEN);

return TRUE;
}

return FALSE;
}

static void
file_changed_info_bar_response (GtkInfoBar *info_bar,
gint response,
@@ -826,6 +845,7 @@ file_changed_info_bar_response (GtkInfoBar *info_bar,

xviewer_window_set_message_area (window, NULL);
}

static void
image_file_changed_cb (XviewerImage *img, XviewerWindow *window)
{
@@ -5264,6 +5284,9 @@ xviewer_window_init (XviewerWindow *window)
"current-image");
if (G_LIKELY (action != NULL))
g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);

g_signal_connect (GTK_WINDOW (window), "button-press-event",
G_CALLBACK (on_button_pressed), window);
}

static void


Loading…
Cancel
Save