Utils: Add MarkdownBrowser to Layouting

And bind it to Lua.

Change-Id: I9841a2f7ee5dd5b89f8c19231f9e116b71ae355d
Reviewed-by: Artur Twardy <atw@spyro-soft.com>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2024-10-15 14:16:26 +02:00
parent 669cfaa04b
commit 506ef4d21f
3 changed files with 47 additions and 7 deletions

View File

@@ -6,6 +6,7 @@
#include "fancylineedit.h" #include "fancylineedit.h"
#include "filepath.h" #include "filepath.h"
#include "icon.h" #include "icon.h"
#include "markdownbrowser.h"
#include "qtcassert.h" #include "qtcassert.h"
#include "spinner/spinner.h" #include "spinner/spinner.h"
@@ -1048,6 +1049,24 @@ void addToTabWidget(TabWidget *tabWidget, const Tab &tab)
access(tabWidget)->addTab(tab.inner.emerge(), tab.tabName); access(tabWidget)->addTab(tab.inner.emerge(), tab.tabName);
} }
// MarkdownBrowser
MarkdownBrowser::MarkdownBrowser(std::initializer_list<I> ps)
{
ptr = new Implementation;
apply(this, ps);
}
void MarkdownBrowser::setMarkdown(const QString &markdown)
{
access(this)->setMarkdown(markdown);
}
void MarkdownBrowser::setBasePath(const Utils::FilePath &path)
{
access(this)->setBasePath(path);
}
// Special If // Special If
If::If( If::If(

View File

@@ -41,17 +41,16 @@ class QVBoxLayout;
class QWidget; class QWidget;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace SpinnerSolution namespace SpinnerSolution {
{
class SpinnerWidget; class SpinnerWidget;
enum class SpinnerState; enum class SpinnerState;
} } // namespace SpinnerSolution
namespace Utils namespace Utils {
{
class FancyLineEdit; class FancyLineEdit;
class FilePath; class FilePath;
} // Utils class MarkdownBrowser;
} // namespace Utils
namespace Layouting { namespace Layouting {
@@ -425,6 +424,18 @@ public:
void setDecorated(bool on); void setDecorated(bool on);
}; };
class QTCREATOR_UTILS_EXPORT MarkdownBrowser : public Widget
{
public:
using Implementation = Utils::MarkdownBrowser;
using I = Building::BuilderItem<MarkdownBrowser>;
MarkdownBrowser(std::initializer_list<I> items);
void setMarkdown(const QString &);
void setBasePath(const Utils::FilePath &);
};
// Special // Special
class QTCREATOR_UTILS_EXPORT If class QTCREATOR_UTILS_EXPORT If
@@ -509,7 +520,8 @@ QTC_DEFINE_BUILDER_SETTER(windowFlags, setWindowFlags);
QTC_DEFINE_BUILDER_SETTER(widgetAttribute, setWidgetAttribute); QTC_DEFINE_BUILDER_SETTER(widgetAttribute, setWidgetAttribute);
QTC_DEFINE_BUILDER_SETTER(autoFillBackground, setAutoFillBackground); QTC_DEFINE_BUILDER_SETTER(autoFillBackground, setAutoFillBackground);
QTC_DEFINE_BUILDER_SETTER(readOnly, setReadOnly); QTC_DEFINE_BUILDER_SETTER(readOnly, setReadOnly);
QTC_DEFINE_BUILDER_SETTER(markdown, setMarkdown) QTC_DEFINE_BUILDER_SETTER(markdown, setMarkdown);
QTC_DEFINE_BUILDER_SETTER(basePath, setBasePath);
// Nesting dispatchers // Nesting dispatchers

View File

@@ -478,6 +478,15 @@ void setupGuiModule()
sol::base_classes, sol::base_classes,
sol::bases<Widget, Object, Thing>()); sol::bases<Widget, Object, Thing>());
gui.new_usertype<Layouting::MarkdownBrowser>(
"MarkdownBrowser",
sol::call_constructor,
sol::factories([guard](const sol::table &children) {
return constructWidgetType<Layouting::MarkdownBrowser>(children, guard);
}),
sol::base_classes,
sol::bases<Widget, Object, Thing>());
gui.new_usertype<Widget>( gui.new_usertype<Widget>(
"Widget", "Widget",
sol::call_constructor, sol::call_constructor,