get shift+clicklink to open new preview window instead of tab

This commit is contained in:
dockes 2006-11-17 12:55:59 +00:00
parent 9b24c358f8
commit 350a7c49fe
4 changed files with 21 additions and 16 deletions

View File

@ -1,5 +1,5 @@
#ifndef lint #ifndef lint
static char rcsid[] = "@(#$Id: rclmain_w.cpp,v 1.8 2006-11-17 10:09:07 dockes Exp $ (C) 2005 J.F.Dockes"; static char rcsid[] = "@(#$Id: rclmain_w.cpp,v 1.9 2006-11-17 12:55:59 dockes Exp $ (C) 2005 J.F.Dockes";
#endif #endif
/* /*
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -114,8 +114,8 @@ void RclMain::init()
this, SLOT(enablePrevPage(bool))); this, SLOT(enablePrevPage(bool)));
connect(resList, SIGNAL(docEditClicked(int)), connect(resList, SIGNAL(docEditClicked(int)),
this, SLOT(startNativeViewer(int))); this, SLOT(startNativeViewer(int)));
connect(resList, SIGNAL(docPreviewClicked(int)), connect(resList, SIGNAL(docPreviewClicked(int, int)),
this, SLOT(startPreview(int))); this, SLOT(startPreview(int, int)));
connect(fileExitAction, SIGNAL(activated() ), this, SLOT(fileExit() ) ); connect(fileExitAction, SIGNAL(activated() ), this, SLOT(fileExit() ) );
connect(fileStart_IndexingAction, SIGNAL(activated()), connect(fileStart_IndexingAction, SIGNAL(activated()),
@ -443,8 +443,9 @@ void RclMain::previewClosed(QWidget *w)
* existing window. * existing window.
* *
* @param docnum db query index * @param docnum db query index
* @param mod keyboards modifiers like ControlButton, ShiftButton
*/ */
void RclMain::startPreview(int docnum) void RclMain::startPreview(int docnum, int mod)
{ {
Rcl::Doc doc; Rcl::Doc doc;
if (!resList->getDoc(docnum, doc)) { if (!resList->getDoc(docnum, doc)) {
@ -462,7 +463,10 @@ void RclMain::startPreview(int docnum)
fn.c_str()); fn.c_str());
return; return;
} }
if (mod & Qt::ShiftButton) {
// User wants new preview window
curPreview = 0;
}
if (curPreview == 0) { if (curPreview == 0) {
curPreview = new Preview(0, tr("Preview")); curPreview = new Preview(0, tr("Preview"));
if (curPreview == 0) { if (curPreview == 0) {

View File

@ -65,7 +65,7 @@ public slots:
virtual void enablePrevPage(bool); virtual void enablePrevPage(bool);
virtual void docExpand(int); virtual void docExpand(int);
virtual void ssearchAddTerm(QString); virtual void ssearchAddTerm(QString);
virtual void startPreview(int docnum); virtual void startPreview(int docnum, int);
virtual void startNativeViewer(int docnum); virtual void startNativeViewer(int docnum);
virtual void previewNextInTab(int sid, int docnum); virtual void previewNextInTab(int sid, int docnum);
virtual void previewPrevInTab(int sid, int docnum); virtual void previewPrevInTab(int sid, int docnum);

View File

@ -1,5 +1,5 @@
#ifndef lint #ifndef lint
static char rcsid[] = "@(#$Id: reslist.cpp,v 1.10 2006-11-17 10:09:07 dockes Exp $ (C) 2005 J.F.Dockes"; static char rcsid[] = "@(#$Id: reslist.cpp,v 1.11 2006-11-17 12:55:59 dockes Exp $ (C) 2005 J.F.Dockes";
#endif #endif
#include <time.h> #include <time.h>
@ -46,8 +46,8 @@ ResList::ResList(QWidget* parent, const char* name)
// signals and slots connections // signals and slots connections
connect(this, SIGNAL(clicked(int, int)), this, SLOT(clicked(int,int))); connect(this, SIGNAL(clicked(int, int)), this, SLOT(clicked(int,int)));
connect(this, SIGNAL(linkClicked(const QString &)), connect(this, SIGNAL(linkClicked(const QString &, int)),
this, SLOT(linkWasClicked(const QString &))); this, SLOT(linkWasClicked(const QString &, int)));
connect(this, SIGNAL(headerClicked()), this, SLOT(showQueryDetails())); connect(this, SIGNAL(headerClicked()), this, SLOT(showQueryDetails()));
connect(this, SIGNAL(doubleClicked(int,int)), connect(this, SIGNAL(doubleClicked(int,int)),
this, SLOT(doubleClicked(int, int))); this, SLOT(doubleClicked(int, int)));
@ -532,7 +532,7 @@ void ResList::doubleClicked(int, int)
emit(wordSelect(selectedText())); emit(wordSelect(selectedText()));
} }
void ResList::linkWasClicked(const QString &s) void ResList::linkWasClicked(const QString &s, int clkmod)
{ {
LOGDEB(("ResList::linkClicked: [%s]\n", s.ascii())); LOGDEB(("ResList::linkClicked: [%s]\n", s.ascii()));
int i = atoi(s.ascii()+1); int i = atoi(s.ascii()+1);
@ -542,7 +542,7 @@ void ResList::linkWasClicked(const QString &s)
emit headerClicked(); emit headerClicked();
break; break;
case 'P': case 'P':
emit docPreviewClicked(i); emit docPreviewClicked(i, clkmod);
break; break;
case 'E': case 'E':
emit docEditClicked(i); emit docEditClicked(i);
@ -573,7 +573,7 @@ QPopupMenu *ResList::createPopupMenu(const QPoint& pos)
void ResList::menuPreview() void ResList::menuPreview()
{ {
emit docPreviewClicked(m_popDoc); emit docPreviewClicked(m_popDoc, 0);
} }
void ResList::menuEdit() void ResList::menuEdit()
{ {

View File

@ -1,6 +1,6 @@
#ifndef _RESLIST_H_INCLUDED_ #ifndef _RESLIST_H_INCLUDED_
#define _RESLIST_H_INCLUDED_ #define _RESLIST_H_INCLUDED_
/* @(#$Id: reslist.h,v 1.3 2006-11-17 10:09:07 dockes Exp $ (C) 2005 J.F.Dockes */ /* @(#$Id: reslist.h,v 1.4 2006-11-17 12:55:59 dockes Exp $ (C) 2005 J.F.Dockes */
#include <list> #include <list>
@ -56,10 +56,11 @@ class ResList : public QTextBrowser
void nextPageAvailable(bool); void nextPageAvailable(bool);
void prevPageAvailable(bool); void prevPageAvailable(bool);
void docEditClicked(int); void docEditClicked(int);
void docPreviewClicked(int); void docPreviewClicked(int, int);
void headerClicked(); void headerClicked();
void docExpand(int); void docExpand(int);
void wordSelect(QString); void wordSelect(QString);
void linkClicked(const QString&, int);
protected: protected:
void keyPressEvent(QKeyEvent *e); void keyPressEvent(QKeyEvent *e);
@ -67,7 +68,7 @@ class ResList : public QTextBrowser
protected slots: protected slots:
virtual void languageChange(); virtual void languageChange();
virtual void linkWasClicked(const QString &); virtual void linkWasClicked(const QString &, int);
virtual void showQueryDetails(); virtual void showQueryDetails();
private: private:
@ -86,7 +87,7 @@ class ResList : public QTextBrowser
// Don't know why this is necessary but it is // Don't know why this is necessary but it is
void emitLinkClicked(const QString &s) { void emitLinkClicked(const QString &s) {
emit linkClicked(s); emit linkClicked(s, m_lstClckMod);
}; };
}; };