--- a/src/qtgui/rclmain_w.cpp
+++ b/src/qtgui/rclmain_w.cpp
@@ -1,5 +1,5 @@
#ifndef lint
-static char rcsid[] = "@(#$Id: rclmain_w.cpp,v 1.34 2007-07-20 11:38:18 dockes Exp $ (C) 2005 J.F.Dockes";
+static char rcsid[] = "@(#$Id: rclmain_w.cpp,v 1.35 2007-07-20 11:44:46 dockes Exp $ (C) 2005 J.F.Dockes";
#endif
/*
* This program is free software; you can redistribute it and/or modify
@@ -514,9 +514,17 @@
preview->show();
preview->makeDocCurrent(fn, st.st_size, doc, 0);
}
+void RclMain::previewNextInTab(Preview * w, int sid, int docnum)
+{
+ previewPrevOrNextInTab(w, sid, docnum, true);
+}
+void RclMain::previewPrevInTab(Preview * w, int sid, int docnum)
+{
+ previewPrevOrNextInTab(w, sid, docnum, false);
+}
// Show next document from result list in current preview tab
-void RclMain::previewNextInTab(Preview * w, int sid, int docnum)
+void RclMain::previewPrevOrNextInTab(Preview * w, int sid, int docnum, bool nxt)
{
LOGDEB(("RclMain::previewNextInTab sid %d docnum %d, m_sid %d\n",
sid, docnum, m_searchId));
@@ -530,8 +538,11 @@
return;
}
- docnum++;
- if (docnum >= resList->getResCnt()) {
+ if (nxt)
+ docnum++;
+ else
+ docnum--;
+ if (docnum < 0 || docnum >= resList->getResCnt()) {
QApplication::beep();
return;
}
@@ -553,44 +564,6 @@
return;
}
- w->makeDocCurrent(fn, st.st_size, doc, docnum, true);
-}
-
-// Show previous document from result list in preview tab
-void RclMain::previewPrevInTab(Preview *w, int sid, int docnum)
-{
- LOGDEB(("RclMain::previewPrevInTab sid %d docnum %d, m_sid %d\n",
- sid, docnum, m_searchId));
-
- if (w == 0) // ??
- return;
-
- if (sid != m_searchId) {
- QMessageBox::warning(0, "Recoll",
- tr("This search is not active any more"));
- return;
- }
- if (docnum <= 0) {
- QApplication::beep();
- return;
- }
- docnum--;
- Rcl::Doc doc;
- if (!resList->getDoc(docnum, doc)) {
- QMessageBox::warning(0, "Recoll",
- tr("Cannot retrieve document info"
- " from database"));
- return;
- }
-
- // Check that the file exists in the file system
- string fn = urltolocalpath(doc.url);
- struct stat st;
- if (stat(fn.c_str(), &st) < 0) {
- QMessageBox::warning(0, "Recoll", tr("Cannot access document file: ") +
- fn.c_str());
- return;
- }
w->makeDocCurrent(fn, st.st_size, doc, docnum, true);
}