From 3e0de458c0c521ac2718f2576f71cc3b7e4cea5d Mon Sep 17 00:00:00 2001 From: dockes Date: Tue, 9 May 2006 07:56:07 +0000 Subject: [PATCH] esc quits preview + prev/next links --- src/qtgui/preview/preview.ui.h | 6 +++- src/qtgui/rclreslist.cpp | 58 +++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 26 deletions(-) diff --git a/src/qtgui/preview/preview.ui.h b/src/qtgui/preview/preview.ui.h index 5207fd59..64c1b9ec 100644 --- a/src/qtgui/preview/preview.ui.h +++ b/src/qtgui/preview/preview.ui.h @@ -95,7 +95,11 @@ bool Preview::eventFilter(QObject *target, QEvent *event) if (keyEvent->key() == Key_Q && (keyEvent->state() & ControlButton)) { recollNeedsExit = 1; return true; - } else if (keyEvent->key() ==Key_W &&(keyEvent->state() & ControlButton)) { + } else if (keyEvent->key() == Key_Escape) { + close(); + return true; + } else if (keyEvent->key() == Key_W && + (keyEvent->state() & ControlButton)) { // LOGDEB(("Preview::eventFilter: got ^W\n")); closeCurrentTab(); return true; diff --git a/src/qtgui/rclreslist.cpp b/src/qtgui/rclreslist.cpp index c8c1ede6..c31a5132 100644 --- a/src/qtgui/rclreslist.cpp +++ b/src/qtgui/rclreslist.cpp @@ -1,5 +1,5 @@ #ifndef lint -static char rcsid[] = "@(#$Id: rclreslist.cpp,v 1.16 2006-05-08 07:08:01 dockes Exp $ (C) 2005 J.F.Dockes"; +static char rcsid[] = "@(#$Id: rclreslist.cpp,v 1.17 2006-05-09 07:56:07 dockes Exp $ (C) 2005 J.F.Dockes"; #endif #include @@ -186,18 +186,19 @@ void RclResList::showResultPage() return; } + bool hasPrev = false; if (m_winfirst < 0) { m_winfirst = 0; - emit prevPageAvailable(false); } else { - emit prevPageAvailable(true); + hasPrev = true; m_winfirst += prefs.respagesize; } + emit prevPageAvailable(hasPrev); bool gotone = false; clear(); - int last = MIN(resCnt-m_winfirst, prefs.respagesize); + int last = MIN(resCnt - m_winfirst, prefs.respagesize); m_curDocs.clear(); @@ -353,7 +354,27 @@ void RclResList::showResultPage() m_curDocs.push_back(doc); } + bool hasNext = false; + if (m_winfirst >= 0 && m_winfirst + prefs.respagesize < resCnt) { + hasNext = true; + } + if (gotone) { + QString chunk = "

"; + if (hasPrev || hasNext) { + if (hasPrev) { + chunk += ""; + chunk += tr("Previous"); + chunk += "   "; + } + if (hasNext) { + chunk += ""; + chunk += tr("Next"); + chunk += ""; + } + chunk += "

\n"; + append(chunk); + } append(""); ensureCursorVisible(); } else { @@ -369,29 +390,10 @@ void RclResList::showResultPage() m_winfirst -= prefs.respagesize; if (m_winfirst < 0) m_winfirst = -1; + hasNext = false; } - //setUpdatesEnabled(true);sync();repaint(); - -#if 0 - { - FILE *fp = fopen("/tmp/reslistdebug", "w"); - if (fp) { - const char *text = (const char *)text().utf8(); - //const char *text = alltext.c_str(); - fwrite(text, 1, strlen(text), fp); - fclose(fp); - } - } -#endif - - if (m_winfirst < 0 || - (m_winfirst >= 0 && - m_winfirst + prefs.respagesize >= resCnt)) { - emit nextPageAvailable(false); - } else { - emit nextPageAvailable(true); - } + emit nextPageAvailable(hasNext); } // Single click in result list: color active paragraph @@ -433,6 +435,12 @@ void RclResList::linkWasClicked(const QString &s) case 'E': emit docEditClicked(i); break; + case 'n': + showResultPage(); + break; + case 'p': + resultPageBack(); + break; default: break;// ?? } }