diff --git a/CMakeLists.txt b/CMakeLists.txt index 19158fae4..ea371295d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -179,7 +179,7 @@ if (WIN32) add_definitions (-D__MINGW32__) endif (MINGW) - set (EXTRA_LIB "-lws2_32") + set (EXTRA_LIB "-lws2_32 -lshlwapi") endif (WIN32) # you may need lcms v1.xx for older version : pkg_check_modules (LCMS REQUIRED lcms<=1.99) pkg_check_modules (LCMS REQUIRED lcms2) diff --git a/rtengine/safegtk.cc b/rtengine/safegtk.cc index d55efdf3f..8ad0c2c0e 100644 --- a/rtengine/safegtk.cc +++ b/rtengine/safegtk.cc @@ -25,6 +25,7 @@ #include #ifdef WIN32 #include +#include // for GCC32 #ifndef _WIN32_IE #define _WIN32_IE 0x0600 @@ -414,8 +415,7 @@ Glib::ustring safe_get_user_picture_dir() { * Warning: this function is a workaround for Windows platform, and not necessarily bullet proof */ bool safe_is_root_dir (const Glib::ustring& path) { - Glib::ustring t = Glib::path_skip_root(path); - return t.empty(); + return PathIsRootA(path.c_str()); } #endif diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 38079d411..c8c882b1e 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -945,13 +945,13 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) { openThm->openDefaultViewer(event->state & GDK_SHIFT_MASK ? 2 : 1); return true; case GDK_y: // synchronize filebrowser with image in Editor - if (!simpleEditor && fPanel && fname!=""){ + if (!simpleEditor && fPanel && !fname.empty()){ fPanel->fileCatalog->selectImage(fname, false); return true; } break; // to avoid gcc complain case GDK_x: // clear filters and synchronize filebrowser with image in Editor - if (!simpleEditor && fPanel && fname!=""){ + if (!simpleEditor && fPanel && !fname.empty()){ fPanel->fileCatalog->selectImage(fname, true); return true; } @@ -1000,13 +1000,13 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) { if (shift){ switch (event->keyval) { case GDK_F3: // open Previous image from Editor's perspective - if (!simpleEditor && fPanel && fname!=""){ + if (!simpleEditor && fPanel && !fname.empty()){ EditorPanel::openPreviousEditorImage(); return true; } break; // to avoid gcc complain case GDK_F4: // open next image from Editor's perspective - if (!simpleEditor && fPanel && fname!=""){ + if (!simpleEditor && fPanel && !fname.empty()){ EditorPanel::openNextEditorImage(); return true; } @@ -1234,17 +1234,17 @@ void EditorPanel::sendToGimpPressed () { void EditorPanel::openPreviousEditorImage() { - if (!simpleEditor && fPanel && fname!="") + if (!simpleEditor && fPanel && !fname.empty()) fPanel->fileCatalog->openNextPreviousEditorImage(fname, true, NAV_PREVIOUS); } void EditorPanel::openNextEditorImage() { - if (!simpleEditor && fPanel && fname!="") + if (!simpleEditor && fPanel && !fname.empty()) fPanel->fileCatalog->openNextPreviousEditorImage(fname, true, NAV_NEXT); } void EditorPanel::syncFileBrowser() { // synchronize filebrowser with image in Editor - if (!simpleEditor && fPanel && fname!="") + if (!simpleEditor && fPanel && !fname.empty()) fPanel->fileCatalog->selectImage(fname, true); } diff --git a/rtgui/saveasdlg.cc b/rtgui/saveasdlg.cc index 6024ec250..5c5b69cf1 100644 --- a/rtgui/saveasdlg.cc +++ b/rtgui/saveasdlg.cc @@ -156,7 +156,7 @@ bool SaveAsDialog::getAutoSuffix () { bool SaveAsDialog::getImmediately () { - return saveMethod[0]->get_active (); + return simpleEditor ? true : saveMethod[0]->get_active (); } bool SaveAsDialog::getToHeadOfQueue () { @@ -170,6 +170,8 @@ bool SaveAsDialog::getToTailOfQueue () { } int SaveAsDialog::getSaveMethodNum () { + if (simpleEditor) + return 0; for (int i = 0; i < 3; i++) if (saveMethod[i]->get_active()) return i; @@ -263,7 +265,7 @@ void SaveAsDialog::setImagePath (Glib::ustring ipath) { if (!safe_is_root_dir(path)) #endif try { - fchooser->add_shortcut_folder(Glib::path_get_dirname(path)); + fchooser->add_shortcut_folder(path); } catch (Gtk::FileChooserError &err) {} }