Commit bcc1a347 authored by raveit65's avatar raveit65 Committed by Pierre Wieser

Add support for Caja filemanager

Mate desktop
Patch provided by Wolfgang Ulbrich <mate@raveit.de>
https://bugzilla.gnome.org/show_bug.cgi?id=778937.
parent a7070fa5
......@@ -22,6 +22,8 @@ Version 3.4
As we target now GLib 2.32, support for legacy compatibility
layers is removed: dbus-glib-1, libICE, libSM.
Add support for Caja filemanager (thanks to Wolfgang Ulbrich <mate@raveit.de>).
New and updated translations:
Version 3.2.4
......
......@@ -117,7 +117,7 @@ AC_SUBST([NAUTILUS_ACTIONS_LIBS])
# print the debug output be printed to the console
AC_DEFINE([NAUTILUS_ACTIONS_DEBUG],["NAUTILUS_ACTIONS_DEBUG"],[Debug environment variable])
# target a file manager (nautilus, nemo, ...)
# target a file manager (nautilus, nemo, caja, ...)
FMA_TARGET_FILE_MANAGER
# add --with-default-io-provider option
......@@ -200,6 +200,10 @@ if test "${with_nemo_ok}" = "yes"; then
$as_echo " Targeting Nemo
installing extensions in ${with_nemo_extdir}"
fi
if test "${with_caja_ok}" = "yes"; then
$as_echo " Targeting Caja
installing extensions in ${with_caja_extdir}"
fi
$as_echo " GConf enabled ${enable_gconf}"
if test "${enable_gconf}" = "yes"; then
$as_echo " GConf schemas installation ${msg_schemas_install}"
......
......@@ -51,6 +51,7 @@ uuid_required=1.6.2
# File-managers
nautilus_required=3.4.1
nemo_required=1.8 # appeared with Trusty 14 LTS
caja_required=1.16.0 # gtk+-3 version are in f25, ubuntu-16.10, next debian
REQUIRED_INTLTOOL_VERSION=${intltool_required}
......
......@@ -63,6 +63,7 @@ AC_DEFUN([FMA_TARGET_FILE_MANAGER],[
_AC_FMA_WITH_NAUTILUS
_AC_FMA_WITH_NEMO
_AC_FMA_WITH_CAJA
if test ${fma_fm_count} -eq 0; then
_FMA_CHECK_MODULE_MSG([yes],[No suitable target file manager found])
......@@ -127,3 +128,26 @@ AC_DEFUN([_AC_FMA_WITH_NEMO],[
AM_CONDITIONAL([HAVE_NEMO], [test "${with_nemo_ok}" = "yes"])
])
# targeting file manager: caja
# user may specify --with[out]-caja; default is to rely on the
# availability of the extensions libraries/apis
# requires: caja-devel be installed
# supplementary options: --with-caja-extdir
AC_DEFUN([_AC_FMA_WITH_CAJA],[
_AC_FMA_WITHAFM([caja],[Caja])
let fma_fm_candidate+=1
AC_SUBST([CAJA_ID],[${fma_fm_candidate}])
AC_SUBST([CAJA_LABEL],[Caja])
AC_DEFINE_UNQUOTED([CAJA_ID],[${fma_fm_candidate}],[Identify the candidate file manager])
AS_IF([test "$with_caja" != "no"],[FMA_CHECK_FOR_CAJA])
if test "${with_caja_ok}" = "yes"; then
let fma_fm_count+=1
fi
AM_CONDITIONAL([HAVE_CAJA], [test "${with_caja_ok}" = "yes"])
])
# FileManager-Actions
# A file-manager extension which offers configurable context menu actions.
#
# Copyright (C) 2005 The GNOME Foundation
# Copyright (C) 2006-2008 Frederic Ruaudel and others (see AUTHORS)
# Copyright (C) 2009-2015 Pierre Wieser and others (see AUTHORS)
#
# FileManager-Actions 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.
#
# FileManager-Actions 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 FileManager-Actions; see the file COPYING. If not, see
# <http://www.gnu.org/licenses/>.
#
# Authors:
# Frederic Ruaudel <grumz@grumz.net>
# Rodrigo Moya <rodrigo@gnome-db.org>
# Pierre Wieser <pwieser@trychlos.org>
# ... and many others (see AUTHORS)
# serial 1 introduce FMA_CHECK_FOR_CAJA
dnl Usage: FMA_CHECK_FOR_CAJA
dnl Decription: Whether the user has specified '--with-caja' or does
dnl not have specified anything (while he does not have specified
dnl --without-caja), we are checking here if Caja is a suitable
dnl target file manager.
dnl This requires that the extensions library be installed, and that
dnl the extensions directory be defined.
dnl
AC_DEFUN([FMA_CHECK_FOR_CAJA],[
with_caja_ok="no"
AC_REQUIRE([_FMA_CAJA_EXTDIR])
if test "${with_caja_extdir}" = ""; then
AC_MSG_WARN([Unable to determine Caja extension folder, please use --with-caja-extdir option])
else
FMA_CHECK_MODULE([CAJA_EXTENSION],[libcaja-extension],[${caja_required}],[yes])
if test "${have_CAJA_EXTENSION}" = "yes"; then
with_caja_ok="yes"
fi
fi
if test "${with_caja_ok}" = "yes"; then
# Check for menu update function
AC_CHECK_LIB([caja-extension],[caja_menu_item_new],[],[with_caja_ok="no"])
# doesn't make the two following checks fatal
AC_CHECK_FUNCS([caja_menu_provider_emit_items_updated_signal])
# add toolbar items
AC_CHECK_FUNCS([caja_menu_provider_get_toolbar_items])
fi
if test "${with_caja_ok}" = "yes"; then
AC_MSG_NOTICE([installing Caja plugins in ${with_caja_extdir}])
AC_SUBST([CAJA_EXTENSIONS_DIR],[${with_caja_extdir}])
fi
])
# let the user specify an alternate caja-extension dir
# --with-caja-extdir=<dir>
#
AC_DEFUN([_FMA_CAJA_EXTDIR],[
AC_ARG_WITH([caja-extdir],
AC_HELP_STRING(
[--with-caja-extdir=DIR],
[Caja extensions directory @<:@auto@:>@]),
[with_caja_extdir=$withval],
[with_caja_extdir=""])
if test "${with_caja_extdir}" = ""; then
if test "{PKG_CONFIG}" != ""; then
with_caja_extdir=`${PKG_CONFIG} --variable=extensiondir libcaja-extension`
fi
fi
])
......@@ -156,6 +156,7 @@ conf_args="\${conf_args} --prefix=\${heredir}/_install"
conf_args="\${conf_args} --sysconfdir=/etc"
conf_args="\${conf_args} --with-nautilus-extdir=\${heredir}/_install/lib/nautilus"
conf_args="\${conf_args} --with-nemo-extdir=\${heredir}/_install/lib/nemo"
conf_args="\${conf_args} --with-caja-extdir=\${heredir}/_install/lib/caja"
conf_args="\${conf_args} --enable-maintainer-mode"
conf_args="\${conf_args} --enable-docs"
conf_args="\${conf_args} $*"
......
......@@ -43,6 +43,10 @@
#include <libnemo-extension/nemo-extension-types.h>
#include <libnemo-extension/nemo-menu-provider.h>
#include <libnemo-extension/nemo-file-info.h>
#elif FMA_TARGET_ID == CAJA_ID
#include <libcaja-extension/caja-extension-types.h>
#include <libcaja-extension/caja-menu-provider.h>
#include <libcaja-extension/caja-file-info.h>
#endif
G_BEGIN_DECLS
......@@ -89,6 +93,27 @@ G_BEGIN_DECLS
#define file_manager_file_info_list_copy nemo_file_info_list_copy
#define file_manager_file_info_list_free nemo_file_info_list_free
#define file_manager_menu_provider_emit_items_updated_signal nemo_menu_provider_emit_items_updated_signal
#elif FMA_TARGET_ID == CAJA_ID
#define FILE_MANAGER_TYPE_MENU_PROVIDER CAJA_TYPE_MENU_PROVIDER
#define FILE_MANAGER_MENU_PROVIDER CAJA_MENU_PROVIDER
#define FILE_MANAGER_IS_MENU CAJA_IS_MENU
#define FILE_MANAGER_MENU_ITEM CAJA_MENU_ITEM
#define FILE_MANAGER_FILE_INFO CAJA_FILE_INFO
#define FileManagerMenuProviderIface CajaMenuProviderIface
#define FileManagerMenuProvider CajaMenuProvider
#define FileManagerMenuItem CajaMenuItem
#define FileManagerMenu CajaMenu
#define FileManagerFileInfo CajaFileInfo
#define file_manager_menu_new caja_menu_new
#define file_manager_menu_append_item caja_menu_append_item
#define file_manager_menu_item_new caja_menu_item_new
#define file_manager_menu_item_set_submenu caja_menu_item_set_submenu
#define file_manager_menu_item_list_free caja_menu_item_list_free
#define file_manager_file_info_get_uri caja_file_info_get_uri
#define file_manager_file_info_get_mime_type caja_file_info_get_mime_type
#define file_manager_file_info_list_copy caja_file_info_list_copy
#define file_manager_file_info_list_free caja_file_info_list_free
#define file_manager_menu_provider_emit_items_updated_signal caja_menu_provider_emit_items_updated_signal
#endif
G_END_DECLS
......
......@@ -75,5 +75,17 @@ libfma_nemo_menu_la_CPPFLAGS = $(AM_CPPFLAGS) \
$(NULL)
endif
if HAVE_CAJA
caja_extensiondir = $(CAJA_EXTENSIONS_DIR)
caja_extension_LTLIBRARIES = libfma-caja-menu.la
libfma_caja_menu_la_SOURCES = $(lib_sources)
libfma_caja_menu_la_LIBADD = $(lib_libadd)
libfma_caja_menu_la_LDFLAGS = $(lib_ldflags)
libfma_caja_menu_la_CPPFLAGS = $(AM_CPPFLAGS) \
-DFMA_TARGET_ID=$(CAJA_ID) \
-DFMA_TARGET_LABEL=\"$(CAJA_LABEL)\" \
$(NULL)
endif
# Code coverage
@CODE_COVERAGE_RULES@
......@@ -63,6 +63,8 @@ void
nautilus_module_initialize( GTypeModule *module )
#elif FMA_TARGET_ID == NEMO_ID
nemo_module_initialize( GTypeModule *module )
#elif FMA_TARGET_ID == CAJA_ID
caja_module_initialize( GTypeModule *module )
#endif
{
static const gchar *thisfn = "fma_menu_module_" FMA_TARGET_LABEL "_module_initialize";
......@@ -89,6 +91,8 @@ void
nautilus_module_list_types( const GType **types, int *num_types )
#elif FMA_TARGET_ID == NEMO_ID
nemo_module_list_types( const GType **types, int *num_types )
#elif FMA_TARGET_ID == CAJA_ID
caja_module_list_types( const GType **types, int *num_types )
#endif
{
static const gchar *thisfn = "fma_menu_module_" FMA_TARGET_LABEL "_module_list_types";
......@@ -109,6 +113,8 @@ void
nautilus_module_shutdown( void )
#elif FMA_TARGET_ID == NEMO_ID
nemo_module_shutdown( void )
#elif FMA_TARGET_ID == CAJA_ID
caja_module_shutdown( void )
#endif
{
static const gchar *thisfn = "fma_menu_module_" FMA_TARGET_LABEL "_module_shutdown";
......
......@@ -100,6 +100,19 @@ libfma_nemo_tracker_la_CPPFLAGS = $(AM_CPPFLAGS) \
$(NULL)
endif
if HAVE_CAJA
caja_extensiondir = $(CAJA_EXTENSIONS_DIR)
caja_extension_LTLIBRARIES = libfma-caja-tracker.la
nodist_libfma_caja_tracker_la_SOURCES = $(nodist_libfma_sources)
libfma_caja_tracker_la_SOURCES = $(libfma_sources)
libfma_caja_tracker_la_LIBADD = $(libfma_ldadd)
libfma_caja_tracker_la_LDFLAGS = $(libfma_ldflags)
libfma_caja_tracker_la_CPPFLAGS = $(AM_CPPFLAGS) \
-DFMA_TARGET_ID=$(CAJA_ID) \
-DFMA_TARGET_LABEL=\"$(CAJA_LABEL)\" \
$(NULL)
endif
EXTRA_DIST = \
fma-tracker-gdbus.xml \
$(NULL)
......
......@@ -60,6 +60,8 @@ void
nautilus_module_initialize( GTypeModule *module )
#elif FMA_TARGET_ID == NEMO_ID
nemo_module_initialize( GTypeModule *module )
#elif FMA_TARGET_ID == CAJA_ID
caja_module_initialize( GTypeModule *module )
#endif
{
static const gchar *thisfn = "fma_tracker_module_" FMA_TARGET_LABEL "_module_initialize";
......@@ -80,6 +82,8 @@ void
nautilus_module_list_types( const GType **types, int *num_types )
#elif FMA_TARGET_ID == NEMO_ID
nemo_module_list_types( const GType **types, int *num_types )
#elif FMA_TARGET_ID == CAJA_ID
caja_module_list_types( const GType **types, int *num_types )
#endif
{
static const gchar *thisfn = "fma_tracker_module_" FMA_TARGET_LABEL "_module_list_types";
......@@ -97,6 +101,8 @@ void
nautilus_module_shutdown( void )
#elif FMA_TARGET_ID == NEMO_ID
nemo_module_shutdown( void )
#elif FMA_TARGET_ID == CAJA_ID
caja_module_shutdown( void )
#endif
{
static const gchar *thisfn = "fma_tracker_module_" FMA_TARGET_LABEL "_module_shutdown";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment