From ba08c037883b8a839c4b42dcfa50985311a3f51e Mon Sep 17 00:00:00 2001 From: Sirius Bakke Date: Tue, 24 Jun 2014 11:16:16 +0000 Subject: [PATCH] Feature: select and show all release notes --- src/libgui/FWWindow.cpp | 1 + src/libgui/Help.cpp | 28 ++++++++++++++++++++++++++++ src/libgui/Help.h | 2 ++ src/libgui/helpview_q.ui | 7 +++++-- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/libgui/FWWindow.cpp b/src/libgui/FWWindow.cpp index d00494170..afe306d0f 100644 --- a/src/libgui/FWWindow.cpp +++ b/src/libgui/FWWindow.cpp @@ -1525,6 +1525,7 @@ void FWWindow::showReleaseNotes() h->hide(); } else { + h->showAllReleaseNotes(h->findHelpFile(file_name)); // I do not know why, but url "file://file_name" does not seem to work. // But "file:file_name" works. h->setSource(QUrl("file:" + file_name)); diff --git a/src/libgui/Help.cpp b/src/libgui/Help.cpp index d453e55f2..1463bd1ef 100644 --- a/src/libgui/Help.cpp +++ b/src/libgui/Help.cpp @@ -33,6 +33,7 @@ #include "FWWindow.h" #include +#include #include #include @@ -57,6 +58,9 @@ Help::Help(QWidget *, const QString &title, bool _load_links_in_browser) : connect(http_getter, SIGNAL(done(const QString&)), this, SLOT(downloadComplete(const QString&))); + connect(m_dialog->comboBox, SIGNAL(currentIndexChanged(int)), + this, SLOT(showReleaseNotesSelected())); + QString locale = QLocale::system().name(); //"en_US"; // Set up path to help qtextBrowser find contents, such as files for @@ -73,6 +77,7 @@ Help::Help(QWidget *, const QString &title, bool _load_links_in_browser) : //raise(); flags = windowFlags()| Qt::WindowMinimizeButtonHint; + m_dialog->comboBox->hide(); }; Help::~Help() @@ -164,8 +169,31 @@ QString Help::findHelpFile(const QString &file_base_name) return ""; } +void Help::showAllReleaseNotes(const QString &path) +{ + m_dialog->comboBox->show(); + + QStringList filters; + filters << "release_notes_*.html"; + + QDir dir; + dir.setPath(QFileInfo(path).path()); + + m_dialog->comboBox->addItems(dir.entryList(filters, QDir::NoFilter, QDir::Name | QDir::Reversed)); +} + +void Help::showReleaseNotesSelected() +{ + if (!m_dialog->comboBox->isVisible()) return; + + QString file_name = m_dialog->comboBox->currentText(); + + setSource(QUrl("file:" + file_name)); +} + void Help::closeEvent(QCloseEvent *event) { + m_dialog->comboBox->hide(); window_geometry = QWidget::saveGeometry(); QDialog::closeEvent(event); } diff --git a/src/libgui/Help.h b/src/libgui/Help.h index 158002615..a15ee9605 100644 --- a/src/libgui/Help.h +++ b/src/libgui/Help.h @@ -60,6 +60,7 @@ public: void setSource(const QUrl &url); QString findHelpFile(const QString &file_base_name); + void showAllReleaseNotes(const QString &path); void setName(const QString &name); @@ -73,6 +74,7 @@ public: public slots: void downloadComplete(const QString&); void show(); + void showReleaseNotesSelected(); }; diff --git a/src/libgui/helpview_q.ui b/src/libgui/helpview_q.ui index ae1e0f566..9b4470537 100644 --- a/src/libgui/helpview_q.ui +++ b/src/libgui/helpview_q.ui @@ -47,10 +47,10 @@ - + - + @@ -74,6 +74,9 @@ + + +