summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkh <qtc-committer@nokia.com>2009-04-01 14:17:18 (GMT)
committerkh <qtc-committer@nokia.com>2009-04-01 14:17:18 (GMT)
commit6eac95b553f4a2958c2c58127441f2705b05b0a3 (patch)
tree0ac88b7acb7171e8121f20053924b5a24ac9df51
parent1df41e19604d8c8945ad8e55e36016e480446576 (diff)
downloadQt-6eac95b553f4a2958c2c58127441f2705b05b0a3.zip
Qt-6eac95b553f4a2958c2c58127441f2705b05b0a3.tar.gz
Qt-6eac95b553f4a2958c2c58127441f2705b05b0a3.tar.bz2
don't open the TopicChooser if no link is avaliable
Task-number: none Reviewed-by: hjk
-rw-r--r--tools/assistant/tools/assistant/indexwindow.cpp56
-rw-r--r--tools/assistant/tools/assistant/indexwindow.h2
2 files changed, 23 insertions, 35 deletions
diff --git a/tools/assistant/tools/assistant/indexwindow.cpp b/tools/assistant/tools/assistant/indexwindow.cpp
index e7575fa..4bd6f4f 100644
--- a/tools/assistant/tools/assistant/indexwindow.cpp
+++ b/tools/assistant/tools/assistant/indexwindow.cpp
@@ -122,10 +122,9 @@ bool IndexWindow::eventFilter(QObject *obj, QEvent *e)
m_indexWidget->setCurrentIndex(idx);
break;
case Qt::Key_Escape:
- emit escapePressed();
+ emit escapePressed();
break;
- default:
- ;
+ default: ; // stop complaining
}
} else if (obj == m_indexWidget && e->type() == QEvent::ContextMenu) {
QContextMenuEvent *ctxtEvent = static_cast<QContextMenuEvent*>(e);
@@ -140,44 +139,15 @@ bool IndexWindow::eventFilter(QObject *obj, QEvent *e)
if (curTab == action)
m_indexWidget->activateCurrentItem();
else if (newTab == action) {
- QHelpIndexModel *model =
- qobject_cast<QHelpIndexModel*>(m_indexWidget->model());
- QString keyword = model->data(idx, Qt::DisplayRole).toString();
- if (model) {
- QMap<QString, QUrl> links = model->linksForKeyword(keyword);
- if (links.count() == 1) {
- CentralWidget::instance()->
- setSourceInNewTab(links.constBegin().value());
- } else {
- TopicChooser tc(this, keyword, links);
- if (tc.exec() == QDialog::Accepted) {
- CentralWidget::instance()->setSourceInNewTab(tc.link());
- }
- }
- }
+ open(m_indexWidget, idx);
}
}
} else if (m_indexWidget && obj == m_indexWidget->viewport()
&& e->type() == QEvent::MouseButtonRelease) {
QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(e);
QModelIndex idx = m_indexWidget->indexAt(mouseEvent->pos());
- if (idx.isValid() && mouseEvent->button()==Qt::MidButton) {
- QHelpIndexModel *model =
- qobject_cast<QHelpIndexModel*>(m_indexWidget->model());
- QString keyword = model->data(idx, Qt::DisplayRole).toString();
- if (model) {
- QMap<QString, QUrl> links = model->linksForKeyword(keyword);
- if (links.count() > 1) {
- TopicChooser tc(this, keyword, links);
- if (tc.exec() == QDialog::Accepted) {
- CentralWidget::instance()->setSourceInNewTab(tc.link());
- }
- } else if (links.count() == 1) {
- CentralWidget::instance()->
- setSourceInNewTab(links.constBegin().value());
- }
- }
- }
+ if (idx.isValid() && mouseEvent->button()==Qt::MidButton)
+ open(m_indexWidget, idx);
}
#ifdef Q_OS_MAC
else if (obj == m_indexWidget && e->type() == QEvent::KeyPress) {
@@ -213,4 +183,20 @@ void IndexWindow::focusInEvent(QFocusEvent *e)
}
}
+void IndexWindow::open(QHelpIndexWidget* indexWidget, const QModelIndex &index)
+{
+ QHelpIndexModel *model = qobject_cast<QHelpIndexModel*>(indexWidget->model());
+ if (model) {
+ QString keyword = model->data(index, Qt::DisplayRole).toString();
+ QMap<QString, QUrl> links = model->linksForKeyword(keyword);
+ if (links.count() > 1) {
+ TopicChooser tc(this, keyword, links);
+ if (tc.exec() == QDialog::Accepted)
+ CentralWidget::instance()->setSourceInNewTab(tc.link());
+ } else if (links.count() == 1) {
+ CentralWidget::instance()->setSourceInNewTab(links.constBegin().value());
+ }
+ }
+}
+
QT_END_NAMESPACE
diff --git a/tools/assistant/tools/assistant/indexwindow.h b/tools/assistant/tools/assistant/indexwindow.h
index f1f57f9..14ed83c 100644
--- a/tools/assistant/tools/assistant/indexwindow.h
+++ b/tools/assistant/tools/assistant/indexwindow.h
@@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE
class QHelpIndexWidget;
class QHelpEngine;
+class QModelIndex;
class IndexWindow : public QWidget
{
@@ -79,6 +80,7 @@ private slots:
private:
bool eventFilter(QObject *obj, QEvent *e);
void focusInEvent(QFocusEvent *e);
+ void open(QHelpIndexWidget *indexWidget, const QModelIndex &index);
QLineEdit *m_searchLineEdit;
QHelpIndexWidget *m_indexWidget;