Compare commits

...

6 Commits

Author SHA1 Message Date
Kakueeen b42595cbbc
Merge cb4ec62c1e into 1990203f3b 2025-03-08 19:17:09 +08:00
zhuzichu 1990203f3b
Merge pull request #593 from Polaris-Night/main
修复FluTreeModel::setDataSource内存泄漏问题
2025-03-08 14:49:26 +08:00
zhuzichu df7cd94eec
Merge pull request #592 from add-uos/main
fix: 优化示例中加载按钮交互效果
2025-03-08 14:48:48 +08:00
Polaris-Night 2cc17e9db3 修复FluTreeModel::setDataSource内存泄漏问题 2025-03-03 21:24:56 +08:00
zhanghongyuan aa8fcb304f fix: 优化示例中加载按钮交互效果
优化 example 中加载按钮页面交互效果
2025-03-03 15:23:57 +08:00
liuzhangjian cb4ec62c1e fix: [singleton] Fixed an issue with the Singleton class redefinition
fix #564
2025-01-20 17:00:41 +08:00
12 changed files with 46 additions and 32 deletions

View File

@ -969,10 +969,16 @@ Updated content:
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_Buttons.qml" line="222"/>
<location filename="qml/page/T_Buttons.qml" line="238"/> <location filename="qml/page/T_Buttons.qml" line="238"/>
<source>Loading</source> <source>Loading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="qml/page/T_Buttons.qml" line="238"/>
<source>Normal</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="qml/page/T_Buttons.qml" line="270"/> <location filename="qml/page/T_Buttons.qml" line="270"/>
<source>Click IconButton</source> <source>Click IconButton</source>
@ -2291,39 +2297,39 @@ Some contents...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="45"/> <location filename="qml/page/T_TabView.qml" line="44"/>
<location filename="qml/page/T_TabView.qml" line="47"/> <location filename="qml/page/T_TabView.qml" line="46"/>
<source>Equal</source> <source>Equal</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="54"/> <location filename="qml/page/T_TabView.qml" line="53"/>
<source>SizeToContent</source> <source>SizeToContent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="61"/> <location filename="qml/page/T_TabView.qml" line="60"/>
<source>Compact</source> <source>Compact</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="69"/> <location filename="qml/page/T_TabView.qml" line="68"/>
<source>Tab Close Button Visibility:</source> <source>Tab Close Button Visibility:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="74"/> <location filename="qml/page/T_TabView.qml" line="72"/>
<location filename="qml/page/T_TabView.qml" line="84"/> <location filename="qml/page/T_TabView.qml" line="82"/>
<source>Always</source> <source>Always</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="77"/> <location filename="qml/page/T_TabView.qml" line="75"/>
<source>Never</source> <source>Never</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="91"/> <location filename="qml/page/T_TabView.qml" line="89"/>
<source>OnHover</source> <source>OnHover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -995,10 +995,16 @@ Updated content:
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_Buttons.qml" line="222"/>
<location filename="qml/page/T_Buttons.qml" line="238"/> <location filename="qml/page/T_Buttons.qml" line="238"/>
<source>Loading</source> <source>Loading</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="qml/page/T_Buttons.qml" line="238"/>
<source>Normal</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="qml/page/T_Buttons.qml" line="270"/> <location filename="qml/page/T_Buttons.qml" line="270"/>
<source>Click IconButton</source> <source>Click IconButton</source>
@ -2480,39 +2486,39 @@ Some contents...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="45"/> <location filename="qml/page/T_TabView.qml" line="44"/>
<location filename="qml/page/T_TabView.qml" line="47"/> <location filename="qml/page/T_TabView.qml" line="46"/>
<source>Equal</source> <source>Equal</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="54"/> <location filename="qml/page/T_TabView.qml" line="53"/>
<source>SizeToContent</source> <source>SizeToContent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="61"/> <location filename="qml/page/T_TabView.qml" line="60"/>
<source>Compact</source> <source>Compact</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="69"/> <location filename="qml/page/T_TabView.qml" line="68"/>
<source>Tab Close Button Visibility:</source> <source>Tab Close Button Visibility:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="74"/> <location filename="qml/page/T_TabView.qml" line="72"/>
<location filename="qml/page/T_TabView.qml" line="84"/> <location filename="qml/page/T_TabView.qml" line="82"/>
<source>Always</source> <source>Always</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="77"/> <location filename="qml/page/T_TabView.qml" line="75"/>
<source>Never</source> <source>Never</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TabView.qml" line="91"/> <location filename="qml/page/T_TabView.qml" line="89"/>
<source>OnHover</source> <source>OnHover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -219,7 +219,7 @@ FluScrollablePage{
FluLoadingButton{ FluLoadingButton{
id: btn_loading id: btn_loading
loading: loading_button_switch.checked loading: loading_button_switch.checked
text: qsTr("Loading Button") text: loading_button_switch.checked ? qsTr("Loading") : qsTr("Loading Button")
anchors{ anchors{
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
left: parent.left left: parent.left
@ -235,7 +235,7 @@ FluScrollablePage{
right: parent.right right: parent.right
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
text: qsTr("Loading") text: loading_button_switch.checked ? qsTr("Loading") : qsTr("Normal")
} }
} }
CodeExpander{ CodeExpander{

View File

@ -13,6 +13,6 @@ class AppInfo : public QObject {
explicit AppInfo(QObject *parent = nullptr); explicit AppInfo(QObject *parent = nullptr);
public: public:
SINGLETON(AppInfo) EXAMPLESINGLETON(AppInfo)
[[maybe_unused]] Q_INVOKABLE void testCrash(); [[maybe_unused]] Q_INVOKABLE void testCrash();
}; };

View File

@ -15,7 +15,7 @@ private:
void templateToFile(const QString &source, const QString &dest, Args &&...args); void templateToFile(const QString &source, const QString &dest, Args &&...args);
public: public:
SINGLETON(InitializrHelper) EXAMPLESINGLETON(InitializrHelper)
~InitializrHelper() override; ~InitializrHelper() override;
[[maybe_unused]] Q_INVOKABLE void generate(const QString &name, const QString &path); [[maybe_unused]] Q_INVOKABLE void generate(const QString &name, const QString &path);
Q_SIGNAL void error(const QString &message); Q_SIGNAL void error(const QString &message);

View File

@ -144,7 +144,7 @@ private:
explicit Network(QObject *parent = nullptr); explicit Network(QObject *parent = nullptr);
public: public:
SINGLETON(Network) EXAMPLESINGLETON(Network)
static Network *create(QQmlEngine *qmlEngine, QJSEngine *jsEngine) { static Network *create(QQmlEngine *qmlEngine, QJSEngine *jsEngine) {
return getInstance(); return getInstance();

View File

@ -15,7 +15,7 @@ private:
explicit SettingsHelper(QObject *parent = nullptr); explicit SettingsHelper(QObject *parent = nullptr);
public: public:
SINGLETON(SettingsHelper) EXAMPLESINGLETON(SettingsHelper)
~SettingsHelper() override; ~SettingsHelper() override;
void init(char *argv[]); void init(char *argv[]);
Q_INVOKABLE void saveDarkMode(int darkModel) { Q_INVOKABLE void saveDarkMode(int darkModel) {

View File

@ -14,7 +14,7 @@ private:
[[maybe_unused]] explicit TranslateHelper(QObject *parent = nullptr); [[maybe_unused]] explicit TranslateHelper(QObject *parent = nullptr);
public: public:
SINGLETON(TranslateHelper) EXAMPLESINGLETON(TranslateHelper)
~TranslateHelper() override; ~TranslateHelper() override;
void init(QQmlEngine *engine); void init(QQmlEngine *engine);

View File

@ -4,22 +4,22 @@
* @brief The Singleton class * @brief The Singleton class
*/ */
template <typename T> template <typename T>
class Singleton { class ExampleSingleton {
public: public:
static T *getInstance(); static T *getInstance();
}; };
template <typename T> template <typename T>
T *Singleton<T>::getInstance() { T *ExampleSingleton<T>::getInstance() {
static T *instance = new T(); static T *instance = new T();
return instance; return instance;
} }
#define SINGLETON(Class) \ #define EXAMPLESINGLETON(Class) \
private: \ private: \
friend class Singleton<Class>; \ friend class ExampleSingleton<Class>; \
\ \
public: \ public: \
static Class *getInstance() { \ static Class *getInstance() { \
return Singleton<Class>::getInstance(); \ return ExampleSingleton<Class>::getInstance(); \
} }

View File

@ -107,7 +107,7 @@ void FluTreeModel::checkRow(int row, bool checked) {
void FluTreeModel::setDataSource(QList<QMap<QString, QVariant>> data) { void FluTreeModel::setDataSource(QList<QMap<QString, QVariant>> data) {
_dataSource.clear(); _dataSource.clear();
if (_root) { if (_root) {
delete _root; _root->deleteLater();
_root = nullptr; _root = nullptr;
} }
_root = new FluTreeNode(this); _root = new FluTreeNode(this);
@ -115,7 +115,7 @@ void FluTreeModel::setDataSource(QList<QMap<QString, QVariant>> data) {
while (data.count() > 0) { while (data.count() > 0) {
auto item = data.at(data.count() - 1); auto item = data.at(data.count() - 1);
data.pop_back(); data.pop_back();
auto *node = new FluTreeNode(this); auto *node = new FluTreeNode(_root);
node->_depth = item.value("__depth").toInt(); node->_depth = item.value("__depth").toInt();
node->_parent = item.value("__parent").value<FluTreeNode *>(); node->_parent = item.value("__parent").value<FluTreeNode *>();
node->_data = item; node->_data = item;

View File

@ -474,6 +474,7 @@ Rectangle {
} }
return {} return {}
} }
active: rowModel !== undefined && rowModel !== null
sourceComponent: { sourceComponent: {
if(column === 0) if(column === 0)
return com_column return com_column

View File

@ -474,6 +474,7 @@ Rectangle {
} }
return {} return {}
} }
active: rowModel !== undefined && rowModel !== null
sourceComponent: { sourceComponent: {
if(column === 0) if(column === 0)
return com_column return com_column