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