Add F1 map for shortcut help
This commit is contained in:
parent
ae2b4577c3
commit
8a50e63ca2
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include <qevent.h>
|
#include <qevent.h>
|
||||||
#include <qwidget.h>
|
#include <qwidget.h>
|
||||||
|
#include <QTabWidget>
|
||||||
|
|
||||||
#include "recoll.h"
|
#include "recoll.h"
|
||||||
#include "rclhelp.h"
|
#include "rclhelp.h"
|
||||||
@ -40,34 +41,54 @@ HelpClient::HelpClient(QObject *parent, const char *)
|
|||||||
bool HelpClient::eventFilter(QObject *obj, QEvent *event)
|
bool HelpClient::eventFilter(QObject *obj, QEvent *event)
|
||||||
{
|
{
|
||||||
static time_t last_start;
|
static time_t last_start;
|
||||||
if (event->type() == QEvent::KeyPress ||
|
if (event->type() != QEvent::KeyPress &&
|
||||||
event->type() == QEvent::ShortcutOverride) {
|
event->type() != QEvent::ShortcutOverride) {
|
||||||
// LOGDEB("HelpClient::eventFilter: " << ((int)event->type()) << "\n" );
|
return false;
|
||||||
|
}
|
||||||
QKeyEvent *ke = static_cast<QKeyEvent *>(event);
|
QKeyEvent *ke = static_cast<QKeyEvent *>(event);
|
||||||
if (ke->key() == Qt::Key_F1 || ke->key() == Qt::Key_Help) {
|
if (ke->key() != Qt::Key_F1 && ke->key() != Qt::Key_Help) {
|
||||||
if (obj->isWidgetType()) {
|
return false;
|
||||||
QWidget *widget = static_cast<QWidget *>(obj)->focusWidget();
|
}
|
||||||
map<string, string>::iterator it = helpmap.end();
|
|
||||||
while (widget) {
|
if (!obj->isWidgetType()) {
|
||||||
it = helpmap.find((const char *)widget->objectName().toUtf8());
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget *widget = dynamic_cast<QWidget *>(obj);
|
||||||
|
if (nullptr == widget) {
|
||||||
|
// ??
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
widget = widget->focusWidget();
|
||||||
|
auto it = helpmap.end();
|
||||||
|
std::string onm;
|
||||||
|
while (widget) {
|
||||||
|
QTabWidget *tw = dynamic_cast<QTabWidget*>(widget);
|
||||||
|
if (nullptr != tw) {
|
||||||
|
onm = qs2utf8s(tw->currentWidget()->objectName());
|
||||||
|
LOGDEB1("HelpClient: tab name " << onm << "\n");
|
||||||
|
it = helpmap.find(onm);
|
||||||
if (it != helpmap.end())
|
if (it != helpmap.end())
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
onm = qs2utf8s(widget->objectName());
|
||||||
|
LOGDEB1("HelpClient: object name " << onm << "\n");
|
||||||
|
it = helpmap.find(onm);
|
||||||
|
if (it != helpmap.end())
|
||||||
break;
|
break;
|
||||||
widget = widget->parentWidget();
|
widget = widget->parentWidget();
|
||||||
}
|
}
|
||||||
if (time(0) - last_start > 5) {
|
if (time(0) - last_start > 5) {
|
||||||
last_start = time(0);
|
last_start = time(0);
|
||||||
if (it != helpmap.end()) {
|
if (it != helpmap.end()) {
|
||||||
LOGDEB("HelpClient::eventFilter: " << (it->first) << "->" << (it->second) << "\n" );
|
LOGDEB("HelpClient::eventFilter: " << it->first << "->" << it->second << "\n");
|
||||||
startManual(it->second);
|
startManual(it->second);
|
||||||
} else {
|
} else {
|
||||||
LOGDEB("HelpClient::eventFilter: no help section\n" );
|
LOGDEB("HelpClient::eventFilter: no help section\n");
|
||||||
startManual("");
|
startManual("");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab">
|
<widget class="QWidget" name="tab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -581,6 +581,13 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Use F1 to access the manual</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@ -1520,7 +1527,7 @@ May be slow for big documents.</string>
|
|||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
<buttongroups>
|
<buttongroups>
|
||||||
<buttongroup name="buttonGroup"/>
|
|
||||||
<buttongroup name="buttonGroup_2"/>
|
<buttongroup name="buttonGroup_2"/>
|
||||||
|
<buttongroup name="buttonGroup"/>
|
||||||
</buttongroups>
|
</buttongroups>
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
@ -57,6 +57,7 @@
|
|||||||
#include "rclmain_w.h"
|
#include "rclmain_w.h"
|
||||||
#include "ptrans_w.h"
|
#include "ptrans_w.h"
|
||||||
#include "scbase.h"
|
#include "scbase.h"
|
||||||
|
#include "rclhelp.h"
|
||||||
|
|
||||||
void UIPrefsDialog::init()
|
void UIPrefsDialog::init()
|
||||||
{
|
{
|
||||||
@ -102,6 +103,9 @@ void UIPrefsDialog::init()
|
|||||||
connect(ssNoCompleteCB, SIGNAL(toggled(bool)),
|
connect(ssNoCompleteCB, SIGNAL(toggled(bool)),
|
||||||
ssSearchOnCompleteCB, SLOT(setDisabled(bool)));
|
ssSearchOnCompleteCB, SLOT(setDisabled(bool)));
|
||||||
connect(resetscPB, SIGNAL(clicked()), this, SLOT(resetShortcuts()));
|
connect(resetscPB, SIGNAL(clicked()), this, SLOT(resetShortcuts()));
|
||||||
|
|
||||||
|
(void)new HelpClient(this);
|
||||||
|
HelpClient::installMap("sctab", "RCL.SEARCH.GUI.SHORTCUTS");
|
||||||
|
|
||||||
setFromPrefs();
|
setFromPrefs();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user