From 2acec5f20a08bcdd38aff0938406e0664e19bebf Mon Sep 17 00:00:00 2001 From: notify Date: Fri, 19 May 2023 10:08:36 +0800 Subject: [PATCH] Qmldir (#155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重组qml文件,使用qmldir文件实现模块化 --- .github/workflows/build-windows.yml | 2 +- .../RoomElement => Fk}/Cheat/CardDetail.qml | 0 .../RoomElement => Fk}/Cheat/FreeAssign.qml | 2 +- .../Cheat/GeneralDetail.qml | 0 .../RoomElement => Fk}/Cheat/PlayerDetail.qml | 0 .../RoomElement => Fk}/Cheat/SameConvert.qml | 2 +- Fk/Cheat/qmldir | 6 + {qml/Pages => Fk}/Common/ChatBox.qml | 0 {qml/Pages => Fk}/Common/LogEdit.qml | 0 Fk/Common/qmldir | 3 + {qml => Fk}/Config.qml | 0 .../LobbyElement/AudioSetting.qml | 0 {qml/Pages => Fk}/LobbyElement/BGSetting.qml | 0 {qml/Pages => Fk}/LobbyElement/CreateRoom.qml | 0 .../Pages => Fk}/LobbyElement/EditProfile.qml | 0 .../LobbyElement/PersonalSettings.qml | 4 +- .../LobbyElement/RoomGeneralSettings.qml | 0 .../LobbyElement/RoomPackageSettings.qml | 0 {qml/Pages => Fk}/LobbyElement/UserInfo.qml | 0 Fk/LobbyElement/qmldir | 9 + {qml => Fk}/Logic.js | 0 {qml => Fk}/Pages/About.qml | 0 {qml => Fk}/Pages/CardsOverview.qml | 2 +- {qml => Fk}/Pages/Danmaku.qml | 0 {qml => Fk}/Pages/GeneralsOverview.qml | 2 +- {qml => Fk}/Pages/Init.qml | 0 {qml => Fk}/Pages/Lobby.qml | 10 +- {qml => Fk}/Pages/Logic.js | 0 {qml => Fk}/Pages/MetroButton.qml | 1 - {qml => Fk}/Pages/ModesOverview.qml | 0 {qml => Fk}/Pages/PackageManage.qml | 0 {qml => Fk}/Pages/Room.qml | 38 ++-- {qml => Fk}/Pages/RoomLogic.js | 20 +- {qml => Fk}/Pages/TileButton.qml | 2 +- Fk/Pages/qmldir | 12 ++ .../PhotoElement/DelayedTrickArea.qml | 4 +- .../PhotoElement/EquipArea.qml | 5 +- .../PhotoElement/EquipItem.qml | 5 +- .../RoomElement => Fk}/PhotoElement/HpBar.qml | 5 +- .../PhotoElement/LimitSkillArea.qml | 0 .../PhotoElement/LimitSkillItem.qml | 2 +- .../PhotoElement/Magatama.qml | 3 +- .../PhotoElement/MarkArea.qml | 2 +- .../PhotoElement/RoleComboBox.qml | 2 +- .../PhotoElement/Shield.qml | 2 +- .../PhotoElement/SpecialMarkArea.qml | 0 Fk/PhotoElement/qmldir | 12 ++ {qml/Pages => Fk}/RoomElement/AG.qml | 0 {qml/Pages => Fk}/RoomElement/CardArea.qml | 1 - {qml/Pages => Fk}/RoomElement/CardItem.qml | 4 +- {qml/Pages => Fk}/RoomElement/ChoiceBox.qml | 2 +- .../RoomElement/ChooseGeneralBox.qml | 13 +- {qml/Pages => Fk}/RoomElement/Dashboard.qml | 2 +- {qml/Pages => Fk}/RoomElement/GameOverBox.qml | 2 +- .../RoomElement/GeneralCardItem.qml | 4 +- {qml/Pages => Fk}/RoomElement/GlowText.qml | 0 {qml/Pages => Fk}/RoomElement/GraphicsBox.qml | 0 {qml/Pages => Fk}/RoomElement/GuanxingBox.qml | 2 +- .../Pages => Fk}/RoomElement/HandcardArea.qml | 2 +- .../RoomElement/IndicatorLine.qml | 0 .../RoomElement/InvisibleCardArea.qml | 2 +- {qml/Pages => Fk}/RoomElement/MiscStatus.qml | 2 +- {qml/Pages => Fk}/RoomElement/Photo.qml | 6 +- .../RoomElement/PixmapAnimation.qml | 2 +- .../RoomElement/PlayerCardBox.qml | 2 +- {qml/Pages => Fk}/RoomElement/SkillArea.qml | 0 {qml/Pages => Fk}/RoomElement/SkillButton.qml | 0 .../RoomElement/SkillInvokeAnimation.qml | 2 +- {qml/Pages => Fk}/RoomElement/TablePile.qml | 0 {qml/Pages => Fk}/RoomElement/ViewPile.qml | 0 Fk/RoomElement/qmldir | 24 +++ .../SkillInteraction/SkillCombo.qml | 4 +- .../SkillInteraction/SkillSpin.qml | 1 - Fk/SkillInteraction/qmldir | 3 + {qml => Fk}/Splash.qml | 0 {qml => Fk}/Toast.qml | 0 {qml => Fk}/ToastManager.qml | 0 {qml => Fk}/main.qml | 88 +-------- Fk/qmldir | 3 + {qml/Pages => Fk}/skin-bank.js | 0 {qml => Fk}/util.js | 0 android/copy_assets.sh | 1 + qml/Pages/WebInit.qml | 187 ------------------ src/core/util.cpp | 2 + src/main.cpp | 4 +- 85 files changed, 166 insertions(+), 356 deletions(-) rename {qml/Pages/RoomElement => Fk}/Cheat/CardDetail.qml (100%) rename {qml/Pages/RoomElement => Fk}/Cheat/FreeAssign.qml (99%) rename {qml/Pages/RoomElement => Fk}/Cheat/GeneralDetail.qml (100%) rename {qml/Pages/RoomElement => Fk}/Cheat/PlayerDetail.qml (100%) rename {qml/Pages/RoomElement => Fk}/Cheat/SameConvert.qml (98%) create mode 100644 Fk/Cheat/qmldir rename {qml/Pages => Fk}/Common/ChatBox.qml (100%) rename {qml/Pages => Fk}/Common/LogEdit.qml (100%) create mode 100644 Fk/Common/qmldir rename {qml => Fk}/Config.qml (100%) rename {qml/Pages => Fk}/LobbyElement/AudioSetting.qml (100%) rename {qml/Pages => Fk}/LobbyElement/BGSetting.qml (100%) rename {qml/Pages => Fk}/LobbyElement/CreateRoom.qml (100%) rename {qml/Pages => Fk}/LobbyElement/EditProfile.qml (100%) rename {qml/Pages => Fk}/LobbyElement/PersonalSettings.qml (90%) rename {qml/Pages => Fk}/LobbyElement/RoomGeneralSettings.qml (100%) rename {qml/Pages => Fk}/LobbyElement/RoomPackageSettings.qml (100%) rename {qml/Pages => Fk}/LobbyElement/UserInfo.qml (100%) create mode 100644 Fk/LobbyElement/qmldir rename {qml => Fk}/Logic.js (100%) rename {qml => Fk}/Pages/About.qml (100%) rename {qml => Fk}/Pages/CardsOverview.qml (99%) rename {qml => Fk}/Pages/Danmaku.qml (100%) rename {qml => Fk}/Pages/GeneralsOverview.qml (99%) rename {qml => Fk}/Pages/Init.qml (100%) rename {qml => Fk}/Pages/Lobby.qml (96%) rename {qml => Fk}/Pages/Logic.js (100%) rename {qml => Fk}/Pages/MetroButton.qml (99%) rename {qml => Fk}/Pages/ModesOverview.qml (100%) rename {qml => Fk}/Pages/PackageManage.qml (100%) rename {qml => Fk}/Pages/Room.qml (94%) rename {qml => Fk}/Pages/RoomLogic.js (97%) rename {qml => Fk}/Pages/TileButton.qml (98%) create mode 100644 Fk/Pages/qmldir rename {qml/Pages/RoomElement => Fk}/PhotoElement/DelayedTrickArea.qml (96%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/EquipArea.qml (97%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/EquipItem.qml (96%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/HpBar.qml (97%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/LimitSkillArea.qml (100%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/LimitSkillItem.qml (97%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/Magatama.qml (95%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/MarkArea.qml (98%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/RoleComboBox.qml (95%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/Shield.qml (90%) rename {qml/Pages/RoomElement => Fk}/PhotoElement/SpecialMarkArea.qml (100%) create mode 100644 Fk/PhotoElement/qmldir rename {qml/Pages => Fk}/RoomElement/AG.qml (100%) rename {qml/Pages => Fk}/RoomElement/CardArea.qml (99%) rename {qml/Pages => Fk}/RoomElement/CardItem.qml (98%) rename {qml/Pages => Fk}/RoomElement/ChoiceBox.qml (97%) rename {qml/Pages => Fk}/RoomElement/ChooseGeneralBox.qml (94%) rename {qml/Pages => Fk}/RoomElement/Dashboard.qml (99%) rename {qml/Pages => Fk}/RoomElement/GameOverBox.qml (97%) rename {qml/Pages => Fk}/RoomElement/GeneralCardItem.qml (98%) rename {qml/Pages => Fk}/RoomElement/GlowText.qml (100%) rename {qml/Pages => Fk}/RoomElement/GraphicsBox.qml (100%) rename {qml/Pages => Fk}/RoomElement/GuanxingBox.qml (99%) rename {qml/Pages => Fk}/RoomElement/HandcardArea.qml (98%) rename {qml/Pages => Fk}/RoomElement/IndicatorLine.qml (100%) rename {qml/Pages => Fk}/RoomElement/InvisibleCardArea.qml (97%) rename {qml/Pages => Fk}/RoomElement/MiscStatus.qml (97%) rename {qml/Pages => Fk}/RoomElement/Photo.qml (98%) rename {qml/Pages => Fk}/RoomElement/PixmapAnimation.qml (97%) rename {qml/Pages => Fk}/RoomElement/PlayerCardBox.qml (99%) rename {qml/Pages => Fk}/RoomElement/SkillArea.qml (100%) rename {qml/Pages => Fk}/RoomElement/SkillButton.qml (100%) rename {qml/Pages => Fk}/RoomElement/SkillInvokeAnimation.qml (97%) rename {qml/Pages => Fk}/RoomElement/TablePile.qml (100%) rename {qml/Pages => Fk}/RoomElement/ViewPile.qml (100%) create mode 100644 Fk/RoomElement/qmldir rename {qml/Pages/RoomElement => Fk}/SkillInteraction/SkillCombo.qml (85%) rename {qml/Pages/RoomElement => Fk}/SkillInteraction/SkillSpin.qml (99%) create mode 100644 Fk/SkillInteraction/qmldir rename {qml => Fk}/Splash.qml (100%) rename {qml => Fk}/Toast.qml (100%) rename {qml => Fk}/ToastManager.qml (100%) rename {qml => Fk}/main.qml (71%) create mode 100644 Fk/qmldir rename {qml/Pages => Fk}/skin-bank.js (100%) rename {qml => Fk}/util.js (100%) delete mode 100644 qml/Pages/WebInit.qml diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 8d457078..631010a5 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -65,7 +65,7 @@ jobs: run: | mkdir FreeKill-release cp build/FreeKill.exe FreeKill-release - cp -r qml FreeKill-release + cp -r qml Fk FreeKill-release cd FreeKill-release windeployqt FreeKill.exe cp -r ../.git . diff --git a/qml/Pages/RoomElement/Cheat/CardDetail.qml b/Fk/Cheat/CardDetail.qml similarity index 100% rename from qml/Pages/RoomElement/Cheat/CardDetail.qml rename to Fk/Cheat/CardDetail.qml diff --git a/qml/Pages/RoomElement/Cheat/FreeAssign.qml b/Fk/Cheat/FreeAssign.qml similarity index 99% rename from qml/Pages/RoomElement/Cheat/FreeAssign.qml rename to Fk/Cheat/FreeAssign.qml index 1e57aaaf..1ae3fb87 100644 --- a/qml/Pages/RoomElement/Cheat/FreeAssign.qml +++ b/Fk/Cheat/FreeAssign.qml @@ -3,7 +3,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import ".." +import Fk.RoomElement Item { id: root diff --git a/qml/Pages/RoomElement/Cheat/GeneralDetail.qml b/Fk/Cheat/GeneralDetail.qml similarity index 100% rename from qml/Pages/RoomElement/Cheat/GeneralDetail.qml rename to Fk/Cheat/GeneralDetail.qml diff --git a/qml/Pages/RoomElement/Cheat/PlayerDetail.qml b/Fk/Cheat/PlayerDetail.qml similarity index 100% rename from qml/Pages/RoomElement/Cheat/PlayerDetail.qml rename to Fk/Cheat/PlayerDetail.qml diff --git a/qml/Pages/RoomElement/Cheat/SameConvert.qml b/Fk/Cheat/SameConvert.qml similarity index 98% rename from qml/Pages/RoomElement/Cheat/SameConvert.qml rename to Fk/Cheat/SameConvert.qml index 0053e8ab..ae0fd80a 100644 --- a/qml/Pages/RoomElement/Cheat/SameConvert.qml +++ b/Fk/Cheat/SameConvert.qml @@ -3,7 +3,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import ".." +import Fk.RoomElement Item { id: root diff --git a/Fk/Cheat/qmldir b/Fk/Cheat/qmldir new file mode 100644 index 00000000..da27f67e --- /dev/null +++ b/Fk/Cheat/qmldir @@ -0,0 +1,6 @@ +module Fk.Cheat +CardDetail 1.0 CardDetail.qml +FreeAssign 1.0 FreeAssign.qml +GeneralDetail 1.0 GeneralDetail.qml +PlayerDetail 1.0 PlayerDetail.qml +SameConvert 1.0 SameConvert.qml diff --git a/qml/Pages/Common/ChatBox.qml b/Fk/Common/ChatBox.qml similarity index 100% rename from qml/Pages/Common/ChatBox.qml rename to Fk/Common/ChatBox.qml diff --git a/qml/Pages/Common/LogEdit.qml b/Fk/Common/LogEdit.qml similarity index 100% rename from qml/Pages/Common/LogEdit.qml rename to Fk/Common/LogEdit.qml diff --git a/Fk/Common/qmldir b/Fk/Common/qmldir new file mode 100644 index 00000000..410e8358 --- /dev/null +++ b/Fk/Common/qmldir @@ -0,0 +1,3 @@ +module Fk.Common +ChatBox 1.0 ChatBox.qml +LogEdit 1.0 LogEdit.qml diff --git a/qml/Config.qml b/Fk/Config.qml similarity index 100% rename from qml/Config.qml rename to Fk/Config.qml diff --git a/qml/Pages/LobbyElement/AudioSetting.qml b/Fk/LobbyElement/AudioSetting.qml similarity index 100% rename from qml/Pages/LobbyElement/AudioSetting.qml rename to Fk/LobbyElement/AudioSetting.qml diff --git a/qml/Pages/LobbyElement/BGSetting.qml b/Fk/LobbyElement/BGSetting.qml similarity index 100% rename from qml/Pages/LobbyElement/BGSetting.qml rename to Fk/LobbyElement/BGSetting.qml diff --git a/qml/Pages/LobbyElement/CreateRoom.qml b/Fk/LobbyElement/CreateRoom.qml similarity index 100% rename from qml/Pages/LobbyElement/CreateRoom.qml rename to Fk/LobbyElement/CreateRoom.qml diff --git a/qml/Pages/LobbyElement/EditProfile.qml b/Fk/LobbyElement/EditProfile.qml similarity index 100% rename from qml/Pages/LobbyElement/EditProfile.qml rename to Fk/LobbyElement/EditProfile.qml diff --git a/qml/Pages/LobbyElement/PersonalSettings.qml b/Fk/LobbyElement/PersonalSettings.qml similarity index 90% rename from qml/Pages/LobbyElement/PersonalSettings.qml rename to Fk/LobbyElement/PersonalSettings.qml index d6434fb9..a278972d 100644 --- a/qml/Pages/LobbyElement/PersonalSettings.qml +++ b/Fk/LobbyElement/PersonalSettings.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Layouts -import "../skin-bank.js" as SkinBank +import Fk Item { id: root @@ -49,7 +49,7 @@ Item { TapHandler { onTapped: { - lobby_dialog.source = "LobbyElement/EditProfile.qml"; + lobby_dialog.sourceComponent = Qt.createComponent("Fk.LobbyElement", "EditProfile"); lobby_drawer.open(); } } diff --git a/qml/Pages/LobbyElement/RoomGeneralSettings.qml b/Fk/LobbyElement/RoomGeneralSettings.qml similarity index 100% rename from qml/Pages/LobbyElement/RoomGeneralSettings.qml rename to Fk/LobbyElement/RoomGeneralSettings.qml diff --git a/qml/Pages/LobbyElement/RoomPackageSettings.qml b/Fk/LobbyElement/RoomPackageSettings.qml similarity index 100% rename from qml/Pages/LobbyElement/RoomPackageSettings.qml rename to Fk/LobbyElement/RoomPackageSettings.qml diff --git a/qml/Pages/LobbyElement/UserInfo.qml b/Fk/LobbyElement/UserInfo.qml similarity index 100% rename from qml/Pages/LobbyElement/UserInfo.qml rename to Fk/LobbyElement/UserInfo.qml diff --git a/Fk/LobbyElement/qmldir b/Fk/LobbyElement/qmldir new file mode 100644 index 00000000..8e3b854b --- /dev/null +++ b/Fk/LobbyElement/qmldir @@ -0,0 +1,9 @@ +module Fk.LobbyElement +AudioSetting 1.0 AudioSetting.qml +BGSetting 1.0 BGSetting.qml +CreateRoom 1.0 CreateRoom.qml +EditProfile 1.0 EditProfile.qml +PersonalSettings 1.0 PersonalSettings.qml +RoomGeneralSettings 1.0 RoomGeneralSettings.qml +RoomPackageSettings 1.0 RoomPackageSettings.qml +UserInfo 1.0 UserInfo.qml diff --git a/qml/Logic.js b/Fk/Logic.js similarity index 100% rename from qml/Logic.js rename to Fk/Logic.js diff --git a/qml/Pages/About.qml b/Fk/Pages/About.qml similarity index 100% rename from qml/Pages/About.qml rename to Fk/Pages/About.qml diff --git a/qml/Pages/CardsOverview.qml b/Fk/Pages/CardsOverview.qml similarity index 99% rename from qml/Pages/CardsOverview.qml rename to Fk/Pages/CardsOverview.qml index 99ac3a0f..115c1d11 100644 --- a/qml/Pages/CardsOverview.qml +++ b/Fk/Pages/CardsOverview.qml @@ -3,7 +3,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import "RoomElement" +import Fk.RoomElement Item { id: root diff --git a/qml/Pages/Danmaku.qml b/Fk/Pages/Danmaku.qml similarity index 100% rename from qml/Pages/Danmaku.qml rename to Fk/Pages/Danmaku.qml diff --git a/qml/Pages/GeneralsOverview.qml b/Fk/Pages/GeneralsOverview.qml similarity index 99% rename from qml/Pages/GeneralsOverview.qml rename to Fk/Pages/GeneralsOverview.qml index 6e5d27dc..8cc0785d 100644 --- a/qml/Pages/GeneralsOverview.qml +++ b/Fk/Pages/GeneralsOverview.qml @@ -3,7 +3,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import "RoomElement" +import Fk.RoomElement Item { id: root diff --git a/qml/Pages/Init.qml b/Fk/Pages/Init.qml similarity index 100% rename from qml/Pages/Init.qml rename to Fk/Pages/Init.qml diff --git a/qml/Pages/Lobby.qml b/Fk/Pages/Lobby.qml similarity index 96% rename from qml/Pages/Lobby.qml rename to Fk/Pages/Lobby.qml index 53386c17..ab969a59 100644 --- a/qml/Pages/Lobby.qml +++ b/Fk/Pages/Lobby.qml @@ -4,8 +4,8 @@ import QtQuick import QtQuick.Controls import QtQuick.Window import QtQuick.Layouts -import "LobbyElement" -import "Common" +import Fk.LobbyElement +import Fk.Common import "Logic.js" as Logic Item { @@ -154,7 +154,7 @@ Item { icon.name: "media-playback-start" text: Backend.translate("Create Room") onClicked: { - lobby_dialog.source = "LobbyElement/CreateRoom.qml"; + lobby_dialog.sourceComponent = Qt.createComponent("Fk.LobbyElement", "CreateRoom"); lobby_drawer.open(); config.observing = false; } @@ -225,10 +225,11 @@ Item { if (item === null) return; item.finished.connect(() => { - source = ""; + sourceComponent = undefined; lobby_drawer.close(); }); } + onSourceComponentChanged: sourceChanged(); } } @@ -289,4 +290,3 @@ Item { toast.show(Backend.translate("$WelcomeToLobby")); } } - diff --git a/qml/Pages/Logic.js b/Fk/Pages/Logic.js similarity index 100% rename from qml/Pages/Logic.js rename to Fk/Pages/Logic.js diff --git a/qml/Pages/MetroButton.qml b/Fk/Pages/MetroButton.qml similarity index 99% rename from qml/Pages/MetroButton.qml rename to Fk/Pages/MetroButton.qml index a9ade3cb..aab1b980 100644 --- a/qml/Pages/MetroButton.qml +++ b/Fk/Pages/MetroButton.qml @@ -71,4 +71,3 @@ Item { } } } - diff --git a/qml/Pages/ModesOverview.qml b/Fk/Pages/ModesOverview.qml similarity index 100% rename from qml/Pages/ModesOverview.qml rename to Fk/Pages/ModesOverview.qml diff --git a/qml/Pages/PackageManage.qml b/Fk/Pages/PackageManage.qml similarity index 100% rename from qml/Pages/PackageManage.qml rename to Fk/Pages/PackageManage.qml diff --git a/qml/Pages/Room.qml b/Fk/Pages/Room.qml similarity index 94% rename from qml/Pages/Room.qml rename to Fk/Pages/Room.qml index 64d03dc9..1835476b 100644 --- a/qml/Pages/Room.qml +++ b/Fk/Pages/Room.qml @@ -4,10 +4,10 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtMultimedia -import "Common" -import "RoomElement" +import Fk +import Fk.Common +import Fk.RoomElement import "RoomLogic.js" as Logic -import "skin-bank.js" as SkinBank Item { @@ -100,7 +100,7 @@ Item { from: "*"; to: "notactive" ScriptAction { script: { - skillInteraction.source = ""; + skillInteraction.sourceComponent = undefined; promptText = ""; progress.visible = false; okCancel.visible = false; @@ -128,7 +128,7 @@ Item { from: "*"; to: "playing" ScriptAction { script: { - skillInteraction.source = ""; + skillInteraction.sourceComponent = undefined; dashboard.enableCards(); dashboard.enableSkills(); progress.visible = true; @@ -143,7 +143,7 @@ Item { from: "*"; to: "responding" ScriptAction { script: { - skillInteraction.source = ""; + skillInteraction.sourceComponent = undefined; dashboard.enableCards(responding_card); dashboard.enableSkills(responding_card, respond_play); autoPending = false; @@ -157,7 +157,7 @@ Item { from: "*"; to: "replying" ScriptAction { script: { - skillInteraction.source = ""; + skillInteraction.sourceComponent = undefined; dashboard.disableAllCards(); dashboard.disableSkills(); progress.visible = true; @@ -435,7 +435,7 @@ Item { if (item === null) return; item.finished.connect(function(){ - source = ""; + sourceComponent = undefined; }); item.widthChanged.connect(function(){ popupBox.moveToCenter(); @@ -445,6 +445,7 @@ Item { }); moveToCenter(); } + onSourceComponentChanged: sourceChanged(); function moveToCenter() { @@ -460,11 +461,12 @@ Item { onSourceChanged: { if (item === null) return; - item.finished.connect(() => source = ""); + item.finished.connect(() => sourceComponent = undefined); item.widthChanged.connect(() => manualBox.moveToCenter()); item.heightChanged.connect(() => manualBox.moveToCenter()); moveToCenter(); } + onSourceComponentChanged: sourceChanged(); function moveToCenter() { @@ -486,30 +488,30 @@ Item { Backend.callLuaFunction("SetInteractionDataOfSkill", [skill_name, "null"]); switch (data.type) { case "combo": - skillInteraction.source = "RoomElement/SkillInteraction/SkillCombo.qml"; + skillInteraction.sourceComponent = Qt.createComponent("Fk.SkillInteraction", "SkillCombo"); skillInteraction.item.skill = skill_name; skillInteraction.item.default_choice = data["default"]; skillInteraction.item.choices = data.choices; - skillInteraction.item.clicked(); + // skillInteraction.item.clicked(); break; case "spin": - skillInteraction.source = "RoomElement/SkillInteraction/SkillSpin.qml"; + skillInteraction.sourceComponent = Qt.createComponent("Fk.SkillInteraction", "SkillSpin"); skillInteraction.item.skill = skill_name; skillInteraction.item.from = data.from; skillInteraction.item.to = data.to; break; default: - skillInteraction.source = ""; + skillInteraction.sourceComponent = undefined; break; } } else { - skillInteraction.source = ""; + skillInteraction.sourceComponent = undefined; } dashboard.startPending(skill_name); cancelButton.enabled = true; } else { - skillInteraction.source = ""; + skillInteraction.sourceComponent = undefined; Logic.doCancelButton(); } } @@ -582,6 +584,7 @@ Item { cheatDrawer.close(); }); } + onSourceComponentChanged: sourceChanged(); } } @@ -798,8 +801,8 @@ Item { } } - function startCheat(source, data) { - cheatLoader.source = source; + function startCheat(type, data) { + cheatLoader.sourceComponent = Qt.createComponent("Fk.Cheat", type); cheatLoader.item.extra_data = data; cheatDrawer.open(); } @@ -834,4 +837,3 @@ Item { Logic.arrangePhotos(); } } - diff --git a/qml/Pages/RoomLogic.js b/Fk/Pages/RoomLogic.js similarity index 97% rename from qml/Pages/RoomLogic.js rename to Fk/Pages/RoomLogic.js index 71fddef4..1b150ac4 100644 --- a/qml/Pages/RoomLogic.js +++ b/Fk/Pages/RoomLogic.js @@ -227,7 +227,7 @@ function setEmotion(id, emotion, isCardId) { // TODO: set picture emotion return; } - let component = Qt.createComponent("RoomElement/PixmapAnimation.qml"); + let component = Qt.createComponent("Fk.RoomElement", "PixmapAnimation"); if (component.status !== Component.Ready) return; @@ -276,7 +276,7 @@ function changeHp(id, delta, losthp) { } function doIndicate(from, tos) { - let component = Qt.createComponent("RoomElement/IndicatorLine.qml"); + let component = Qt.createComponent("Fk.RoomElement", "IndicatorLine"); if (component.status !== Component.Ready) return; @@ -593,7 +593,7 @@ callbacks["AskForGeneral"] = function(jsonData) { let heg = data[2]; roomScene.promptText = Backend.translate("#AskForGeneral"); roomScene.state = "replying"; - roomScene.popupBox.source = "RoomElement/ChooseGeneralBox.qml"; + roomScene.popupBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "ChooseGeneralBox"); let box = roomScene.popupBox.item; box.accepted.connect(() => { replyToServer(JSON.stringify(box.choices)); @@ -626,7 +626,7 @@ callbacks["AskForGuanxing"] = function(jsonData) { let min_bottom_cards = data.min_bottom_cards; let max_bottom_cards = data.max_bottom_cards; roomScene.state = "replying"; - roomScene.popupBox.source = "RoomElement/GuanxingBox.qml"; + roomScene.popupBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "GuanxingBox"); data.cards.forEach(id => { let d = Backend.callLuaFunction("GetCardData", [id]); cards.push(JSON.parse(d)); @@ -662,7 +662,7 @@ callbacks["AskForChoice"] = function(jsonData) { roomScene.promptText = processPrompt(prompt); } roomScene.state = "replying"; - roomScene.popupBox.source = "RoomElement/ChoiceBox.qml"; + roomScene.popupBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "ChoiceBox"); let box = roomScene.popupBox.item; box.options = choices; box.skill_name = skill_name; @@ -701,7 +701,7 @@ callbacks["AskForCardChosen"] = function(jsonData) { roomScene.promptText = Backend.translate("#AskForChooseCard") .arg(Backend.translate(reason)); roomScene.state = "replying"; - roomScene.popupBox.source = "RoomElement/PlayerCardBox.qml"; + roomScene.popupBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "PlayerCardBox"); let box = roomScene.popupBox.item; box.addHandcards(handcards); box.addEquips(equips); @@ -744,7 +744,7 @@ callbacks["AskForCardsChosen"] = function(jsonData) { roomScene.promptText = Backend.translate("#AskForChooseCard") .arg(Backend.translate(reason)); roomScene.state = "replying"; - roomScene.popupBox.source = "RoomElement/PlayerCardBox.qml"; + roomScene.popupBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "PlayerCardBox"); let box = roomScene.popupBox.item; box.multiChoose = true; box.min = min; @@ -933,7 +933,7 @@ callbacks["Animate"] = function(jsonData) { } case "InvokeSkill": { let id = data.player; - let component = Qt.createComponent("RoomElement/SkillInvokeAnimation.qml"); + let component = Qt.createComponent("Fk.RoomElement", "SkillInvokeAnimation"); if (component.status !== Component.Ready) return; @@ -997,7 +997,7 @@ callbacks["LogEvent"] = function(jsonData) { callbacks["GameOver"] = function(jsonData) { roomScene.state = "notactive"; - roomScene.popupBox.source = "RoomElement/GameOverBox.qml"; + roomScene.popupBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "GameOverBox"); let box = roomScene.popupBox.item; box.winner = jsonData; roomScene.isStarted = false; @@ -1006,7 +1006,7 @@ callbacks["GameOver"] = function(jsonData) { callbacks["FillAG"] = (j) => { let data = JSON.parse(j); let ids = data[0]; - roomScene.manualBox.source = "RoomElement/AG.qml"; + roomScene.manualBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "AG"); roomScene.manualBox.item.addIds(ids); } diff --git a/qml/Pages/TileButton.qml b/Fk/Pages/TileButton.qml similarity index 98% rename from qml/Pages/TileButton.qml rename to Fk/Pages/TileButton.qml index a6731789..4ffc3be2 100644 --- a/qml/Pages/TileButton.qml +++ b/Fk/Pages/TileButton.qml @@ -2,7 +2,7 @@ import QtQuick import Qt5Compat.GraphicalEffects -import "skin-bank.js" as SkinBank +import Fk Item { property alias text: labelText.text diff --git a/Fk/Pages/qmldir b/Fk/Pages/qmldir new file mode 100644 index 00000000..63044414 --- /dev/null +++ b/Fk/Pages/qmldir @@ -0,0 +1,12 @@ +module Fk.Pages +About 1.0 About.qml +CardsOverview 1.0 CardsOverview.qml +Danmaku 1.0 Danmaku.qml +GeneralsOverview 1.0 GeneralsOverview.qml +Init 1.0 Init.qml +Lobby 1.0 Lobby.qml +MetroButton 1.0 MetroButton.qml +ModesOverview 1.0 ModesOverview.qml +PackageManage 1.0 PackageManage.qml +Room 1.0 Room.qml +TileButton 1.0 TileButton.qml diff --git a/qml/Pages/RoomElement/PhotoElement/DelayedTrickArea.qml b/Fk/PhotoElement/DelayedTrickArea.qml similarity index 96% rename from qml/Pages/RoomElement/PhotoElement/DelayedTrickArea.qml rename to Fk/PhotoElement/DelayedTrickArea.qml index 40b4c9cc..b1db9b20 100644 --- a/qml/Pages/RoomElement/PhotoElement/DelayedTrickArea.qml +++ b/Fk/PhotoElement/DelayedTrickArea.qml @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import ".." -import "../../skin-bank.js" as SkinBank +import Fk +import Fk.RoomElement Item { InvisibleCardArea { diff --git a/qml/Pages/RoomElement/PhotoElement/EquipArea.qml b/Fk/PhotoElement/EquipArea.qml similarity index 97% rename from qml/Pages/RoomElement/PhotoElement/EquipArea.qml rename to Fk/PhotoElement/EquipArea.qml index 0fc2c22b..9de14780 100644 --- a/qml/Pages/RoomElement/PhotoElement/EquipArea.qml +++ b/Fk/PhotoElement/EquipArea.qml @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import ".." -import "../../skin-bank.js" as SkinBank +import Fk +import Fk.RoomElement /* Layout of EquipArea: * | Treasure | @@ -124,4 +124,3 @@ Column { return area.cards; } } - diff --git a/qml/Pages/RoomElement/PhotoElement/EquipItem.qml b/Fk/PhotoElement/EquipItem.qml similarity index 96% rename from qml/Pages/RoomElement/PhotoElement/EquipItem.qml rename to Fk/PhotoElement/EquipItem.qml index 4a2dd06d..7e2e9dc6 100644 --- a/qml/Pages/RoomElement/PhotoElement/EquipItem.qml +++ b/Fk/PhotoElement/EquipItem.qml @@ -1,9 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import ".." -import "../../../util.js" as Utility -import "../../skin-bank.js" as SkinBank +import Fk +import Fk.RoomElement Item { property int cid: 0 diff --git a/qml/Pages/RoomElement/PhotoElement/HpBar.qml b/Fk/PhotoElement/HpBar.qml similarity index 97% rename from qml/Pages/RoomElement/PhotoElement/HpBar.qml rename to Fk/PhotoElement/HpBar.qml index e011ea02..d78435b7 100644 --- a/qml/Pages/RoomElement/PhotoElement/HpBar.qml +++ b/Fk/PhotoElement/HpBar.qml @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import ".." -import "../../skin-bank.js" as SkinBank +import Fk +import Fk.RoomElement Column { id: root @@ -83,4 +83,3 @@ Column { } } } - diff --git a/qml/Pages/RoomElement/PhotoElement/LimitSkillArea.qml b/Fk/PhotoElement/LimitSkillArea.qml similarity index 100% rename from qml/Pages/RoomElement/PhotoElement/LimitSkillArea.qml rename to Fk/PhotoElement/LimitSkillArea.qml diff --git a/qml/Pages/RoomElement/PhotoElement/LimitSkillItem.qml b/Fk/PhotoElement/LimitSkillItem.qml similarity index 97% rename from qml/Pages/RoomElement/PhotoElement/LimitSkillItem.qml rename to Fk/PhotoElement/LimitSkillItem.qml index 53bc5e2b..b2f267d4 100644 --- a/qml/Pages/RoomElement/PhotoElement/LimitSkillItem.qml +++ b/Fk/PhotoElement/LimitSkillItem.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import "../../skin-bank.js" as SkinBank +import Fk Item { id: root diff --git a/qml/Pages/RoomElement/PhotoElement/Magatama.qml b/Fk/PhotoElement/Magatama.qml similarity index 95% rename from qml/Pages/RoomElement/PhotoElement/Magatama.qml rename to Fk/PhotoElement/Magatama.qml index 8f24d9e2..b917b792 100644 --- a/qml/Pages/RoomElement/PhotoElement/Magatama.qml +++ b/Fk/PhotoElement/Magatama.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import "../../skin-bank.js" as SkinBank +import Fk Image { source: SkinBank.MAGATAMA_DIR + "0" @@ -57,4 +57,3 @@ Image { anchors.centerIn: parent } } - diff --git a/qml/Pages/RoomElement/PhotoElement/MarkArea.qml b/Fk/PhotoElement/MarkArea.qml similarity index 98% rename from qml/Pages/RoomElement/PhotoElement/MarkArea.qml rename to Fk/PhotoElement/MarkArea.qml index 180ba21c..9550b329 100644 --- a/qml/Pages/RoomElement/PhotoElement/MarkArea.qml +++ b/Fk/PhotoElement/MarkArea.qml @@ -59,7 +59,7 @@ Item { return; // Just for using room's right drawer - roomScene.startCheat("RoomElement/ViewPile.qml", { + roomScene.startCheat("ViewPile", { name: mark_name, ids: data }); diff --git a/qml/Pages/RoomElement/PhotoElement/RoleComboBox.qml b/Fk/PhotoElement/RoleComboBox.qml similarity index 95% rename from qml/Pages/RoomElement/PhotoElement/RoleComboBox.qml rename to Fk/PhotoElement/RoleComboBox.qml index 8a911162..2b326f00 100644 --- a/qml/Pages/RoomElement/PhotoElement/RoleComboBox.qml +++ b/Fk/PhotoElement/RoleComboBox.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import "../../skin-bank.js" as SkinBank +import Fk Image { property string value: "unknown" diff --git a/qml/Pages/RoomElement/PhotoElement/Shield.qml b/Fk/PhotoElement/Shield.qml similarity index 90% rename from qml/Pages/RoomElement/PhotoElement/Shield.qml rename to Fk/PhotoElement/Shield.qml index 75c2c8c3..763eb1cb 100644 --- a/qml/Pages/RoomElement/PhotoElement/Shield.qml +++ b/Fk/PhotoElement/Shield.qml @@ -1,5 +1,5 @@ import QtQuick -import "../../skin-bank.js" as SkinBank +import Fk Image { id: root diff --git a/qml/Pages/RoomElement/PhotoElement/SpecialMarkArea.qml b/Fk/PhotoElement/SpecialMarkArea.qml similarity index 100% rename from qml/Pages/RoomElement/PhotoElement/SpecialMarkArea.qml rename to Fk/PhotoElement/SpecialMarkArea.qml diff --git a/Fk/PhotoElement/qmldir b/Fk/PhotoElement/qmldir new file mode 100644 index 00000000..1421e3b7 --- /dev/null +++ b/Fk/PhotoElement/qmldir @@ -0,0 +1,12 @@ +module Fk.PhotoElement +DelayedTrickArea 1.0 DelayedTrickArea.qml +EquipArea 1.0 EquipArea.qml +EquipItem 1.0 EquipItem.qml +HpBar 1.0 HpBar.qml +LimitSkillArea 1.0 LimitSkillArea.qml +LimitSkillItem 1.0 LimitSkillItem.qml +Magatama 1.0 Magatama.qml +MarkArea 1.0 MarkArea.qml +RoleComboBox 1.0 RoleComboBox.qml +Shield 1.0 Shield.qml +SpecialMarkArea 1.0 SpecialMarkArea.qml diff --git a/qml/Pages/RoomElement/AG.qml b/Fk/RoomElement/AG.qml similarity index 100% rename from qml/Pages/RoomElement/AG.qml rename to Fk/RoomElement/AG.qml diff --git a/qml/Pages/RoomElement/CardArea.qml b/Fk/RoomElement/CardArea.qml similarity index 99% rename from qml/Pages/RoomElement/CardArea.qml rename to Fk/RoomElement/CardArea.qml index be65f40a..9f2a1e54 100644 --- a/qml/Pages/RoomElement/CardArea.qml +++ b/Fk/RoomElement/CardArea.qml @@ -78,4 +78,3 @@ Item { } } } - diff --git a/qml/Pages/RoomElement/CardItem.qml b/Fk/RoomElement/CardItem.qml similarity index 98% rename from qml/Pages/RoomElement/CardItem.qml rename to Fk/RoomElement/CardItem.qml index 7b36516a..4e78bf23 100644 --- a/qml/Pages/RoomElement/CardItem.qml +++ b/Fk/RoomElement/CardItem.qml @@ -2,7 +2,7 @@ import QtQuick import Qt5Compat.GraphicalEffects -import "../skin-bank.js" as SkinBank +import Fk /* Layout of card: * +--------+ @@ -70,7 +70,7 @@ Item { onRightClicked: { if (!showDetail) return; - roomScene.startCheat("RoomElement/Cheat/CardDetail.qml", { card: this }); + roomScene.startCheat("CardDetail", { card: this }); } RectangularGlow { diff --git a/qml/Pages/RoomElement/ChoiceBox.qml b/Fk/RoomElement/ChoiceBox.qml similarity index 97% rename from qml/Pages/RoomElement/ChoiceBox.qml rename to Fk/RoomElement/ChoiceBox.qml index ffb05dfe..d9ae9ca8 100644 --- a/qml/Pages/RoomElement/ChoiceBox.qml +++ b/Fk/RoomElement/ChoiceBox.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Layouts -import ".." +import Fk.Pages GraphicsBox { property var options: [] diff --git a/qml/Pages/RoomElement/ChooseGeneralBox.qml b/Fk/RoomElement/ChooseGeneralBox.qml similarity index 94% rename from qml/Pages/RoomElement/ChooseGeneralBox.qml rename to Fk/RoomElement/ChooseGeneralBox.qml index 379f257d..bbf4c924 100644 --- a/qml/Pages/RoomElement/ChooseGeneralBox.qml +++ b/Fk/RoomElement/ChooseGeneralBox.qml @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import ".." -import "../skin-bank.js" as SkinBank +import Fk +import Fk.Pages GraphicsBox { property alias generalList: generalList @@ -91,10 +91,7 @@ GraphicsBox { MetroButton { id: convertBtn text: Backend.translate("Same General Convert") - onClicked: roomScene.startCheat( - "RoomElement/Cheat/SameConvert.qml", - { cards: generalList } - ); + onClicked: roomScene.startCheat("SameConvert", { cards: generalList }); } MetroButton { @@ -112,7 +109,7 @@ GraphicsBox { enabled: choices.length > 0 text: Backend.translate("Show General Detail") onClicked: roomScene.startCheat( - "RoomElement/Cheat/GeneralDetail.qml", + "GeneralDetail", { generals: choices } ); } @@ -146,7 +143,7 @@ GraphicsBox { onRightClicked: { if (selectedItem.indexOf(this) === -1 && config.enableFreeAssign) - roomScene.startCheat("RoomElement/Cheat/FreeAssign.qml", { card: this }); + roomScene.startCheat("FreeAssign", { card: this }); } onReleased: { diff --git a/qml/Pages/RoomElement/Dashboard.qml b/Fk/RoomElement/Dashboard.qml similarity index 99% rename from qml/Pages/RoomElement/Dashboard.qml rename to Fk/RoomElement/Dashboard.qml index be62ff1f..33907fae 100644 --- a/qml/Pages/RoomElement/Dashboard.qml +++ b/Fk/RoomElement/Dashboard.qml @@ -73,7 +73,7 @@ RowLayout { if (expanded_pile_names.indexOf(pile) !== -1) return; - let component = Qt.createComponent("CardItem.qml"); + let component = Qt.createComponent("Fk.RoomElement", "CardItem"); let parentPos = roomScene.mapFromItem(self, 0, 0); expanded_piles[pile] = []; diff --git a/qml/Pages/RoomElement/GameOverBox.qml b/Fk/RoomElement/GameOverBox.qml similarity index 97% rename from qml/Pages/RoomElement/GameOverBox.qml rename to Fk/RoomElement/GameOverBox.qml index a4ad42ce..79af281e 100644 --- a/qml/Pages/RoomElement/GameOverBox.qml +++ b/Fk/RoomElement/GameOverBox.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import ".." +import Fk.Pages GraphicsBox { property string winner: "" diff --git a/qml/Pages/RoomElement/GeneralCardItem.qml b/Fk/RoomElement/GeneralCardItem.qml similarity index 98% rename from qml/Pages/RoomElement/GeneralCardItem.qml rename to Fk/RoomElement/GeneralCardItem.qml index 23aa89b1..e0e6a015 100644 --- a/qml/Pages/RoomElement/GeneralCardItem.qml +++ b/Fk/RoomElement/GeneralCardItem.qml @@ -2,8 +2,8 @@ import QtQuick import Qt5Compat.GraphicalEffects -import "PhotoElement" -import "../skin-bank.js" as SkinBank +import Fk +import Fk.PhotoElement /* Layout of general card: * +--------+ diff --git a/qml/Pages/RoomElement/GlowText.qml b/Fk/RoomElement/GlowText.qml similarity index 100% rename from qml/Pages/RoomElement/GlowText.qml rename to Fk/RoomElement/GlowText.qml diff --git a/qml/Pages/RoomElement/GraphicsBox.qml b/Fk/RoomElement/GraphicsBox.qml similarity index 100% rename from qml/Pages/RoomElement/GraphicsBox.qml rename to Fk/RoomElement/GraphicsBox.qml diff --git a/qml/Pages/RoomElement/GuanxingBox.qml b/Fk/RoomElement/GuanxingBox.qml similarity index 99% rename from qml/Pages/RoomElement/GuanxingBox.qml rename to Fk/RoomElement/GuanxingBox.qml index 0e0d93e1..1e874e15 100644 --- a/qml/Pages/RoomElement/GuanxingBox.qml +++ b/Fk/RoomElement/GuanxingBox.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Layouts -import ".." +import Fk.Pages GraphicsBox { id: root diff --git a/qml/Pages/RoomElement/HandcardArea.qml b/Fk/RoomElement/HandcardArea.qml similarity index 98% rename from qml/Pages/RoomElement/HandcardArea.qml rename to Fk/RoomElement/HandcardArea.qml index 8d995a51..779fa5e5 100644 --- a/qml/Pages/RoomElement/HandcardArea.qml +++ b/Fk/RoomElement/HandcardArea.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import "../../util.js" as Utility +import Fk Item { property alias cards: cardArea.cards diff --git a/qml/Pages/RoomElement/IndicatorLine.qml b/Fk/RoomElement/IndicatorLine.qml similarity index 100% rename from qml/Pages/RoomElement/IndicatorLine.qml rename to Fk/RoomElement/IndicatorLine.qml diff --git a/qml/Pages/RoomElement/InvisibleCardArea.qml b/Fk/RoomElement/InvisibleCardArea.qml similarity index 97% rename from qml/Pages/RoomElement/InvisibleCardArea.qml rename to Fk/RoomElement/InvisibleCardArea.qml index 2a01aa28..f0474b2d 100644 --- a/qml/Pages/RoomElement/InvisibleCardArea.qml +++ b/Fk/RoomElement/InvisibleCardArea.qml @@ -50,7 +50,7 @@ Item { function remove(outputs) { - let component = Qt.createComponent("CardItem.qml"); + let component = Qt.createComponent("Fk.RoomElement", "CardItem"); if (component.status !== Component.Ready) return []; diff --git a/qml/Pages/RoomElement/MiscStatus.qml b/Fk/RoomElement/MiscStatus.qml similarity index 97% rename from qml/Pages/RoomElement/MiscStatus.qml rename to Fk/RoomElement/MiscStatus.qml index fe423505..4d924635 100644 --- a/qml/Pages/RoomElement/MiscStatus.qml +++ b/Fk/RoomElement/MiscStatus.qml @@ -1,5 +1,5 @@ import QtQuick -import "../skin-bank.js" as SkinBank +import Fk Item { id: root diff --git a/qml/Pages/RoomElement/Photo.qml b/Fk/RoomElement/Photo.qml similarity index 98% rename from qml/Pages/RoomElement/Photo.qml rename to Fk/RoomElement/Photo.qml index 1df8ebc5..91d3b2b0 100644 --- a/qml/Pages/RoomElement/Photo.qml +++ b/Fk/RoomElement/Photo.qml @@ -3,8 +3,8 @@ import QtQuick import Qt5Compat.GraphicalEffects import QtQuick.Controls -import "PhotoElement" -import "../skin-bank.js" as SkinBank +import Fk +import Fk.PhotoElement Item { id: root @@ -595,6 +595,6 @@ Item { } function showDetail() { - roomScene.startCheat("RoomElement/Cheat/PlayerDetail.qml", { photo: this }); + roomScene.startCheat("PlayerDetail", { photo: this }); } } diff --git a/qml/Pages/RoomElement/PixmapAnimation.qml b/Fk/RoomElement/PixmapAnimation.qml similarity index 97% rename from qml/Pages/RoomElement/PixmapAnimation.qml rename to Fk/RoomElement/PixmapAnimation.qml index 22fd2746..19973fe5 100644 --- a/qml/Pages/RoomElement/PixmapAnimation.qml +++ b/Fk/RoomElement/PixmapAnimation.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import "../skin-bank.js" as SkinBank +import Fk Item { property string source: "" diff --git a/qml/Pages/RoomElement/PlayerCardBox.qml b/Fk/RoomElement/PlayerCardBox.qml similarity index 99% rename from qml/Pages/RoomElement/PlayerCardBox.qml rename to Fk/RoomElement/PlayerCardBox.qml index 46386ceb..379901b4 100644 --- a/qml/Pages/RoomElement/PlayerCardBox.qml +++ b/Fk/RoomElement/PlayerCardBox.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Layouts -import ".." +import Fk.Pages GraphicsBox { id: root diff --git a/qml/Pages/RoomElement/SkillArea.qml b/Fk/RoomElement/SkillArea.qml similarity index 100% rename from qml/Pages/RoomElement/SkillArea.qml rename to Fk/RoomElement/SkillArea.qml diff --git a/qml/Pages/RoomElement/SkillButton.qml b/Fk/RoomElement/SkillButton.qml similarity index 100% rename from qml/Pages/RoomElement/SkillButton.qml rename to Fk/RoomElement/SkillButton.qml diff --git a/qml/Pages/RoomElement/SkillInvokeAnimation.qml b/Fk/RoomElement/SkillInvokeAnimation.qml similarity index 97% rename from qml/Pages/RoomElement/SkillInvokeAnimation.qml rename to Fk/RoomElement/SkillInvokeAnimation.qml index f989e206..7875aa6d 100644 --- a/qml/Pages/RoomElement/SkillInvokeAnimation.qml +++ b/Fk/RoomElement/SkillInvokeAnimation.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import "../skin-bank.js" as SkinBank +import Fk Item { id: root diff --git a/qml/Pages/RoomElement/TablePile.qml b/Fk/RoomElement/TablePile.qml similarity index 100% rename from qml/Pages/RoomElement/TablePile.qml rename to Fk/RoomElement/TablePile.qml diff --git a/qml/Pages/RoomElement/ViewPile.qml b/Fk/RoomElement/ViewPile.qml similarity index 100% rename from qml/Pages/RoomElement/ViewPile.qml rename to Fk/RoomElement/ViewPile.qml diff --git a/Fk/RoomElement/qmldir b/Fk/RoomElement/qmldir new file mode 100644 index 00000000..ac94eb75 --- /dev/null +++ b/Fk/RoomElement/qmldir @@ -0,0 +1,24 @@ +module Fk.RoomElement +AG 1.0 AG.qml +CardArea 1.0 CardArea.qml +CardItem 1.0 CardItem.qml +ChoiceBox 1.0 ChoiceBox.qml +ChooseGeneralBox 1.0 ChooseGeneralBox.qml +Dashboard 1.0 Dashboard.qml +GameOverBox 1.0 GameOverBox.qml +GeneralCardItem 1.0 GeneralCardItem.qml +GlowText 1.0 GlowText.qml +GraphicsBox 1.0 GraphicsBox.qml +GuanxingBox 1.0 GuanxingBox.qml +HandcardArea 1.0 HandcardArea.qml +IndicatorLine 1.0 IndicatorLine.qml +InvisibleCardArea 1.0 InvisibleCardArea.qml +MiscStatus 1.0 MiscStatus.qml +Photo 1.0 Photo.qml +PixmapAnimation 1.0 PixmapAnimation.qml +PlayerCardBox 1.0 PlayerCardBox.qml +SkillArea 1.0 SkillArea.qml +SkillButton 1.0 SkillButton.qml +SkillInvokeAnimation 1.0 SkillInvokeAnimation.qml +TablePile 1.0 TablePile.qml +ViewPile 1.0 ViewPile.qml diff --git a/qml/Pages/RoomElement/SkillInteraction/SkillCombo.qml b/Fk/SkillInteraction/SkillCombo.qml similarity index 85% rename from qml/Pages/RoomElement/SkillInteraction/SkillCombo.qml rename to Fk/SkillInteraction/SkillCombo.qml index 84df328c..2e7f4ddb 100644 --- a/qml/Pages/RoomElement/SkillInteraction/SkillCombo.qml +++ b/Fk/SkillInteraction/SkillCombo.qml @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick -import "../.." +import Fk.Pages MetroButton { id: root @@ -21,7 +21,7 @@ MetroButton { } onClicked: { - roomScene.popupBox.source = "RoomElement/ChoiceBox.qml"; + roomScene.popupBox.sourceComponent = Qt.createComponent("Fk.RoomElement", "ChoiceBox"); let box = roomScene.popupBox.item; box.options = choices; box.accepted.connect(() => { diff --git a/qml/Pages/RoomElement/SkillInteraction/SkillSpin.qml b/Fk/SkillInteraction/SkillSpin.qml similarity index 99% rename from qml/Pages/RoomElement/SkillInteraction/SkillSpin.qml rename to Fk/SkillInteraction/SkillSpin.qml index 6512d4ba..a58368d9 100644 --- a/qml/Pages/RoomElement/SkillInteraction/SkillSpin.qml +++ b/Fk/SkillInteraction/SkillSpin.qml @@ -18,4 +18,3 @@ SpinBox { } } - diff --git a/Fk/SkillInteraction/qmldir b/Fk/SkillInteraction/qmldir new file mode 100644 index 00000000..5f7fdd82 --- /dev/null +++ b/Fk/SkillInteraction/qmldir @@ -0,0 +1,3 @@ +module Fk.SkillInteraction +SkillCombo 1.0 SkillCombo.qml +SkillSpin 1.0 SkillSpin.qml diff --git a/qml/Splash.qml b/Fk/Splash.qml similarity index 100% rename from qml/Splash.qml rename to Fk/Splash.qml diff --git a/qml/Toast.qml b/Fk/Toast.qml similarity index 100% rename from qml/Toast.qml rename to Fk/Toast.qml diff --git a/qml/ToastManager.qml b/Fk/ToastManager.qml similarity index 100% rename from qml/ToastManager.qml rename to Fk/ToastManager.qml diff --git a/qml/main.qml b/Fk/main.qml similarity index 71% rename from qml/main.qml rename to Fk/main.qml index 9004e648..d1bde09c 100644 --- a/qml/main.qml +++ b/Fk/main.qml @@ -4,7 +4,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Window import "Logic.js" as Logic -import "Pages" +import Fk.Pages Window { id: realMainWin @@ -45,12 +45,11 @@ Item { id: mainStack visible: !mainWindow.busy // If error occurs during loading initialItem, the program will fall into "polish()" loop - // initialItem: OS !== "Web" ? init : webinit + // initialItem: init anchors.fill: parent } Component { id: init; Init {} } - Component { id: webinit; WebInit {} } Component { id: packageManage; PackageManage {} } Component { id: lobby; Lobby {} } Component { id: generalsOverview; GeneralsOverview {} } @@ -123,73 +122,6 @@ Item { } } - // global popup. it is modal and just lower than toast - Rectangle { - id: globalPopupDim - anchors.fill: parent - color: "black" - opacity: 0 - visible: !mainWindow.busy - - property bool stateVisible: false - states: [ - State { - when: globalPopupDim.stateVisible - PropertyChanges { target: globalPopupDim; opacity: 0.5 } - }, - State { - when: !globalPopupDim.stateVisible - PropertyChanges { target: globalPopupDim; opacity: 0.0 } - } - ] - - transitions: Transition { - NumberAnimation { properties: "opacity"; easing.type: Easing.InOutQuad } - } - } - - Popup { - id: globalPopup - property string source: "" - modal: true - dim: false // cannot animate the dim - focus: true - opacity: mainWindow.busy ? 0 : 1 - closePolicy: Popup.CloseOnEscape - anchors.centerIn: parent - - onAboutToShow: { - globalPopupDim.stateVisible = true - } - - enter: Transition { - NumberAnimation { properties: "opacity"; from: 0; to: 1 } - NumberAnimation { properties: "scale"; from: 0.4; to: 1 } - } - - onAboutToHide: { - globalPopupDim.stateVisible = false - } - - exit: Transition { - NumberAnimation { properties: "opacity"; from: 1; to: 0 } - NumberAnimation { properties: "scale"; from: 1; to: 0.4 } - } - - Loader { - visible: !mainWindow.busy - source: globalPopup.source === "" ? "" : "GlobalPopups/" + globalPopup.source - onSourceChanged: { - if (item === null) - return; - item.finished.connect(() => { - globalPopup.close(); - globalPopup.source = ""; - }); - } - } - } - Popup { id: errDialog property string txt: "" @@ -266,16 +198,12 @@ Item { } Component.onCompleted: { - if (OS !== "Web") { - mainStack.push(init); - if (!Debugging) { - splashLoader.source = "Splash.qml"; - splashLoader.item.disappeared.connect(() => { - splashLoader.source = ""; - }); - } - } else { - mainStack.push(webinit); + mainStack.push(init); + if (!Debugging) { + splashLoader.source = "Splash.qml"; + splashLoader.item.disappeared.connect(() => { + splashLoader.source = ""; + }); } if (OS !== "Android" && OS !== "Web") { x = config.winX; diff --git a/Fk/qmldir b/Fk/qmldir new file mode 100644 index 00000000..3a502eb2 --- /dev/null +++ b/Fk/qmldir @@ -0,0 +1,3 @@ +module Fk +SkinBank 1.0 skin-bank.js +Utility 1.0 util.js diff --git a/qml/Pages/skin-bank.js b/Fk/skin-bank.js similarity index 100% rename from qml/Pages/skin-bank.js rename to Fk/skin-bank.js diff --git a/qml/util.js b/Fk/util.js similarity index 100% rename from qml/util.js rename to Fk/util.js diff --git a/android/copy_assets.sh b/android/copy_assets.sh index 0354b04f..d75a75a4 100755 --- a/android/copy_assets.sh +++ b/android/copy_assets.sh @@ -27,6 +27,7 @@ cp -r ../packages/test assets/res/packages rm assets/res/packages/test/test.lua cp ../packages/init.sql assets/res/packages cp -r ../qml assets/res +cp -r ../Fk assets/res mkdir assets/res/server cp ../server/init.sql assets/res/server cp ../LICENSE assets/res diff --git a/qml/Pages/WebInit.qml b/qml/Pages/WebInit.qml deleted file mode 100644 index 6d665f50..00000000 --- a/qml/Pages/WebInit.qml +++ /dev/null @@ -1,187 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls - -Item { - id: root - - Item { - width: 960 * 0.8 - height: 540 * 0.8 - anchors.centerIn: parent - - Item { - id: left - width: 300 - height: parent.height - - Image { - id: lady - width: parent.width + 20 - height: parent.height - fillMode: Image.PreserveAspectFit - } - - Image { - anchors.bottom: parent.bottom - anchors.bottomMargin: 12 - width: parent.width - source: AppPath + "/image/widelogo" - } - } - - Rectangle { - id: right - anchors.left: left.right - width: parent.width - left.width - height: parent.height - color: "#88EEEEEE" - radius: 16 - - ColumnLayout { - width: parent.width * 0.8 - height: parent.height * 0.8 - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: parent.top - anchors.topMargin: 40 - //spacing - - Text { - text: qsTr("Welcome back!") - font.pixelSize: 28 - Layout.alignment: Qt.AlignHCenter - } - - GridLayout { - columns: 2 - rowSpacing: 20 - - Text { - text: qsTr("Server Addr") - } - ComboBox { - id: server_addr - Layout.fillWidth: true - model: [] - editable: true - - onEditTextChanged: { - if (model.indexOf(editText) === -1) { - passwordEdit.text = ""; - } else { - let data = config.savedPassword[editText]; - screenNameEdit.text = data.username; - passwordEdit.text = data.shorten_password; - } - } - } - - Text { - text: qsTr("Username") - } - TextField { - id: screenNameEdit - Layout.fillWidth: true - placeholderText: qsTr("Username") - text: "" - onTextChanged: { - passwordEdit.text = ""; - let data = config.savedPassword[server_addr.editText]; - if (data) { - if (text === data.username) { - passwordEdit.text = data.shorten_password; - } - } - } - } - - CheckBox { - id: showPasswordCheck - text: qsTr("Show Password") - } - TextField { - id: passwordEdit - Layout.fillWidth: true - placeholderText: qsTr("Password") - text: "" - echoMode: showPasswordCheck.checked ? TextInput.Normal : TextInput.Password - passwordCharacter: "*" - } - } - - Button { - text: qsTr("Join Server") - Layout.fillWidth: true - display: AbstractButton.TextBesideIcon - icon.name: "go-next" - enabled: passwordEdit.text !== "" - onClicked: { - config.serverAddr = server_addr.editText; - config.screenName = screenNameEdit.text; - config.password = passwordEdit.text; - mainWindow.busy = true; - Backend.joinServer(server_addr.editText); - } - } - - Button { - Layout.fillWidth: true - text: qsTr("PackageManage") - onClicked: { - mainStack.push(packageManage); - } - } - } - - Text { - anchors.left: parent.left - anchors.bottom: parent.bottom - anchors.leftMargin: 12 - anchors.bottomMargin: 12 - text: "FreeKill " + FkVersion - font.pixelSize: 16 - font.bold: true - } - - Text { - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.rightMargin: 8 - anchors.bottomMargin: 8 - text: qsTr("FAQ") - color: "blue" - font.pixelSize: 24 - font.underline: true - - TapHandler { - onTapped: { - errDialog.txt = qsTr("$LoginFAQ"); - errDialog.open(); - } - } - } - } - } - - function downloadComplete() { - toast.show(qsTr("updated packages for md5")); - } - - Component.onCompleted: { - config.loadConf(); - - lady.source = config.ladyImg; - - server_addr.model = Object.keys(config.savedPassword); - server_addr.onModelChanged(); - server_addr.currentIndex = server_addr.model.indexOf(config.lastLoginServer); - - let data = config.savedPassword[config.lastLoginServer]; - if (data) { - screenNameEdit.text = data.username; - passwordEdit.text = data.shorten_password; - } - } -} diff --git a/src/core/util.cpp b/src/core/util.cpp index 66266ba0..bbe061bc 100644 --- a/src/core/util.cpp +++ b/src/core/util.cpp @@ -217,6 +217,8 @@ QString calcFileMD5() { writeDirMD5(flist, "lua", "*.lua"); writeDirMD5(flist, "qml", "*.qml"); writeDirMD5(flist, "qml", "*.js"); + writeDirMD5(flist, "Fk", "*.qml"); + writeDirMD5(flist, "Fk", "*.js"); // then, return flist.txt's md5 flist.close(); diff --git a/src/main.cpp b/src/main.cpp index fd25f420..f55ee6d2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -288,8 +288,10 @@ int main(int argc, char *argv[]) { engine->rootContext()->setContextProperty( "AppPath", QUrl::fromLocalFile(QDir::currentPath())); + engine->addImportPath(QDir::currentPath()); + // 加载完全局变量后,就再去加载 main.qml,此时UI界面正式显示 - engine->load("qml/main.qml"); + engine->load("Fk/main.qml"); // qml 报错了就直接退出吧 if (engine->rootObjects().isEmpty())