Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,117 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Online Help Viewer Dialog
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Astrid Müller, SGAS, 2018-04-10
|
||||
*/
|
||||
|
||||
#include "online_help_viewer_dialog.h"
|
||||
#include "ui_online_help_viewer_dialog.h"
|
||||
|
||||
#include <ngltranslator/ngltranslator.h>
|
||||
#include <ngltools/ngltools_filesystem.h>
|
||||
|
||||
#include <QWebEngineView>
|
||||
#include <QWebEngineHistory>
|
||||
#include <QMenu>
|
||||
|
||||
|
||||
namespace OnlineHelp
|
||||
{
|
||||
OnlineHelpViewerDialog::OnlineHelpViewerDialog(bool isMain)
|
||||
: LtsWidgets::LtsDialog(nullptr,
|
||||
isMain ? LtsWidgets::ButtonCombination::SeamlessDialog : LtsWidgets::ButtonCombination::CloseOnly,
|
||||
!isMain /* closable if NOT main */)
|
||||
, m_ui(new Ui::OnlineHelpViewerDialog)
|
||||
, m_logger(getLogger("onlineHelp"))
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
}
|
||||
|
||||
bool OnlineHelpViewerDialog::init(const QString &fileName)
|
||||
{
|
||||
QString locale;
|
||||
|
||||
if (NGL::translationLocale() == "de_DE") // grrr..
|
||||
locale = QStringLiteral("de_DE");
|
||||
else
|
||||
locale = QStringLiteral("en_GB");
|
||||
|
||||
QString helpDir = NGL::directory(NGL::FileType::ConfigFile, QStringLiteral("help"));
|
||||
if (fileName.isEmpty())
|
||||
helpDir += (locale + QStringLiteral("/index.html"));
|
||||
else // filename given
|
||||
helpDir += (locale + QStringLiteral("/%1.html").arg(fileName));
|
||||
|
||||
INFO_LOG(m_logger) << "helpDir=" << helpDir;
|
||||
|
||||
#ifndef LTS_DEBUG
|
||||
m_ui->lblPage->setVisible(false);
|
||||
#endif
|
||||
|
||||
connect(m_ui->wevOnlineHelpViewer, &QWebEngineView::loadFinished, this, [=](bool ok)
|
||||
{
|
||||
Q_UNUSED(ok);
|
||||
QString url = m_ui->wevOnlineHelpViewer->page()->url().toString();
|
||||
m_ui->lblPage->setText(url);
|
||||
});
|
||||
|
||||
m_ui->wevOnlineHelpViewer->load(QUrl(QUrl::fromLocalFile(helpDir)));
|
||||
|
||||
m_ui->wevOnlineHelpViewer->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(m_ui->wevOnlineHelpViewer, &QWebEngineView::customContextMenuRequested,
|
||||
this, &OnlineHelpViewerDialog::onContextMenuRequested);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
OnlineHelpViewerDialog::~OnlineHelpViewerDialog()
|
||||
{
|
||||
m_ui->wevOnlineHelpViewer->setParent(nullptr);
|
||||
m_ui->wevOnlineHelpViewer->hide();
|
||||
m_ui->wevOnlineHelpViewer->deleteLater();
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void OnlineHelpViewerDialog::retranslate()
|
||||
{
|
||||
translate(m_ui, tr("Online Help Viewer"));
|
||||
}
|
||||
|
||||
void OnlineHelpViewerDialog::onContextMenuRequested(const QPoint &position)
|
||||
{
|
||||
QMenu menu(m_ui->wevOnlineHelpViewer);
|
||||
QAction *action = menu.addAction(tr("Next Page"), this, &OnlineHelpViewerDialog::onContextdMenuForwardRequested);
|
||||
action->setEnabled(m_ui->wevOnlineHelpViewer->page()->history()->canGoForward());
|
||||
|
||||
action = menu.addAction(tr("Last Page"), this, &OnlineHelpViewerDialog::onContextdMenuBackRequested);
|
||||
|
||||
bool setEnable = (m_ui->wevOnlineHelpViewer->page()->history()->canGoBack()) &&
|
||||
(m_ui->wevOnlineHelpViewer->page()->history()->backItems(2).size() > 1); // *)
|
||||
// *) Die erste HistorySeite ist nach dem Aufschalten des Widgets immer leer.
|
||||
// Hiermit wird verhindert dass man in diese erste leere Seite zurueckgehen kann.
|
||||
|
||||
action->setEnabled(setEnable);
|
||||
|
||||
menu.addAction(tr("Reload Page"), this, &OnlineHelpViewerDialog::onContextdMenuReloadRequested);
|
||||
menu.exec(m_ui->wevOnlineHelpViewer->mapToGlobal(position));
|
||||
}
|
||||
|
||||
void OnlineHelpViewerDialog::onContextdMenuForwardRequested()
|
||||
{
|
||||
m_ui->wevOnlineHelpViewer->page()->triggerAction(QWebEnginePage::Forward);
|
||||
}
|
||||
|
||||
void OnlineHelpViewerDialog::onContextdMenuBackRequested()
|
||||
{
|
||||
m_ui->wevOnlineHelpViewer->page()->triggerAction(QWebEnginePage::Back);
|
||||
}
|
||||
|
||||
void OnlineHelpViewerDialog::onContextdMenuReloadRequested()
|
||||
{
|
||||
m_ui->wevOnlineHelpViewer->page()->triggerAction(QWebEnginePage::Reload);
|
||||
}
|
||||
|
||||
} // namespace OnlineHelp
|
||||
Reference in new issue
Block a user