forked from qt-creator/qt-creator
Help: Disable Add Bookmark action when current page is blank
Task-number: QTCREATORBUG-14204 Change-Id: I5d4a7ada10f0d69363e96bb4efd158444a051b71 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -75,6 +75,11 @@ static void openUrlInWindow(const QUrl &url)
|
|||||||
Core::ICore::raiseWindow(viewer);
|
Core::ICore::raiseWindow(viewer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isBookmarkable(const QUrl &url)
|
||||||
|
{
|
||||||
|
return !url.isEmpty() && url != QUrl(Help::Constants::AboutBlank);
|
||||||
|
}
|
||||||
|
|
||||||
HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget *parent) :
|
HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
m_style(style)
|
m_style(style)
|
||||||
@@ -436,6 +441,7 @@ void HelpWidget::setCurrentViewer(HelpViewer *viewer)
|
|||||||
m_viewerStack->setCurrentWidget(viewer);
|
m_viewerStack->setCurrentWidget(viewer);
|
||||||
m_backAction->setEnabled(viewer->isBackwardAvailable());
|
m_backAction->setEnabled(viewer->isBackwardAvailable());
|
||||||
m_forwardAction->setEnabled(viewer->isForwardAvailable());
|
m_forwardAction->setEnabled(viewer->isForwardAvailable());
|
||||||
|
m_addBookmarkAction->setEnabled(isBookmarkable(viewer->source()));
|
||||||
if (m_style == ExternalWindow)
|
if (m_style == ExternalWindow)
|
||||||
updateWindowTitle();
|
updateWindowTitle();
|
||||||
emit sourceChanged(viewer->source());
|
emit sourceChanged(viewer->source());
|
||||||
@@ -453,8 +459,10 @@ void HelpWidget::addViewer(HelpViewer *viewer)
|
|||||||
viewer->setActionVisible(HelpViewer::Action::NewPage, m_style == ModeWidget);
|
viewer->setActionVisible(HelpViewer::Action::NewPage, m_style == ModeWidget);
|
||||||
viewer->setActionVisible(HelpViewer::Action::ExternalWindow, m_style != ExternalWindow);
|
viewer->setActionVisible(HelpViewer::Action::ExternalWindow, m_style != ExternalWindow);
|
||||||
connect(viewer, &HelpViewer::sourceChanged, this, [viewer, this](const QUrl &url) {
|
connect(viewer, &HelpViewer::sourceChanged, this, [viewer, this](const QUrl &url) {
|
||||||
if (currentViewer() == viewer)
|
if (currentViewer() == viewer) {
|
||||||
|
m_addBookmarkAction->setEnabled(isBookmarkable(url));
|
||||||
emit sourceChanged(url);
|
emit sourceChanged(url);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
connect(viewer, &HelpViewer::forwardAvailable, this, [viewer, this](bool available) {
|
connect(viewer, &HelpViewer::forwardAvailable, this, [viewer, this](bool available) {
|
||||||
if (currentViewer() == viewer)
|
if (currentViewer() == viewer)
|
||||||
@@ -601,7 +609,7 @@ void HelpWidget::addBookmark()
|
|||||||
QTC_ASSERT(viewer, return);
|
QTC_ASSERT(viewer, return);
|
||||||
|
|
||||||
const QString &url = viewer->source().toString();
|
const QString &url = viewer->source().toString();
|
||||||
if (url.isEmpty() || url == Help::Constants::AboutBlank)
|
if (!isBookmarkable(url))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
BookmarkManager *manager = &LocalHelpManager::bookmarkManager();
|
BookmarkManager *manager = &LocalHelpManager::bookmarkManager();
|
||||||
|
Reference in New Issue
Block a user