2009-12-16 Pierre Wieser * data/nautilus-actions.schemas.in: Add locked key. * NEWS: * README: Updated files. * nautilus-actions/io-provider-desktop/nadp-module.c: Make the desktop I/O provider only loadable in maintainer mode. * po/POTFILES.in: Fix typo. * nautilus-actions/api/na-api.h (na_api_module_get_name): * nautilus-actions/api/na-iio-provider.h (get_name): The na_api_module_get_name() function is moved to NAIIOProvider interface as get_name(). * nautilus-actions/io-provider-desktop/nadp-desktop-provider.c * nautilus-actions/io-provider-gconf/nagp-gconf-provider.c (get_name): New function. * nautilus-actions/io-provider-desktop/nadp-module.c * nautilus-actions/io-provider-gconf/nagp-module.c (na_api_module_get_name): Removed function. * nautilus-actions/nact/nact-tree-model-dnd.c (is_parent_accept_new_childs): New function. Prevent drop inside of a read-only parent. * nautilus-actions/nact/nact-window.c (nact_window_has_writable_providers): Updated to no more use na_pivot_has_writable_providers(). * nautilus-actions/runtime/na-io-provider.c * nautilus-actions/runtime/na-io-provider.h (na_io_provider_get_provider, na_io_provider_get_writable_provider): New functions. * nautilus-actions/runtime/na-module.c * nautilus-actions/runtime/na-module.h (na_module_dump): New function. (na_module_get_name): Removed function. * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (na_pivot_get_module_name, na_pivot_get_provider, na_pivot_release_provider, na_pivot_has_writable_providers): Removed functions. (na_pivot_is_level_zero_writable): New function. * nautilus-actions/runtime/na-utils.c: * nautilus-actions/runtime/na-utils.h (na_utils_remove_suffix): New function. * nautilus-actions/utils/nautilus-actions-new.c (write_to_gconf): Updated to find a writable provider. 2009-12-15 Pierre Wieser Split too big file nact-tree-model.c. * nautilus-actions/nact/nact-tree-model-dnd.c: * nautilus-actions/nact/nact-tree-model-dnd.h: * nautilus-actions/nact/nact-tree-model-priv.h: New files. * nautilus-actions/nact/Makefile.am: * nautilus-actions/nact/nact-tree-model.c: Updated accordingly. Split too big file nact-iactions-list.c. * nautilus-actions/nact/nact-iactions-list-bis.c: * nautilus-actions/nact/nact-iactions-list-priv.c: * nautilus-actions/nact/nact-iactions-list-priv.h: New files. * nautilus-actions/nact/Makefile.am: * nautilus-actions/nact/nact-assistant-export.c: * nautilus-actions/nact/nact-assistant-import.c: * nautilus-actions/nact/nact-iactions-list.c: * nautilus-actions/nact/nact-iactions-list.h: * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nact-main-window.c: * nautilus-actions/nact/nact-tree-model.c: Updated accordingly. * nautilus-actions/nact/nact-iactions-list.c: * nautilus-actions/nact/nact-iactions-list.h (nact_iactions_list_has_focus): Removed unused function. * nautilus-actions/nact/nact-gtk-utils.c: * nautilus-actions/nact/nact-gtk-utils.h: New files. * nautilus-actions/nact/Makefile.am: Updated accordingly. * nautilus-actions/nact/nact-main-tab.h: * nautilus-actions/nact/nact-main-window.c: Define TAB_UPDATABLE_PROP_READONLY_ITEM and TAB_UPDATABLE_PROP_WRITABLE_PROVIDER new properties. * nautilus-actions/nact/nact-iaction-tab.c: * nautilus-actions/nact/nact-iadvanced-tab.c: * nautilus-actions/nact/nact-ibackground-tab.c: * nautilus-actions/nact/nact-icommand-tab.c: * nautilus-actions/nact/nact-iconditions-tab.c: Manage read-only items. 2009-12-13 Pierre Wieser * nautilus-actions/api/na-api.h (na_api_module_get_version): * nautilus-actions/io-provider-desktop/nadp-module.c (na_api_module_get_version): * nautilus-actions/io-provider-gconf/nagp-module.c (na_api_module_get_version): New function. * nautilus-actions/io-provider-desktop/nadp-write.c (nadp_iio_provider_is_willing_to_write): * nautilus-actions/io-provider-gconf/nagp-write.c (nagp_iio_provider_is_willing_to_write): * nautilus-actions/runtime/na-io-provider.c (na_io_provider_is_willing_to_write): Remove too verbose debug traces. * nautilus-actions/runtime/na-pivot.c (na_pivot_has_writable_providers): Add a debug trace. * nautilus-actions/nact/nact-iactions-list.c (display_label): Profile label is editable only if parent action is writable. * nautilus-actions/nact/nact-main-menubar.c (on_update_sensitivities): Enable item insertion only if parent is writable. 2009-12-12 Pierre Wieser * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-window.h (nact_window_is_lockdown): Removed function. (nact_window_is_writable_provider, nact_window_has_writable_providers): New functions. * nautilus-actions/runtime/na-io-provider.c: * nautilus-actions/runtime/na-io-provider.h (na_io_provider_is_willing_to_write): New function. * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (na_pivot_has_writable_providers): New function. * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-window.h (nact_window_is_lockdown): Check if the provider of the current item is locked down. * nautilus-actions/nact/nact-main-menubar.c (on_update_sensitivities): * nautilus-actions/nact/nact-iactions-list.c (display_label): Updated accordingly. * nautilus-actions/io-provider-gconf/nagp-gconf-provider.c: * nautilus-actions/io-provider-desktop/nadp-desktop-provider.c (get_id, get_version): New functions. * doc/io-provider-id: New file to handle allocated providers ids. * nautilus-actions/api/na-iio-provider.c: * nautilus-actions/api/na-iio-provider.h (get_id, get_version): New API functions. * nautilus-actions/runtime/na-io-provider.c: * nautilus-actions/runtime/na-io-provider.h (na_io_provider_get_id, na_io_provider_get_version): New functions. * nautilus-actions/nact/nact-iactions-list.c (nact_iactions_list_initial_load_toplevel, display_label): Label column is not editable when read-only or locked down. * nautilus-actions/nact/nact-main-menubar.c (on_update_sensitivities): Do not enable 'cut' if locked down. * nautilus-actions/private/na-object-profile.c (object_are_equal, object_is_valid): Now marked as static. * nautilus-actions/private/na-object-profile.c (na_object_profile_is_candidate, na_object_profile_is_candidate_for_tracked): Profile must be valid in order to be candidate. * nautilus-actions/api/na-dbus.h: New file. * nautilus-actions/api/Makefile.am: Updated accordingly. * nautilus-actions/nact/nact-clipboard.c (nact_clipboard_dump): Fix debug parameters to have pointer of correct size. * nautilus-actions/private/na-gnome-vfs-uri.c: * nautilus-actions/private/na-gnome-vfs-uri.h: Rename uri field to path. * nautilus-actions/private/na-object-profile-class.h: Define NATrackedItem structure. * nautilus-actions/private/na-object-profile-fn.h: * nautilus-actions/private/na-object-profile.c (na_object_profile_is_candidate_for_tracked, na_object_profile_parse_parameters_for_tracked): New functions. * nautilus-actions/test/test-parse-uris.c: Add a new test case. * nautilus-actions/tracker/Makefile.am: * nautilus-actions/utils/Makefile.am: Fix make distcheck. Install XML service definition and cleanup built files. * nautilus-actions/tracker/na-tracker-dbus.c: Take a reference on NautilusFileInfo provided list. * nautilus-actions/tracker/na-tracker.c: * nautilus-actions/tracker/na-tracker.h: Move DBus service name to api/na-dbus.h header. * nautilus-actions/utils/nautilus-actions-run.c: Remove '--parameters' and '--current' useless options. Execute action on candidate profile. 2009-12-10 Pierre Wieser * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (get_item_from_tree): No more require an UUID. Be able to get the current Nautilus selection into an external program via a DBus interface in the new Tracker plugin. * configure.ac: * nautilus-actions/Makefile.am: Define new tracker subdirectory. * m4/na-log-domains.m4: Define new NA-tracker log domain. * nautilus-actions/tracker/Makefile.am: * nautilus-actions/tracker/na-tracker-dbus.c: * nautilus-actions/tracker/na-tracker-dbus.h: * nautilus-actions/tracker/na-tracker-dbus.xml: * nautilus-actions/tracker/na-tracker-plugin.c: * nautilus-actions/tracker/na-tracker.c: * nautilus-actions/tracker/na-tracker.h: New files. * nautilus-actions/utils/nautilus-actions-run.c: New file. * nautilus-actions/utils/Makefile.am: Updated accordingly. 2009-12-08 Pierre Wieser A try to implement a lockdown key in GConf mandatory settings. * nautilus-actions/nact/nact-main-menubar.c (on_update_sensitivities): Disable most of File and Edit menu items if lockdown key is set. * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-window.h (nact_window_is_lockdown): New function. 2009-12-07 Pierre Wieser * configure.ac: Bump version number. * nautilus-actions/private/na-object-id.c (na_object_id_prepare_for_paste): Reset provider and read-only flag when pasting a new object. * nautilus-actions/nact/nact-main-menubar.c (prepare_for_paste): Recheck status of pasted items. * nautilus-actions/io-provider-desktop/nadp-desktop-file.c (nadp_desktop_file_get_label, nadp_desktop_file_get_tooltip, nadp_desktop_file_get_icon): Return an empty string rather than NULL. * nautilus-actions/nact/nact-main-menubar.c (on_update_sensitivities): Do not paste into a read-only action. * nautilus-actions/io-provider-desktop/nadp-desktop-file.c: * nautilus-actions/io-provider-desktop/nadp-desktop-file.h (nadp_desktop_file_get_icon, nadp_desktop_file_get_enabled, nadp_desktop_file_set_icon, nadp_desktop_file_set_enabled): New functions. * nautilus-actions/io-provider-desktop/nadp-read.c (read_item_properties): Read icon and enabled status. * nautilus-actions/io-provider-desktop/nadp-write.c (write_item): Write icon name or path and enabled status. * nautilus-actions/plugin/nautilus-actions.c (build_nautilus_menus): Emits a warning when finding a disabled or invalid item. * nautilus-actions/nact/nact-clipboard.c (nact_clipboard_dump): Allow dump when clipboard has not been yet used. * nautilus-actions/api/na-object-api.h: All arguments have parenthesis around them. Only load in the Nautilus plugin valid and enabled candidate items. * nautilus-actions/nact/nact-application.c (appli_initialize_application): Explicitely load items. * nautilus-actions/nact/nact-main-window.c (reload): Call na_pivot_load_items() function. * nautilus-actions/plugin/nautilus-actions.c (instance_init): Explicitely load items after having set filtering criteria. * nautilus-actions/private/na-object-item.c (na_object_item_set_items_list): Free previous GList structure. * nautilus-actions/runtime/na-io-provider.c (na_io_provider_read_items): Filter the returned hierarchy. * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (na_pivot_check_status): Removed function. (na_pivot_reload_items): Renamed as na_pivot_load_items(). (na_pivot_set_population, na_pivot_is_disable_loadable, na_pivot_is_invalid_loadable): New functions. 2009-12-03 Pierre Wieser * nautilus-actions/private/na-object-profile.c (object_is_valid): Fix validity check of the profile. Add a maintainer menu option to dump the clipboard. * nautilus-actions/nact/nact-clipboard.c: * nautilus-actions/nact/nact-clipboard.h (nact_clipboard_dump): New function. * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nautilus-actions-maintainer.actions: Define the a new 'Dump the clipboard' option. 2009-12-02 Pierre Wieser * nautilus-actions/nact/nact-iaction-tab.c (on_tab_updatable_selection_changed): * nautilus-actions/nact/nact-iadvanced-tab.c (on_tab_updatable_selection_changed): * nautilus-actions/nact/nact-ibackground-tab.c (on_tab_updatable_selection_changed): * nautilus-actions/nact/nact-icommand-tab.c (on_tab_updatable_selection_changed): * nautilus-actions/nact/nact-iconditions-tab.c (on_tab_updatable_selection_changed): * nautilus-actions/nact/nact-main-menubar.c (on_update_sensitivities): Do not allow edition if item is read-only. 2009-12-01 Pierre Wieser * nautilus-actions/nact/nact-iaction-tab.c (on_tab_updatable_selection_changed): Display I/O provider name. * nautilus-actions/nact/nautilus-actions-config-tool.ui: Display I/O provider name. * nautilus-actions/runtime/na-io-provider.c: * nautilus-actions/runtime/na-io-provider.h (na_io_provider_get_name): New function. * nautilus-actions/runtime/na-module.c: * nautilus-actions/runtime/na-module.h (na_module_get_name_for_object): New function. * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (na_pivot_get_module_name): New function. * nautilus-actions/io-provider-desktop/nadp-write.c (nadp_iio_provider_is_writable): Do not handle menus yet. * nautilus-actions/io-provider-desktop/nadp-read.c (action_from_desktop_path): Have at least one profile for the action. (read_item_properties): Set object id. * nautilus-actions/io-provider-desktop/nadp-desktop-file.c (check_key_file): Fix check of required keys. * nautilus-actions/io-provider-desktop/nadp-desktop-file.c (nadp_desktop_file_set_label, nadp_desktop_file_set_tooltip): Fix locale. * nautilus-actions/io-provider-desktop/nadp-desktop-provider.c: * nautilus-actions/io-provider-desktop/nadp-desktop-provider.h: Fix NadpDesktopProviderPrivate typedef definition. * nautilus-actions/io-provider-desktop/nadp-utils.h: Remove egg-desktop-file.h include. * nautilus-actions/io-provider-desktop/nadp-write.c (nadp_iio_provider_is_willing_to_write): Fix permissions. (nadp_iio_provider_write_item): Create directory if it doesn't exist. * nautilus-actions/private/na-object-item-priv.h: Fix typo. * nautilus-actions/io-provider-desktop/nadp-desktop-provider.h: * nautilus-actions/io-provider-desktop/nadp-desktop-provider.c: Move NadpDesktopProviderPrivate to C source. * nautilus-actions/io-provider-desktop/nadp-write.c: Remove EggDesktopFile class. (nadp_iio_provider_write_item, nadp_iio_provider_delete_item): Check that item is not read-only before trying to write or delete. * nautilus-actions/io-provider-desktop/Makefile.am: Remove EggDesktopFile files. * nautilus-actions/io-provider-desktop/nadp-desktop-file.c: * nautilus-actions/io-provider-desktop/nadp-desktop-file.h: Handle key files. * nautilus-actions/io-provider-desktop/nadp-read.c: Test for writability status of the readen item. 2009-11-30 Pierre Wieser * nautilus-actions/io-provider-desktop/nadp-desktop-file.c: * utilus-actions/io-provider-desktop/nadp-desktop-file.h: * nautilus-actions/io-provider-desktop/nadp-read.c: * nautilus-actions/io-provider-desktop/nadp-read.h: * nautilus-actions/io-provider-desktop/nadp-utils.c: * nautilus-actions/io-provider-desktop/nadp-utils.h: * nautilus-actions/io-provider-desktop/nadp-write.c: * nautilus-actions/io-provider-desktop/nadp-write.h: * nautilus-actions/io-provider-desktop/nadp-xdg-data-dirs.c: * nautilus-actions/io-provider-desktop/nadp-xdg-data-dirs.h: New files. * nautilus-actions/io-provider-desktop/Makefile.am: Updated accordingly. * nautilus-actions/io-provider-desktop/nadp-desktop-provider.h: Define NADP_DESKTOP_PROVIDER_SUBDIRS. 2009-11-25 Pierre Wieser Read-only flag is moved to NAObjectItem: action and menu may be read-only. * nautilus-actions/api/na-object-api.h (na_object_is_readonly, na_object_set_readonly): New functions. * nautilus-actions/private/na-object-action-fn.h: * nautilus-actions/private/na-object-action-priv.h: * nautilus-actions/private/na-object-action.c: * nautilus-actions/private/na-object-item-fn.h: * nautilus-actions/private/na-object-item-priv.h: * nautilus-actions/private/na-object-item.c: "read-only" property is moved from NAObjectAction to NAObjectItem. (na_object_action_is_readonly): Renamed to na_object_item_is_readonly. (na_object_action_set_readonly): Renamed to na_object_item_set_readonly. * nautilus-actions/io-provider-gconf/nagp-read.c (read_object_item_properties): Set the 'read-only' flag for the object. * nautilus-actions/io-provider-gconf/nagp-write.c (nagp_iio_provider_is_writable): Set the writability status of the object. (nagp_iio_provider_is_willing_to_write): Set the writability status of the provider. * nautilus-actions/io-provider-desktop/egg-desktop-file.c: * nautilus-actions/io-provider-desktop/egg-desktop-file.h: New files. * nautilus-actions/io-provider-desktop/Makefile.am: Updated accordingly. 2009-11-24 Pierre Wieser Create NadpDesktopProvider module. * nautilus-actions/io-provider-desktop/Makefile.am: * nautilus-actions/io-provider-desktop/nadp-desktop-provider.c: * nautilus-actions/io-provider-desktop/nadp-desktop-provider.h: * nautilus-actions/io-provider-desktop/nadp-module.c: New files. * configure.ac: * nautilus-actions/Makefile.am: Updated accordingly. * m4/na-log-domains.m4: Define new NA_LOGDOMAIN_DESKTOP_PROVIDER log domain. Have smaller sources in NagpGConfProvider. Remove na-utils dependancy. * nautilus-actions/io-provider-gconf/nagp-read.c: * nautilus-actions/io-provider-gconf/nagp-read.h: * nautilus-actions/io-provider-gconf/nagp-write.c: * nautilus-actions/io-provider-gconf/nagp-write.h: New files. * nautilus-actions/io-provider-gconf/Makefile.am: Updated accordingly. * configure.ac: Remove useless gthread dependancy. * nautilus-actions/io-provider-gconf/Makefile.am: Add nautilus-actions/ to include path (fix make distcheck). * po/POTFILES.in: Add two new files (fix make distcheck). na_pivot_new no more takes an argument. * nautilus-actions/nact/nact-application.c (appli_initialize_application): * nautilus-actions/plugin/nautilus-actions.c (instance_init): * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (na_pivot_new): * nautilus-actions/utils/nautilus-actions-new.c (write_to_gconf): Updated accordingly. * nautilus-actions/runtime/na-utils.c (na_utils_print_version): Displays current GLib and Gtk+ runtime library versions. * nautilus-actions/nact/base-application.c: Gracefully terminates the application on SMClient quit signal. 2009-11-23 Pierre Wieser * nautilus-actions/nact/nautilus-actions-config-tool.ui: Modify labels to make them clearer. Ask the user to confirm on logout. * nautilus-actions/nact/base-application-class.h: * nautilus-actions/nact/base-application.c (initialize_session_manager): New class function. Instantiate and initialize an EggSMClient-derived object. * nautilus-actions/nact/base-window-class.h: * nautilus-actions/nact/base-window.c (is_willing_to_quit): New class function. * nautilus-actions/nact/base-window.h (base_window_is_willing_to_quit): Returns TRUE if application is willing to quit on logout. * nautilus-actions/nact/nact-main-window.c: Ask the user for a confirmation when sessions ends while modifications are pending. * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nact-main-menubar.h (nact_main_menubar_save_items): New public function. * nautilus-actions/nact/egg-desktop-file.c: * nautilus-actions/nact/egg-desktop-file.h: * nautilus-actions/nact/egg-sm-client-private.h: * nautilus-actions/nact/egg-sm-client-xsmp.c: * nautilus-actions/nact/egg-sm-client.c: * nautilus-actions/nact/egg-sm-client.h: * nautilus-actions/nact/nact-confirm-logout.c: * nautilus-actions/nact/nact-confirm-logout.h: New files. * nautilus-actions/nact/Makefile.am: Updated accordingly. * nautilus-actions/nact/nautilus-actions-config-tool.ui (ConfirmLogoutDialog): New dialog. 2009-11-21 Pierre Wieser * nautilus-actions/nact/nact-iaction-tab.c (on_tab_updatable_selection_changed): Display empty label when item not set. * nautilus-actions/nact/nact-xml-reader.c (propagate_default_values): Propagate default values to the newly imported action. Fix list of modified items in NACT. * nautilus-actions/nact/nact-iactions-list.c: * nautilus-actions/nact/nact-iactions-list.h (nact_iactions_list_list_modified_items): New maintainer function. * nautilus-actions/nact/nact-iactions-list.c (remove_rec): Recursively remove no-more modified sub-objects. * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nautilus-actions-maintainer.actions: New maintainer function. * nautilus-actions/private/Makefile.am: Remove useless -DPKGLIBDIR. Allow the user to run multiple instances of NACT. * nautilus-actions/nact/base-application-class.h (manage_options): New virtual function. * nautilus-actions/nact/base-application.c: * nautilus-actions/nact/base-application.h: New entries property. * nautilus-actions/nact/base-application.c: argc and argv are now 'contruct only' properties. Accept now an GOptionEntry list as a 'contruct only property'. Check args if GOptionEntry list is not null. * nautilus-actions/nact/nact-application.c: Define --version option. Define --non-unique command-line option. * nautilus-actions/runtime/na-utils.c: * nautilus-actions/runtime/na-utils.h: * nautilus-actions/utils/console-utils.c: * nautilus-actions/utils/console-utils.h: Move console_print_version() function to na_utils_print_version(). * nautilus-actions/utils/nautilus-actions-new.c: * nautilus-actions/utils/nautilus-actions-schemas.c: Updated accordingly. 2009-11-20 Pierre Wieser Define functions with actual type for arguments. * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (na_pivot_add_item, na_pivot_get_item): Take/return a NAObjectItem. * nautilus-actions/nact/nact-main-menubar.c (save_item): * nautilus-actions/nact/nact-main-window.c (nact_main_window_get_item): Updated accordingly. Get ride of "unsolicitated invocation of g_object_dispose() on GTypeModule" error message. * nautilus-actions/runtime/na-module.c (na_module_release_modules): No more unref the module. Review log handlers. * nautilus-actions/io-provider-gconf/nagp-module.c (na_api_module_init): standardize debug message. * nautilus-actions/nact/nact-main.c: Better name the static variable which holds the default handler. * nautilus-actions/plugin/nautilus-module.c: * nautilus-actions/utils/console-utils.c: Simplify log handler management on NACT model. * src/Makefile.am: Update compilation order as io-provider-gconf plugin depends on runtime. * nautilus-actions/api/na-iio-provider.c: * nautilus-actions/api/na-iio-provider.h (na_iio_provider_config_changed): Advertise interface with id of modified item. * nautilus-actions/io-provider-gconf/nagp-gconf-provider.c: Add a timeout to only trigger NAIIOProvider when all modifications on an item have been made. * nautilus-actions/io-provider-gconf/nagp-module.c (na_api_module_init): Remove log handler management, no more syslog at initialization. * nautilus-actions/nact/nact-main.c: Simplify log management. * nautilus-actions/runtime/na-io-provider.c: * nautilus-actions/runtime/na-io-provider.h (na_io_provider_register_callbacks): New function. * nautilus-actions/runtime/na-module.c (plugin_check): Fix error message. * nautilus-actions/runtime/na-pivot.c: Move static variables to the instance. * nautilus-actions/nact/nact-iaction-tab.c (on_tab_updatable_selection_changed): Fix label display when the widget is disabled. * nautilus-actions/nact/nact-iactions-list.c (on_treeview_selection_changed): Fix typo. * nautilus-actions/nact/nact-main-menubar.c (on_save_activated): Complete comment about status check. * nautilus-actions/nact/nact-main-window.c (nact_main_window_remove_deleted): Setup dialog title is required here when this is the only modification to be saved. 2009-11-19 Pierre Wieser Create GConf IO Provider as a plugin. * nautilus-actions/runtime/na-gconf-provider-keys.h: * nautilus-actions/runtime/na-gconf-provider.c: * nautilus-actions/runtime/na-gconf-provider.h: Moved to io-provider-gconf/, and thus removed from runtime/. * configure.ac: * nautilus-actions/Makefile.am: Maage io-provider-gconf/ new directory. * m4/na-log-domains.m4: Define new NA_LOGDOMAIN_IO_PROVIDER_GCONF log domain. * nautilus-actions/api/na-api.c: * nautilus-actions/api/na-api.h (na_api_module_init): Now returns a boolean. * nautilus-actions/plugin/nautilus-module.c: Set module name. * nautilus-actions/runtime/na-gconf-utils.c: * nautilus-actions/runtime/na-gconf-utils.h (na_gconf_utils_get_subdirs, na_gconf_utils_free_subdirs, na_gconf_utils_have_entry:): Move functions to NagpIOProvider class. * nautilus-actions/runtime/na-gconf-utils.c: * nautilus-actions/runtime/na-gconf-utils.h (na_gconf_utils_have_subdir): Removed function. * nautilus-actions/runtime/na-module.c: Fix dynamic loading of the modules. * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h (na_pivot_get_provider, na_pivot_release_provider): New functions. * nautilus-actions/nact/nact-xml-reader.c: * nautilus-actions/runtime/Makefile.am: * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-xml-writer.c: Updated accordingly. * nautilus-actions/utils/nautilus-actions-new.c: Use NAPivot to find an adequate provider instead of directly instantiating a NAGConfProvider object. 2009-11-18 Pierre Wieser Move runtime/na-gconf-monitor.{c,h} to api/. * nautilus-actions/runtime/na-gconf-monitor.c: * nautilus-actions/runtime/na-gconf-monitor.h: Moved to api/, thus removed from runtime/. * nautilus-actions/api/Makefile.am: * nautilus-actions/runtime/Makefile.am: * nautilus-actions/runtime/na-gconf-provider.c: * nautilus-actions/runtime/na-pivot.c: Upated accordingly. Move private/na-object-api.h to private/. * nautilus-actions/private/na-object-api.h: Moved to private/. * nautilus-actions/api/Makefile.am: * nautilus-actions/nact/nact-assistant-export-ask.c: * nautilus-actions/nact/nact-assistant-export.c: * nautilus-actions/nact/nact-assistant-import-ask.c: * nautilus-actions/nact/nact-assistant-import.c: * nautilus-actions/nact/nact-clipboard.c: * nautilus-actions/nact/nact-iaction-tab.c: * nautilus-actions/nact/nact-iactions-list.c: * nautilus-actions/nact/nact-iadvanced-tab.c: * nautilus-actions/nact/nact-ibackground-tab.c: * nautilus-actions/nact/nact-icommand-tab.c: * nautilus-actions/nact/nact-iconditions-tab.c: * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nact-main-window.c: * nautilus-actions/nact/nact-tree-model.c: * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-xml-reader.c: * nautilus-actions/plugin/nautilus-actions.c: * nautilus-actions/private/Makefile.am: * nautilus-actions/private/na-object-action.c: * nautilus-actions/private/na-object-id.c: * nautilus-actions/private/na-object-item.c: * nautilus-actions/private/na-object-menu.c: * nautilus-actions/private/na-object-profile.c: * nautilus-actions/private/na-object.c: * nautilus-actions/runtime/na-gconf-provider.c: * nautilus-actions/runtime/na-io-provider.c: * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-xml-writer.c: * nautilus-actions/utils/nautilus-actions-new.c: Updated accordingly. Move na-xml-* to runtime library, thus removing common/. * nautilus-actions/common/na-xml-names.h: * nautilus-actions/common/na-xml-writer.c: * nautilus-actions/common/na-xml-writer.h: Moved to runtime/ directory, thus removed from common. * configure.ac: * m4/na-log-domains.m4: * nautilus-actions/Makefile.am: * nautilus-actions/nact/Makefile.am: * nautilus-actions/nact/nact-assistant-export.c: * nautilus-actions/nact/nact-clipboard.c: * nautilus-actions/nact/nact-main.c: * nautilus-actions/nact/nact-tree-model.c: * nautilus-actions/nact/nact-xml-reader.c: * nautilus-actions/runtime/Makefile.am: * nautilus-actions/runtime/README: * nautilus-actions/utils/Makefile.am: * nautilus-actions/utils/console-utils.c: * nautilus-actions/utils/nautilus-actions-new.c: * nautilus-actions/utils/nautilus-actions-schemas.c: * po/POTFILES.in: Updated accordingly. Merge common/na-utils.{c,h} into runtime/na-utils.{c,h}. * nautilus-actions/common/na-utils.c: * nautilus-actions/common/na-utils.h: Merged into runtime/na-utils.{c,h}, thus deleted from common/. * nautilus-actions/common/Makefile.am: * nautilus-actions/common/na-xml-writer.c: * nautilus-actions/nact/base-builder.c: * nautilus-actions/nact/nact-assistant-export.c: * nautilus-actions/nact/nact-assistant-import.c: * nautilus-actions/nact/nact-clipboard.c: * nautilus-actions/nact/nact-iadvanced-tab.c: * nautilus-actions/nact/nact-ibackground-tab.c: * nautilus-actions/nact/nact-icommand-tab.c: * nautilus-actions/nact/nact-iconditions-tab.c: * nautilus-actions/nact/nact-tree-model.c: * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-xml-reader.c: * nautilus-actions/private/Makefile.am: * nautilus-actions/private/na-object-profile.c: * nautilus-actions/runtime/na-utils.c: * nautilus-actions/runtime/na-utils.h: * nautilus-actions/utils/nautilus-actions-new.c: * nautilus-actions/utils/nautilus-actions-schemas.c: Updated accordingly. Merge common/na-iprefs.{c,h} into runtime/na-iprefs.{c,h}. * nautilus-actions/common/na-iprefs.c: * nautilus-actions/common/na-iprefs.h: Merged into runtime/na-iprefs.{c,h}, thus deleted from common/. * nautilus-actions/runtime/na-gconf-keys.h: Removed file as duplicate from api/. * nautilus-actions/common/Makefile.am: * nautilus-actions/common/na-xml-writer.c: * nautilus-actions/nact/base-iprefs.c: * nautilus-actions/nact/nact-assistant-export-ask.c: * nautilus-actions/nact/nact-assistant-export.c: * nautilus-actions/nact/nact-assistant-import-ask.c: * nautilus-actions/nact/nact-assistant-import.c: * nautilus-actions/nact/nact-clipboard.c: * nautilus-actions/nact/nact-iactions-list.c: * nautilus-actions/nact/nact-ibackground-tab.c: * nautilus-actions/nact/nact-icommand-tab.c: * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nact-main-window.c: * nautilus-actions/nact/nact-preferences-editor.c: * nautilus-actions/nact/nact-tree-model.c: * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-xml-reader.c: * nautilus-actions/runtime/Makefile.am: * nautilus-actions/runtime/na-gconf-provider-keys.h: * nautilus-actions/runtime/na-iprefs.c: * nautilus-actions/runtime/na-iprefs.h: * nautilus-actions/utils/nautilus-actions-new.c: * nautilus-actions/utils/nautilus-actions-schemas.c: Updated accordingly. Merge common/na-object-* stuff into private/ subdirectory. * nautilus-actions/common/na-object-action-fn.h: * nautilus-actions/common/na-object-action.c: * nautilus-actions/common/na-object-api.h: * nautilus-actions/common/na-object-fn.h: * nautilus-actions/common/na-object-id-fn.h: * nautilus-actions/common/na-object-id.c: * nautilus-actions/common/na-object-item-fn.h: * nautilus-actions/common/na-object-item.c: * nautilus-actions/common/na-object-menu-fn.h: * nautilus-actions/common/na-object-menu.c: * nautilus-actions/common/na-object-profile-fn.h: * nautilus-actions/common/na-object-profile.c: * nautilus-actions/common/na-object.c: Merged into private/ directory, thus deleted from common/ one. * nautilus-actions/Makefile.am: * nautilus-actions/common/Makefile.am: * nautilus-actions/common/na-xml-writer.c: * nautilus-actions/nact/nact-assistant-export-ask.c: * nautilus-actions/nact/nact-assistant-export.c: * nautilus-actions/nact/nact-assistant-import-ask.c: * nautilus-actions/nact/nact-assistant-import.c: * nautilus-actions/nact/nact-clipboard.c: * nautilus-actions/nact/nact-iaction-tab.c: * nautilus-actions/nact/nact-iactions-list.c: * nautilus-actions/nact/nact-iadvanced-tab.c: * nautilus-actions/nact/nact-ibackground-tab.c: * nautilus-actions/nact/nact-icommand-tab.c: * nautilus-actions/nact/nact-iconditions-tab.c: * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nact-main-menubar.h: * nautilus-actions/nact/nact-main-window.c: * nautilus-actions/nact/nact-tree-model.c: * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-xml-reader.c: * nautilus-actions/private/Makefile.am: * nautilus-actions/private/na-object-action-fn.h: * nautilus-actions/private/na-object-action.c: * nautilus-actions/private/na-object-api.h: * nautilus-actions/private/na-object-fn.h: * nautilus-actions/private/na-object-id-fn.h: * nautilus-actions/private/na-object-id.c: * nautilus-actions/private/na-object-item-fn.h: * nautilus-actions/private/na-object-item.c: * nautilus-actions/private/na-object-profile-fn.h: * nautilus-actions/private/na-object-profile.c: * nautilus-actions/private/na-object.c: * nautilus-actions/utils/nautilus-actions-new.c: * po/POTFILES.in: Updated accordingly. * nautilus-actions/nact/nact-main-menubar.c: * nautilus-actions/nact/nact-main-menubar.h (nact_main_menubar_is_pasted_object_relabeled): New function to avoid moving also NAPivot class to private directory. Move runtime/na-object-* stuff to private/ subdirectory. * nautilus-actions/runtime/na-gnome-vfs-uri.c: * nautilus-actions/runtime/na-gnome-vfs-uri.h: * nautilus-actions/runtime/na-iduplicable.c: * nautilus-actions/runtime/na-iduplicable.h: * nautilus-actions/runtime/na-object-action-class.h: * nautilus-actions/runtime/na-object-action-fn.h: * nautilus-actions/runtime/na-object-action-priv.h: * nautilus-actions/runtime/na-object-action.c: * nautilus-actions/runtime/na-object-api.h: * nautilus-actions/runtime/na-object-class.h: * nautilus-actions/runtime/na-object-fn.h: * nautilus-actions/runtime/na-object-id-class.h: * nautilus-actions/runtime/na-object-id-fn.h: * nautilus-actions/runtime/na-object-id-priv.h: * nautilus-actions/runtime/na-object-id.c: * nautilus-actions/runtime/na-object-item-class.h: * nautilus-actions/runtime/na-object-item-fn.h: * nautilus-actions/runtime/na-object-item-priv.h: * nautilus-actions/runtime/na-object-item.c: * nautilus-actions/runtime/na-object-menu-class.h: * nautilus-actions/runtime/na-object-menu-fn.h: * nautilus-actions/runtime/na-object-menu-priv.h: * nautilus-actions/runtime/na-object-menu.c: * nautilus-actions/runtime/na-object-priv.h: * nautilus-actions/runtime/na-object-profile-class.h: * nautilus-actions/runtime/na-object-profile-fn.h: * nautilus-actions/runtime/na-object-profile-priv.h: * nautilus-actions/runtime/na-object-profile.c: * nautilus-actions/runtime/na-object.c: Moved to private/ * nautilus-actions/api/na-iio-provider.h: * nautilus-actions/common/na-object-action-fn.h: * nautilus-actions/common/na-object-action.c: * nautilus-actions/common/na-object-api.h: * nautilus-actions/common/na-object-fn.h: * nautilus-actions/common/na-object-id-fn.h: * nautilus-actions/common/na-object-id.c: * nautilus-actions/common/na-object-item-fn.h: * nautilus-actions/common/na-object-item.c: * nautilus-actions/common/na-object-menu-fn.h: * nautilus-actions/common/na-object-menu.c: * nautilus-actions/common/na-object-profile-fn.h: * nautilus-actions/common/na-object-profile.c: * nautilus-actions/common/na-object.c: * nautilus-actions/common/na-xml-writer.h: * nautilus-actions/nact/Makefile.am: * nautilus-actions/nact/nact-application.c: * nautilus-actions/nact/nact-assistant-export-ask.h: * nautilus-actions/nact/nact-assistant-export.c: * nautilus-actions/nact/nact-assistant-import-ask.h: * nautilus-actions/nact/nact-iactions-list.c: * nautilus-actions/nact/nact-iactions-list.h: * nautilus-actions/nact/nact-main-window.h: * nautilus-actions/nact/nact-window.h: * nautilus-actions/nact/nact-xml-reader.h: * nautilus-actions/plugin/Makefile.am: * nautilus-actions/plugin/nautilus-actions.c: * nautilus-actions/private/Makefile.am: * nautilus-actions/runtime/Makefile.am: * nautilus-actions/runtime/na-gconf-provider.c: * nautilus-actions/runtime/na-io-provider.c: * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h: * nautilus-actions/test/Makefile.am: * nautilus-actions/test/test-parse-uris.c: * nautilus-actions/utils/Makefile.am: * po/POTFILES.in: Updated accordingly. Create private/ directory to host installed though private headers. * configure.ac: * nautilus-actions/Makefile.am: Updated accordingly. * m4/na-log-domains.m4: Define new log domains for API and private libraries. * nautilus-actions/private/Makefile.am: * nautilus-actions/private/README: New files. 2009-11-17 Pierre Wieser Move NAIIOProvider interface to api/. * nautilus-actions/api/na-api.h: * nautilus-actions/api/na-gconf-keys.h: Fix doc typo. * nautilus-actions/nact/nact-assistant-import.c: * nautilus-actions/nact/nact-main-window.c: * nautilus-actions/nact/nact-window.c: * nautilus-actions/nact/nact-window.h: * nautilus-actions/runtime/na-gconf-provider.c: * nautilus-actions/runtime/na-object-item-fn.h: * nautilus-actions/runtime/na-pivot.c: * nautilus-actions/runtime/na-pivot.h: * nautilus-actions/utils/nautilus-actions-new.c: Updated accordingly, modifying path to headers, fixing calls to NAIIOProvider interface. * nautilus-actions/runtime/na-module.c: * nautilus-actions/runtime/na-module.h: Fix typo. * nautilus-actions/api/Makefile.am: * nautilus-actions/common/Makefile.am: * nautilus-actions/nact/Makefile.am: * nautilus-actions/plugin/Makefile.am: * nautilus-actions/runtime/Makefile.am: * nautilus-actions/test/Makefile.am: * nautilus-actions/utils/Makefile.am: Updated accordingly, adding -I $(top_srcdir), adding -L$(top_builddir)/nautilus-actions/api -lna-api. Dynamically loads Nautilus-Actions extensions. * nautilus-actions/runtime/na-module.c: * nautilus-actions/runtime/na-module.h: New files. * nautilus-actions/runtime/na-pivot.c: Load modules. * nautilus-actions/runtime/Makefile.am: Updated accordingly. Make libna-runtime a dynamically loaded library. Initialize the API directory. * nautilus-actions/api: New directory. * nautilus-actions/common/Makefile.am: * nautilus-actions/nact/Makefile.am: * nautilus-actions/plugin/Makefile.am: * nautilus-actions/runtime/Makefile.am: * nautilus-actions/test/Makefile.am: * nautilus-actions/utils/Makefile.am: Updated accordingly. * po/POTFILES.in: Updated to reflect src/ directory renaming. 2009-11-17 Pierre Wieser Rename all src/ tree to nautilus-actions/. This will make easier to have an API installed on a host system, all headers being included with #include . 2009-10-28 Pierre Wieser * src/common/na-object-api.h (na_object_reset_status): New function. * src/common/na-object-fn.h: * src/common/na-object.c (na_object_object_reset_status): New function. * src/nact/base-window.c: * src/nact/base-window.h (base_window_get_parent): New function. * src/nact/nact-assistant-export.c (instance_dispose): Clear the tree model. (assist_initial_load_actions_list): Export current actions list. * src/nact/nact-iactions-list.c (display_label): Only display status in edition mode. * src/nact/nact-tree-model.c (fill_tree_store): Clean up the code to avoid memory leaks. * src/runtime/na-iduplicable.c: * src/runtime/na-iduplicable.h (na_iduplicable_reset_status): New function. * src/common/na-object-api.h (na_object_get_position, na_object_insert_at): New functions. * src/common/na-object-item-fn.h: * src/common/na-object-item.c (na_object_item_get_position, na_object_item_insert_at): New functions. * src/nact/nact-main-menubar.c (save_item): Insert the new origin at the same position that the previous one. * src/nact/nautilus-actions-config-tool.ui: Add a label in front of the internal item id. * src/runtime/na-iduplicable.c (na_iduplicable_duplicate): Duplicated object inherits same attributes that the original. * src/nact/nact-iactions-list.c (do_insert_items): Take a copy before reverting the list, and free the copy at end. * src/common/na-object-item.c (na_object_item_count_items): Recurse into subitems before counting the current level. * src/common/na-xml-writer.c: * src/common/na-xml-writer.h: (na_xml_writer_export): Returns a NULL filename if errors. (na_xml_writer_output_xml): Returns error messages. * src/nact/nact-clipboard.c (export_row_object): Updated accordingly. * src/utils/nautilus-actions-new.c: Specify that the output directory must be specified as an URI. * src/common/na-utils.c: * src/common/na-utils.h: * src/utils/console-utils.c: * src/utils/console-utils.h: Move na_utils_print_version() to console_print_version(). * src/utils/nautilus-actions-new.c: * src/utils/nautilus-actions-schemas.c: Updated accordingly. * src/utils/console-utils.c: * src/utils/console-utils.h: New files. * src/utils/Makefile.am: Updated accordingly. * src/utils/nautilus-actions-new.c: * src/utils/nautilus-actions-schemas.c: Initialize log handler to not emit debug messages when not in maintainer mode. 2009-10-27 Pierre Wieser * src/nact/nact-main-window.c (class_init): Make use of actual marshaller with two arguments. * src/nact/nact-iaction-tab.c (nact_iaction_tab_runtime_init_toplevel): * src/nact/nact-icommand-tab.c (nact_icommand_tab_runtime_init_toplevel): * src/nact/nact-iconditions-tab.c (nact_iconditions_tab_runtime_init_toplevel): Replace g_signal_connect with base_window_signal_connect. * data/nautilus-actions.schemas.in: * src/common/na-iprefs.h: Define two new preferences: quit_on_esc, confirm_when_quit_on_esc. * src/nact/nact-assistant-export.c (on_initial_load_dialog): * src/nact/nact-assistant-import.c (on_initial_load_dialog): Read the user preferences from GConf. * src/nact/nact-preferences-editor.c: Edit the two new user preferences. * src/nact/nautilus-actions-config-tool.ui: Add a frame to edit the two new user preferences. * src/nact/nautilus-actions-config-tool.ui: Remove separator from Preferences dialog. Add plural mark to a label in Runtime tab. Fix a typo in Import tab. * src/utils/nautilus-actions-new.c: Add new action data as arguments (target-selection, target-folders, target-toolbar, toolbar-label, folders). * src/common/na-utils.c: * src/common/na-utils.c (na_utils_print_version): New function. * src/utils/nautilus-actions-new.c: * src/utils/nautilus-actions-schemas.c: Make use of na_utils_print_version() new function. * src/runtime/na-iabout.c: * src/runtime/na-iabout.h (na_iabout_get_copyright): New function. * src/utils/nautilus-actions-new.c: Add --version command-line argument. * src/nact/nact-ibackground-tab.c (insert_new_row): Optimizes because the list is sorted on uris. * src/nact/nact-iadvanced-tab.c: Implements F2, Insert and Del keyboard accelerators. 2009-10-26 Pierre Wieser * src/common/na-object-profile-fn.h: * src/common/na-object-profile.c: * src/runtime/na-object-profile-fn.h: * src/runtime/na-object-profile.c: na_object_profile_replace_folder_uri moved from runtime to common library. * src/nact/nact-ibackground-tab.c: Implements F2, Insert and Del keyboard accelerators. * src/nact/nact-iadvanced-tab.c (runtime_init_connect_signals): * src/nact/nact-ibackground-tab.c (nact_ibackground_tab_runtime_init_toplevel): Replace g_signal_connect with base_window_signal_connect to better handle signal deconnections. * src/nact/nact-ibackground-tab.c (treeview_cell_edited): Only setup previous text if a non null pointer is provided. * src/nact/nact-iaction-tab.c (set_label_label): * src/nact/nact-icommand-tab.c (set_label_label): Only set color foreground for the normal state. * src/nact/nact-main-tab.c: * src/nact/nact-main-tab.h (nact_main_tab_is_page_enabled): New function. * src/nact/nautilus-actions-config-tool.ui: Add mnemonics to target radio button labels. * src/nact/nact-clipboard.c (get_from_primary_clipboard_callback): Provides text content. * src/nact/nact-main-menubar.c (on_paste_activated, on_paste_into_activated): Only inserts if items provided by clipboard are not null. * src/nact/nact-iaction-tab.c (on_toolbar_label_changed): Only setup the label when current item is an action. * src/nact/nact-ibackground-tab.c (setup_folders): Only tries to setup folders when there is a current profile. * src/nact/nact-iadvanced-tab.c (release_schemes_list): Clear the list store on dialog dispose. * src/nact/nact-iaction-tab.c (nact_iaction_tab_initial_load_toplevel): Unref model after having initialized the combobox listview. (release_icon_combobox): Clear the list store in dialog dispose. * src/nact/nact-icommand-tab.c: * src/nact/nact-icommand-tab.h (nact_icommand_tab_has_label): Remove unused function. * configure.ac: Bump version number to 2.29.2.