F5 Ultimate Edition ;-) see issue #372

This commit is contained in:
Oliver Duis
2010-12-04 06:47:09 +01:00
parent 0fd8ffba3f
commit 1660fca85d
5 changed files with 572 additions and 527 deletions

View File

@@ -644,6 +644,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
bool shift = event->state & GDK_SHIFT_MASK;
if (!ctrl) {
// Normal
switch(event->keyval) {
case GDK_h:
case GDK_H:
@@ -674,11 +675,12 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
return true;
case GDK_F5:
openThm->openBatchResultDefaultViewer();
openThm->openDefaultViewer(event->state & GDK_SHIFT_MASK ? 2 : 1);
return true;
}
}
else {
// With control
switch (event->keyval) {
case GDK_s:
saveAsPressed();
@@ -695,6 +697,10 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
case GDK_Z:
history->redo ();
return true;
case GDK_F5:
openThm->openDefaultViewer(3);
return true;
}
}

View File

@@ -392,9 +392,9 @@ void FileBrowser::partPasteProfile () {
partialPasteDlg.hide ();
}
void FileBrowser::openBatchResultDefaultViewer () {
void FileBrowser::openDefaultViewer (int destination) {
if (selected.size()==1)
((FileBrowserEntry*)selected[0])->thumbnail->openBatchResultDefaultViewer();
((FileBrowserEntry*)selected[0])->thumbnail->openDefaultViewer(destination);
}
bool FileBrowser::keyPressed (GdkEventKey* event) {
@@ -428,7 +428,13 @@ bool FileBrowser::keyPressed (GdkEventKey* event) {
return true;
}
else if (event->keyval==GDK_F5) {
openBatchResultDefaultViewer ();
int dest = 1;
if (event->state & GDK_SHIFT_MASK)
dest = 2;
else if (event->state & GDK_CONTROL_MASK)
dest = 3;
openDefaultViewer (dest);
return true;
}

View File

@@ -113,7 +113,7 @@ class FileBrowser : public ThumbBrowserBase, public LWButtonListener {
void pasteProfile ();
void partPasteProfile ();
void openBatchResultDefaultViewer ();
void openDefaultViewer (int destination);
void redrawNeeded (ThumbBrowserEntryBase* entry);
void thumbRearrangementNeeded ();

View File

@@ -505,25 +505,58 @@ void Thumbnail::removeThumbnailListener (ThumbnailListener* tnl) {
// Calculates the standard filename for the automatically named batch result
// and opens it in OS default viewer
// destination: 1=Batch conf. file; 2=batch out dir; 3=RAW dir
// Return: Success?
bool Thumbnail::openBatchResultDefaultViewer() {
Glib::ustring openFName = Glib::ustring::compose ("%1.%2", BatchQueue::calcAutoFileNameBase(fname), options.saveFormat.format);
printf ("Try opening %s\n", openFName.c_str());
if (Glib::file_test (openFName, Glib::FILE_TEST_EXISTS)) {
bool Thumbnail::openDefaultViewer(int destination) {
#ifdef WIN32
Glib::ustring openFName;
if (destination==1) {
openFName = Glib::ustring::compose ("%1.%2", BatchQueue::calcAutoFileNameBase(fname), options.saveFormat.format);
if (Glib::file_test (openFName, Glib::FILE_TEST_EXISTS)) {
ShellExecute(NULL, "open", openFName.c_str(), NULL, NULL, SW_SHOWMAXIMIZED );
} else {
printf("File not found\n");
return false;
}
} else {
openFName = destination == 3 ? fname
: Glib::ustring::compose ("%1.%2", BatchQueue::calcAutoFileNameBase(fname), options.saveFormat.format);
printf("Opening %s\n", openFName.c_str());
if (Glib::file_test (openFName, Glib::FILE_TEST_EXISTS)) {
// Output file exists, so open explorer and select output file
const char* org=Glib::ustring::compose("/select,\"%1\"", openFName).c_str();
char* par=new char[strlen(org)+1];
strcpy(par, org);
// In this case the / disturbs
char* p = par+1; // skip the first backslash
while (*p!=0) {
if (*p=='/') *p='\\';
p++;
}
ShellExecute(NULL, "open", "explorer.exe", par, NULL, SW_SHOWNORMAL );
delete[] par;
} else if (Glib::file_test (Glib::path_get_dirname(openFName), Glib::FILE_TEST_EXISTS)) {
// Out file does not exist, but directory
ShellExecute(NULL, "explore", Glib::path_get_dirname(openFName).c_str(), NULL, NULL, SW_SHOWNORMAL );
} else {
printf("File and dir not found\n");
return false;
}
}
return true;
#else
// TODO: Add more OSes here
printf("Automatic opening not supported on this OS\n");
return false;
#endif
} else {
printf("File not found\n");
return false;
}
}

View File

@@ -128,7 +128,7 @@ class Thumbnail {
void updateCache ();
void saveThumbnail ();
bool openBatchResultDefaultViewer();
bool openDefaultViewer(int destination);
};