summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/desktop.cpp2
-rw-r--r--src/preferences-skeleton.h3
-rw-r--r--src/ui/dialog/filedialog.cpp17
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp30
-rw-r--r--src/ui/dialog/inkscape-preferences.h2
5 files changed, 41 insertions, 13 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index ecc480f86..cf71c8f9e 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -1822,7 +1822,7 @@ SPDesktop::show_dialogs()
mapVerbPreference.insert(std::make_pair ((int)SP_VERB_VIEW_ICON_PREVIEW, "/dialogs/iconpreview") );
mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_SVG_FONTS, "/dialogs/svgfonts") );
mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_INPUT, "/dialogs/inputdevices") );
- mapVerbPreference.insert(std::make_pair ((int)SP_VERB_CONTEXT_SELECT_PREFS, "/dialogs/preferences") );
+ mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_DISPLAY, "/dialogs/preferences") );
mapVerbPreference.insert(std::make_pair ((int)SP_VERB_SELECTION_GRIDTILE, "/dialogs/gridtiler") );
mapVerbPreference.insert(std::make_pair ((int)SP_VERB_SELECTION_TRACE, "/dialogs/trace") );
mapVerbPreference.insert(std::make_pair ((int)SP_VERB_DIALOG_TEXT, "/dialogs/textandfont") );
diff --git a/src/preferences-skeleton.h b/src/preferences-skeleton.h
index 18b7150f5..2b674d015 100644
--- a/src/preferences-skeleton.h
+++ b/src/preferences-skeleton.h
@@ -281,6 +281,9 @@ static char const preferences_skeleton[] =
" <group id=\"bitmapeditor\" value=\"gimp\"/>\n"
" <group id=\"bitmapautoreload\" value=\"1\"/>\n"
" <group id=\"dialogtype\" value=\"1\"/>\n"
+#ifdef WIN32
+" <group id=\"desktopintegration\" value=\"1\"/>\n"
+#endif
" <group id=\"dock\" "
" cancenterdock=\"1\""
" dockbarstyle=\"2\"" // GDL_DOCK_BAR_BOTH
diff --git a/src/ui/dialog/filedialog.cpp b/src/ui/dialog/filedialog.cpp
index cff2f2488..47ba6c748 100644
--- a/src/ui/dialog/filedialog.cpp
+++ b/src/ui/dialog/filedialog.cpp
@@ -22,6 +22,7 @@
#include "gc-core.h"
#include <dialogs/dialog-events.h>
#include "extension/output.h"
+#include "preferences.h"
namespace Inkscape
{
@@ -86,7 +87,13 @@ FileOpenDialog *FileOpenDialog::create(Gtk::Window &parentWindow,
const char *title)
{
#ifdef WIN32
- FileOpenDialog *dialog = new FileOpenDialogImplWin32(parentWindow, path, fileTypes, title);
+ FileOpenDialog *dialog = NULL;
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if (prefs->getBool( "/options/desktopintegration/value")) {
+ dialog = new FileOpenDialogImplWin32(parentWindow, path, fileTypes, title);
+ } else {
+ dialog = new FileOpenDialogImplGtk(parentWindow, path, fileTypes, title);
+ }
#else
FileOpenDialog *dialog = new FileOpenDialogImplGtk(parentWindow, path, fileTypes, title);
#endif
@@ -115,7 +122,13 @@ FileSaveDialog *FileSaveDialog::create(Gtk::Window& parentWindow,
const Inkscape::Extension::FileSaveMethod save_method)
{
#ifdef WIN32
- FileSaveDialog *dialog = new FileSaveDialogImplWin32(parentWindow, path, fileTypes, title, default_key, docTitle, save_method);
+ FileSaveDialog *dialog = NULL;
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ if (prefs->getBool( "/options/desktopintegration/value")) {
+ dialog = new FileSaveDialogImplWin32(parentWindow, path, fileTypes, title, default_key, docTitle, save_method);
+ } else {
+ dialog = new FileSaveDialogImplGtk(parentWindow, path, fileTypes, title, default_key, docTitle, save_method);
+ }
#else
FileSaveDialog *dialog = new FileSaveDialogImplGtk(parentWindow, path, fileTypes, title, default_key, docTitle, save_method);
#endif
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 5030f17be..269266083 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -578,6 +578,9 @@ void InkscapePreferences::initPageUI()
_win_dockable.init ( _("Dockable"), "/options/dialogtype/value", 1, true, 0);
_win_floating.init ( _("Floating"), "/options/dialogtype/value", 0, false, &_win_dockable);
+ _win_native.init ( _("Native open/save dialogs"), "/options/desktopintegration/value", 1, true, 0);
+ _win_gtk.init ( _("GTK open/save dialogs"), "/options/desktopintegration/value", 0, false, &_win_native);
+
_win_hide_task.init ( _("Dialogs are hidden in taskbar"), "/options/dialogsskiptaskbar/value", true);
_win_zoom_resize.init ( _("Zoom when window is resized"), "/options/stickyzoom/value", false);
_win_show_close.init ( _("Show close button on dialogs"), "/dialogs/showclose", false);
@@ -604,6 +607,13 @@ void InkscapePreferences::initPageUI()
_("Dockable"));
_page_windows.add_line( true, "", _win_floating, "",
_("Floating"));
+#ifdef WIN32
+ _page_windows.add_group_header( _("Desktop integration"));
+ _page_windows.add_line( true, "", _win_native, "",
+ _("Use Windows like open and save dialogs"));
+ _page_windows.add_line( true, "", _win_gtk, "",
+ _("Use GTK open and save dialogs "));
+#endif
#ifndef WIN32 // non-Win32 special code to enable transient dialogs
_page_windows.add_group_header( _("Dialogs on top:"));
@@ -1422,19 +1432,19 @@ void InkscapePreferences::initPageSystem()
_sys_user_config.set_text((char const *)profile_path(""));
_sys_user_config.set_editable(false);
- _page_system.add_line( false, _("User config: "), _sys_user_config, "", _("Location of users configuration"), true);
+ _page_system.add_line(true, _("User config: "), _sys_user_config, "", _("Location of users configuration"), true);
_sys_user_prefs.set_text(prefs->getPrefsFilename());
_sys_user_prefs.set_editable(false);
- _page_system.add_line( false, _("User preferences: "), _sys_user_prefs, "", _("Location of the users preferences file"), true);
+ _page_system.add_line(true, _("User preferences: "), _sys_user_prefs, "", _("Location of the users preferences file"), true);
_sys_user_extension_dir.set_text((char const *)get_path(IO::Resource::USER, IO::Resource::EXTENSIONS, ""));
_sys_user_extension_dir.set_editable(false);
- _page_system.add_line( false, _("User extensions: "), _sys_user_extension_dir, "", _("Location of the users extensions"), true);
+ _page_system.add_line(true, _("User extensions: "), _sys_user_extension_dir, "", _("Location of the users extensions"), true);
_sys_user_cache.set_text(g_get_user_cache_dir());
_sys_user_cache.set_editable(false);
- _page_system.add_line( false, _("User cache: "), _sys_user_cache, "", _("Location of users cache"), true);
+ _page_system.add_line(true, _("User cache: "), _sys_user_cache, "", _("Location of users cache"), true);
Glib::ustring tmp_dir = prefs->getString("/options/autosave/path");
if (tmp_dir.empty()) {
@@ -1442,15 +1452,15 @@ void InkscapePreferences::initPageSystem()
}
_sys_tmp_files.set_text(tmp_dir);
_sys_tmp_files.set_editable(false);
- _page_system.add_line( false, _("Temporary files: "), _sys_tmp_files, "", _("Location of the temporary files used for autosave"), true);
+ _page_system.add_line(true, _("Temporary files: "), _sys_tmp_files, "", _("Location of the temporary files used for autosave"), true);
_sys_data.set_text( INKSCAPE_DATADIR );
_sys_data.set_editable(false);
- _page_system.add_line( false, _("Inkscape data: "), _sys_data, "", _("Location of Inkscape data"), true);
+ _page_system.add_line(true, _("Inkscape data: "), _sys_data, "", _("Location of Inkscape data"), true);
_sys_extension_dir.set_text(INKSCAPE_EXTENSIONDIR);
_sys_extension_dir.set_editable(false);
- _page_system.add_line( false, _("Inkscape extensions: "), _sys_extension_dir, "", _("Location of the Inkscape extensions"), true);
+ _page_system.add_line(true, _("Inkscape extensions: "), _sys_extension_dir, "", _("Location of the Inkscape extensions"), true);
Glib::ustring tmp;
appendList( tmp, g_get_system_data_dirs() );
@@ -1459,7 +1469,7 @@ void InkscapePreferences::initPageSystem()
_sys_systemdata_scroll.add(_sys_systemdata);
_sys_systemdata_scroll.set_size_request(0, 80);
_sys_systemdata_scroll.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
- _page_system.add_line( false, _("System data: "), _sys_systemdata_scroll, "", _("Locations of system data"), true);
+ _page_system.add_line(true, _("System data: "), _sys_systemdata_scroll, "", _("Locations of system data"), true);
{
tmp = "";
@@ -1483,7 +1493,7 @@ void InkscapePreferences::initPageSystem()
_sys_icon_scroll.add(_sys_icon);
_sys_icon_scroll.set_size_request(0, 80);
_sys_icon_scroll.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
- _page_system.add_line( false, _("Icon theme: "), _sys_icon_scroll, "", _("Location of icon themes"), true);
+ _page_system.add_line(true, _("Icon theme: "), _sys_icon_scroll, "", _("Location of icon themes"), true);
this->AddPage(_page_system, _("System"), PREFS_PAGE_SYSTEM);
}
@@ -1508,7 +1518,7 @@ bool InkscapePreferences::PresentPage(const Gtk::TreeModel::iterator& iter)
int desired_page = prefs->getInt("/dialogs/preferences/page", 0);
if (desired_page == row[_page_list_columns._col_id])
{
- if (desired_page >= PREFS_PAGE_TOOLS && desired_page <= PREFS_PAGE_TOOLS_LPETOOL)
+ if (desired_page >= PREFS_PAGE_TOOLS && desired_page <= PREFS_PAGE_TOOLS_CONNECTOR)
_page_list.expand_row(_path_tools, false);
if (desired_page >= PREFS_PAGE_TOOLS_SHAPES && desired_page <= PREFS_PAGE_TOOLS_SHAPES_SPIRAL)
_page_list.expand_row(_path_shapes, false);
diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h
index f9944f8c0..1d03ab706 100644
--- a/src/ui/dialog/inkscape-preferences.h
+++ b/src/ui/dialog/inkscape-preferences.h
@@ -213,6 +213,8 @@ protected:
UI::Widget::PrefRadioButton _win_dockable;
UI::Widget::PrefRadioButton _win_floating;
+ UI::Widget::PrefRadioButton _win_native;
+ UI::Widget::PrefRadioButton _win_gtk;
UI::Widget::PrefRadioButton _win_save_dialog_pos_on;
UI::Widget::PrefRadioButton _win_save_dialog_pos_off;
UI::Widget::PrefRadioButton _win_ontop_none;