forked from qt-creator/qt-creator
Core: De-virtualize IContext::contextHelp()
Adapt the using code. Change-Id: I2f46de253d5f00c4bd74b2adea163b7c23145393 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -48,7 +48,6 @@ class CMakeEditor final : public BaseTextEditor
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CMakeEditor();
|
CMakeEditor();
|
||||||
void contextHelp(const HelpCallback &callback) const final;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CMakeKeywords m_keywords;
|
CMakeKeywords m_keywords;
|
||||||
@@ -58,10 +57,8 @@ CMakeEditor::CMakeEditor()
|
|||||||
{
|
{
|
||||||
if (auto tool = CMakeToolManager::defaultProjectOrDefaultCMakeTool())
|
if (auto tool = CMakeToolManager::defaultProjectOrDefaultCMakeTool())
|
||||||
m_keywords = tool->keywords();
|
m_keywords = tool->keywords();
|
||||||
}
|
|
||||||
|
|
||||||
void CMakeEditor::contextHelp(const HelpCallback &callback) const
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
{
|
|
||||||
auto helpPrefix = [this](const QString &word) {
|
auto helpPrefix = [this](const QString &word) {
|
||||||
if (m_keywords.includeStandardModules.contains(word))
|
if (m_keywords.includeStandardModules.contains(word))
|
||||||
return "module/";
|
return "module/";
|
||||||
@@ -95,6 +92,7 @@ void CMakeEditor::contextHelp(const HelpCallback &callback) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
callback({{id, word}, {}, {}, HelpItem::Unknown});
|
callback({{id, word}, {}, {}, HelpItem::Unknown});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@@ -27,6 +27,11 @@ void IContext::setContextHelp(const HelpItem &item)
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IContext::setContextHelpProvider(const HelpProvider &provider)
|
||||||
|
{
|
||||||
|
m_contextHelpProvider = provider;
|
||||||
|
}
|
||||||
|
|
||||||
void IContext::attach(QWidget *widget, const Context &context, const HelpItem &help)
|
void IContext::attach(QWidget *widget, const Context &context, const HelpItem &help)
|
||||||
{
|
{
|
||||||
auto icontext = new IContext(widget); // As QObject parent.
|
auto icontext = new IContext(widget); // As QObject parent.
|
||||||
|
@@ -62,8 +62,9 @@ public:
|
|||||||
using HelpCallback = std::function<void(const HelpItem &item)>;
|
using HelpCallback = std::function<void(const HelpItem &item)>;
|
||||||
using HelpProvider = std::function<void(const HelpCallback &item)>;
|
using HelpProvider = std::function<void(const HelpCallback &item)>;
|
||||||
|
|
||||||
virtual void contextHelp(const HelpCallback &callback) const;
|
void contextHelp(const HelpCallback &callback) const;
|
||||||
void setContextHelp(const HelpItem &id);
|
void setContextHelp(const HelpItem &id);
|
||||||
|
void setContextHelpProvider(const HelpProvider &provider);
|
||||||
|
|
||||||
static void attach(QWidget *widget,
|
static void attach(QWidget *widget,
|
||||||
const Context &context,
|
const Context &context,
|
||||||
|
@@ -100,12 +100,10 @@ public:
|
|||||||
{
|
{
|
||||||
setContext(context);
|
setContext(context);
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
}
|
setContextHelpProvider([](const HelpCallback &callback) {
|
||||||
|
|
||||||
void contextHelp(const HelpCallback &callback) const final
|
|
||||||
{
|
|
||||||
const QDesignerFormEditorInterface *core = designerEditor();
|
const QDesignerFormEditorInterface *core = designerEditor();
|
||||||
callback(core->integration()->contextHelpId());
|
callback(core->integration()->contextHelpId());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -24,11 +24,10 @@ EffectComposerContext::EffectComposerContext(QWidget *widget)
|
|||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(QmlDesigner::Constants::C_QMLEFFECTCOMPOSER,
|
setContext(Core::Context(QmlDesigner::Constants::C_QMLEFFECTCOMPOSER,
|
||||||
QmlDesigner::Constants::C_QT_QUICK_TOOLS_MENU));
|
QmlDesigner::Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
|
||||||
|
|
||||||
void EffectComposerContext::contextHelp(const HelpCallback &callback) const
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
{
|
|
||||||
qobject_cast<EffectComposerWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<EffectComposerWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
EffectComposerView::EffectComposerView(QmlDesigner::ExternalDependenciesInterface &externalDependencies)
|
EffectComposerView::EffectComposerView(QmlDesigner::ExternalDependenciesInterface &externalDependencies)
|
||||||
|
@@ -21,7 +21,6 @@ class EffectComposerContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
EffectComposerContext(QWidget *widget);
|
EffectComposerContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class EffectComposerView : public QmlDesigner::AbstractView
|
class EffectComposerView : public QmlDesigner::AbstractView
|
||||||
|
@@ -12,12 +12,10 @@ TimelineContext::TimelineContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(TimelineConstants::C_QMLTIMELINE));
|
setContext(Core::Context(TimelineConstants::C_QMLTIMELINE));
|
||||||
}
|
setContextHelpProvider([this](const Core::IContext::HelpCallback &callback) {
|
||||||
|
|
||||||
void TimelineContext::contextHelp(const Core::IContext::HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
if (auto *widget = qobject_cast<TimelineWidget *>(m_widget))
|
if (auto *widget = qobject_cast<TimelineWidget *>(m_widget))
|
||||||
widget->contextHelp(callback);
|
widget->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -15,7 +15,6 @@ class TimelineContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TimelineContext(QWidget *widget);
|
explicit TimelineContext(QWidget *widget);
|
||||||
void contextHelp(const HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -52,12 +52,10 @@ TransitionContext::TransitionContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(TransitionEditorConstants::C_QMLTRANSITIONS));
|
setContext(Core::Context(TransitionEditorConstants::C_QMLTRANSITIONS));
|
||||||
}
|
setContextHelpProvider([this](const Core::IContext::HelpCallback &callback) {
|
||||||
|
|
||||||
void TransitionContext::contextHelp(const Core::IContext::HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
if (auto *widget = qobject_cast<TransitionEditorWidget *>(m_widget))
|
if (auto *widget = qobject_cast<TransitionEditorWidget *>(m_widget))
|
||||||
widget->contextHelp(callback);
|
widget->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
class Eventfilter : public QObject
|
class Eventfilter : public QObject
|
||||||
|
@@ -35,7 +35,6 @@ class TransitionContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TransitionContext(QWidget *widget);
|
explicit TransitionContext(QWidget *widget);
|
||||||
void contextHelp(const HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class TransitionEditorWidget : public QWidget
|
class TransitionEditorWidget : public QWidget
|
||||||
|
@@ -18,11 +18,9 @@ DesignModeContext::DesignModeContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(Constants::C_QMLDESIGNER, Constants::C_QT_QUICK_TOOLS_MENU));
|
setContext(Core::Context(Constants::C_QMLDESIGNER, Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
|
||||||
void DesignModeContext::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
qobject_cast<DesignModeWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<DesignModeWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
FormEditorContext::FormEditorContext(QWidget *widget)
|
FormEditorContext::FormEditorContext(QWidget *widget)
|
||||||
@@ -30,11 +28,9 @@ FormEditorContext::FormEditorContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(Constants::C_QMLFORMEDITOR, Constants::C_QT_QUICK_TOOLS_MENU));
|
setContext(Core::Context(Constants::C_QMLFORMEDITOR, Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
|
||||||
void FormEditorContext::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
qobject_cast<FormEditorWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<FormEditorWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Editor3DContext::Editor3DContext(QWidget *widget)
|
Editor3DContext::Editor3DContext(QWidget *widget)
|
||||||
@@ -42,11 +38,9 @@ Editor3DContext::Editor3DContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(Constants::C_QMLEDITOR3D, Constants::C_QT_QUICK_TOOLS_MENU));
|
setContext(Core::Context(Constants::C_QMLEDITOR3D, Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
|
||||||
void Editor3DContext::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
qobject_cast<Edit3DWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<Edit3DWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialBrowserContext::MaterialBrowserContext(QWidget *widget)
|
MaterialBrowserContext::MaterialBrowserContext(QWidget *widget)
|
||||||
@@ -54,11 +48,9 @@ MaterialBrowserContext::MaterialBrowserContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(Constants::C_QMLMATERIALBROWSER, Constants::C_QT_QUICK_TOOLS_MENU));
|
setContext(Core::Context(Constants::C_QMLMATERIALBROWSER, Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
|
||||||
void MaterialBrowserContext::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
qobject_cast<MaterialBrowserWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<MaterialBrowserWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
AssetsLibraryContext::AssetsLibraryContext(QWidget *widget)
|
AssetsLibraryContext::AssetsLibraryContext(QWidget *widget)
|
||||||
@@ -66,11 +58,9 @@ AssetsLibraryContext::AssetsLibraryContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(Constants::C_QMLASSETSLIBRARY, Constants::C_QT_QUICK_TOOLS_MENU));
|
setContext(Core::Context(Constants::C_QMLASSETSLIBRARY, Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
|
||||||
void AssetsLibraryContext::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
qobject_cast<AssetsLibraryWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<AssetsLibraryWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
NavigatorContext::NavigatorContext(QWidget *widget)
|
NavigatorContext::NavigatorContext(QWidget *widget)
|
||||||
@@ -78,11 +68,9 @@ NavigatorContext::NavigatorContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(Constants::C_QMLNAVIGATOR, Constants::C_QT_QUICK_TOOLS_MENU));
|
setContext(Core::Context(Constants::C_QMLNAVIGATOR, Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
|
||||||
void NavigatorContext::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
qobject_cast<NavigatorWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<NavigatorWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
TextEditorContext::TextEditorContext(QWidget *widget)
|
TextEditorContext::TextEditorContext(QWidget *widget)
|
||||||
@@ -90,11 +78,9 @@ TextEditorContext::TextEditorContext(QWidget *widget)
|
|||||||
{
|
{
|
||||||
setWidget(widget);
|
setWidget(widget);
|
||||||
setContext(Core::Context(Constants::C_QMLTEXTEDITOR, Constants::C_QT_QUICK_TOOLS_MENU));
|
setContext(Core::Context(Constants::C_QMLTEXTEDITOR, Constants::C_QT_QUICK_TOOLS_MENU));
|
||||||
}
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
|
||||||
void TextEditorContext::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
qobject_cast<TextEditorWidget *>(m_widget)->contextHelp(callback);
|
qobject_cast<TextEditorWidget *>(m_widget)->contextHelp(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace QmlDesigner::Internal
|
} // namespace QmlDesigner::Internal
|
||||||
|
@@ -17,7 +17,6 @@ class DesignModeContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
DesignModeContext(QWidget *widget);
|
DesignModeContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class FormEditorContext : public Core::IContext
|
class FormEditorContext : public Core::IContext
|
||||||
@@ -26,7 +25,6 @@ class FormEditorContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
FormEditorContext(QWidget *widget);
|
FormEditorContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Editor3DContext : public Core::IContext
|
class Editor3DContext : public Core::IContext
|
||||||
@@ -35,7 +33,6 @@ class Editor3DContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
Editor3DContext(QWidget *widget);
|
Editor3DContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class MaterialBrowserContext : public Core::IContext
|
class MaterialBrowserContext : public Core::IContext
|
||||||
@@ -44,7 +41,6 @@ class MaterialBrowserContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
MaterialBrowserContext(QWidget *widget);
|
MaterialBrowserContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class AssetsLibraryContext : public Core::IContext
|
class AssetsLibraryContext : public Core::IContext
|
||||||
@@ -53,7 +49,6 @@ class AssetsLibraryContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
AssetsLibraryContext(QWidget *widget);
|
AssetsLibraryContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class NavigatorContext : public Core::IContext
|
class NavigatorContext : public Core::IContext
|
||||||
@@ -62,7 +57,6 @@ class NavigatorContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
NavigatorContext(QWidget *widget);
|
NavigatorContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class TextEditorContext : public Core::IContext
|
class TextEditorContext : public Core::IContext
|
||||||
@@ -71,7 +65,6 @@ class TextEditorContext : public Core::IContext
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TextEditorContext(QWidget *widget);
|
TextEditorContext(QWidget *widget);
|
||||||
void contextHelp(const Core::IContext::HelpCallback &callback) const override;
|
|
||||||
};
|
};
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -9437,6 +9437,9 @@ BaseTextEditor::BaseTextEditor()
|
|||||||
: d(new BaseTextEditorPrivate)
|
: d(new BaseTextEditorPrivate)
|
||||||
{
|
{
|
||||||
addContext(Constants::C_TEXTEDITOR);
|
addContext(Constants::C_TEXTEDITOR);
|
||||||
|
setContextHelpProvider([this](const HelpCallback &callback) {
|
||||||
|
editorWidget()->contextHelpItem(callback);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseTextEditor::~BaseTextEditor()
|
BaseTextEditor::~BaseTextEditor()
|
||||||
@@ -9682,11 +9685,6 @@ void TextEditorWidgetPrivate::updateCursorPosition()
|
|||||||
q->ensureCursorVisible();
|
q->ensureCursorVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseTextEditor::contextHelp(const HelpCallback &callback) const
|
|
||||||
{
|
|
||||||
editorWidget()->contextHelpItem(callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
void TextEditorWidget::contextHelpItem(const IContext::HelpCallback &callback)
|
void TextEditorWidget::contextHelpItem(const IContext::HelpCallback &callback)
|
||||||
{
|
{
|
||||||
if (!d->m_contextHelpItem.isEmpty()) {
|
if (!d->m_contextHelpItem.isEmpty()) {
|
||||||
|
@@ -135,8 +135,6 @@ public:
|
|||||||
void restoreState(const QByteArray &state) override;
|
void restoreState(const QByteArray &state) override;
|
||||||
QWidget *toolBar() override;
|
QWidget *toolBar() override;
|
||||||
|
|
||||||
void contextHelp(const HelpCallback &callback) const override; // from IContext
|
|
||||||
|
|
||||||
int currentLine() const override;
|
int currentLine() const override;
|
||||||
int currentColumn() const override;
|
int currentColumn() const override;
|
||||||
void gotoLine(int line, int column = 0, bool centerLine = true) override;
|
void gotoLine(int line, int column = 0, bool centerLine = true) override;
|
||||||
|
Reference in New Issue
Block a user