diff --git a/.github/workflows/check-white-space.yml b/.github/workflows/check-white-space.yml new file mode 100644 index 00000000..6b15c438 --- /dev/null +++ b/.github/workflows/check-white-space.yml @@ -0,0 +1,18 @@ +name: Check Whitespace and New Line + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Check trailing space + run: if grep -rIn "[[:blank:]]$"; then exit 2; else echo OK; fi + - name: Check no new line at EOF + run: for f in $(grep -rIl ""); do if test $(tail -c 1 $f); then echo $f; fail=1; fi; done; if test $fail; then exit 1; fi + diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 535c1509..b85fc008 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -5,7 +5,7 @@ android:versionCode="1" android:versionName="1.0"> - + 0 then + if #self.phases > 0 then table.remove(self.phases, 1) end diff --git a/packages/.gitignore b/packages/.gitignore index fd123c66..9083b6c3 100644 --- a/packages/.gitignore +++ b/packages/.gitignore @@ -4,4 +4,4 @@ !test/ !manuvering/ !.gitignore -!init.sql \ No newline at end of file +!init.sql diff --git a/packages/standard/game_rule.lua b/packages/standard/game_rule.lua index a9329851..ab47900d 100644 --- a/packages/standard/game_rule.lua +++ b/packages/standard/game_rule.lua @@ -77,7 +77,7 @@ GameRule = fk.CreateTriggerSkill{ move_to_notify.moveInfo = {} move_to_notify.moveReason = fk.ReasonDraw for _, id in ipairs(cardIds) do - table.insert(move_to_notify.moveInfo, + table.insert(move_to_notify.moveInfo, { cardId = id, fromArea = Card.DrawPile }) end room:notifyMoveCards(nil, {move_to_notify}) @@ -104,7 +104,7 @@ GameRule = fk.CreateTriggerSkill{ end room:sendLog{ type = "$AppendSeparator" } - + player:addMark("Global_TurnCount") if not player.faceup then player:setFlag("-Global_FirstRound") @@ -119,10 +119,10 @@ GameRule = fk.CreateTriggerSkill{ error("You should never proceed PhaseNone") end, [Player.RoundStart] = function() - + end, [Player.Start] = function() - + end, [Player.Judge] = function() local cards = player:getCardIds(Player.Judge) @@ -173,10 +173,10 @@ GameRule = fk.CreateTriggerSkill{ end end, [Player.Finish] = function() - + end, [Player.NotActive] = function() - + end, }) end, diff --git a/packages/standard/init.lua b/packages/standard/init.lua index e2c700ec..8503c48c 100644 --- a/packages/standard/init.lua +++ b/packages/standard/init.lua @@ -669,7 +669,7 @@ local keji = fk.CreateTriggerSkill{ can_refresh = function(self, event, target, player, data) if not (target == player and player:hasSkill(self.name)) then return false - end + end if event == fk.CardResponding then return data.card.name == "slash" elseif event == fk.EventPhaseStart then diff --git a/packages/standard_cards/init.lua b/packages/standard_cards/init.lua index d4665ac5..beef5204 100644 --- a/packages/standard_cards/init.lua +++ b/packages/standard_cards/init.lua @@ -35,7 +35,7 @@ local slashSkill = fk.CreateActiveSkill{ on_effect = function(self, room, effect) local to = effect.to local from = effect.from - + room:damage({ from = room:getPlayerById(from), to = room:getPlayerById(to), @@ -146,7 +146,7 @@ local peachSkill = fk.CreateActiveSkill{ on_effect = function(self, room, effect) local to = effect.to local from = effect.from - + room:recover({ who = room:getPlayerById(to), num = 1, diff --git a/packages/test/qml/TestDialog.qml b/packages/test/qml/TestDialog.qml index 62586577..a663bc53 100644 --- a/packages/test/qml/TestDialog.qml +++ b/packages/test/qml/TestDialog.qml @@ -17,7 +17,7 @@ GraphicsBox { spacing: 10 Text { - text: root.custom_string + text: root.custom_string color: "#E4D5A0" } diff --git a/qml/Logic.js b/qml/Logic.js index ed7366c9..f9f4ac7a 100644 --- a/qml/Logic.js +++ b/qml/Logic.js @@ -9,7 +9,7 @@ function createClientPages() { mainWindow.generalsOverviewPage = generalsOverviewPage; mainWindow.cardsOverviewPage = cardsOverviewPage; - } + } } var callbacks = {}; diff --git a/qml/Pages/CardsOverview.qml b/qml/Pages/CardsOverview.qml index 4021b5cc..c3ba067e 100644 --- a/qml/Pages/CardsOverview.qml +++ b/qml/Pages/CardsOverview.qml @@ -8,7 +8,7 @@ Item { property bool loaded: false - ListView { + ListView { width: Math.floor(root.width / 98) * 98 height: parent.height anchors.centerIn: parent @@ -23,7 +23,7 @@ Item { columns: root.width / 98 Repeater { model: JSON.parse(Backend.callLuaFunction("GetCards", [name])) - CardItem { + CardItem { autoBack: false Component.onCompleted: { let data = JSON.parse(Backend.callLuaFunction("GetCardData", [modelData])); diff --git a/qml/Pages/GeneralsOverview.qml b/qml/Pages/GeneralsOverview.qml index 3c9a558d..a7da789c 100644 --- a/qml/Pages/GeneralsOverview.qml +++ b/qml/Pages/GeneralsOverview.qml @@ -23,7 +23,7 @@ Item { columns: root.width / 98 Repeater { model: JSON.parse(Backend.callLuaFunction("GetGenerals", [name])) - GeneralCardItem { + GeneralCardItem { autoBack: false name: modelData onClicked: { diff --git a/qml/Pages/Init.qml b/qml/Pages/Init.qml index 010eb7c2..d8c1a86a 100644 --- a/qml/Pages/Init.qml +++ b/qml/Pages/Init.qml @@ -12,7 +12,7 @@ Item { color: "#88888888" radius: 2 } - + Column { spacing: 8 ComboBox { diff --git a/qml/Pages/PackageManage.qml b/qml/Pages/PackageManage.qml index 4a08c93b..d251f1a3 100644 --- a/qml/Pages/PackageManage.qml +++ b/qml/Pages/PackageManage.qml @@ -79,7 +79,7 @@ Item { ListView { id: packageList anchors.fill: parent - + contentHeight: packageDelegate.height * count ScrollBar.vertical: ScrollBar {} header: RowLayout { diff --git a/qml/Pages/Room.qml b/qml/Pages/Room.qml index 98d5fb26..6d233031 100644 --- a/qml/Pages/Room.qml +++ b/qml/Pages/Room.qml @@ -40,7 +40,7 @@ Item { MediaPlayer { id: bgm source: config.bgmFile - + // loops: MediaPlayer.Infinite onPlaybackStateChanged: { if (playbackState == MediaPlayer.StoppedState && roomScene.isStarted) @@ -104,7 +104,7 @@ Item { if (popupBox.item != null) { popupBox.item.finished(); - } + } } } }, @@ -412,7 +412,7 @@ Item { dragMargin: 0 scale: mainWindow.scale transformOrigin: Item.TopLeft - + ColumnLayout { anchors.fill: parent diff --git a/qml/Pages/RoomElement/Photo.qml b/qml/Pages/RoomElement/Photo.qml index d9a3b02b..409e6018 100644 --- a/qml/Pages/RoomElement/Photo.qml +++ b/qml/Pages/RoomElement/Photo.qml @@ -351,7 +351,7 @@ Item { duration: 100 } } - + function tremble() { trembleAnimation.start() } diff --git a/qml/Pages/RoomLogic.js b/qml/Pages/RoomLogic.js index d4ff18a5..c94253a2 100644 --- a/qml/Pages/RoomLogic.js +++ b/qml/Pages/RoomLogic.js @@ -72,7 +72,7 @@ function doOkButton() { } )); return; - } + } replyToServer("1"); } @@ -91,7 +91,7 @@ function doCancelButton() { replyToServer("__cancel"); return; } - + replyToServer("__cancel"); } @@ -486,7 +486,7 @@ callbacks["ArrangeSeats"] = function(jsonData) { dashboardModel.seatNumber = order.indexOf(Self.id) + 1; dashboardModel.general = ""; roomScene.dashboardModelChanged(); - + // make Self to the first of list, then reorder photomodel let selfIndex = order.indexOf(Self.id); let after = order.splice(selfIndex); @@ -497,7 +497,7 @@ callbacks["ArrangeSeats"] = function(jsonData) { let item = photoModel.get(i); item.index = photoOrder.indexOf(item.id); } - + arrangePhotos(); } @@ -516,14 +516,14 @@ callbacks["MoveFocus"] = function(jsonData) { let data = JSON.parse(jsonData); let focuses = data[0]; let command = data[1]; - + let item, model; for (let i = 0; i < playerNum - 1; i++) { model = photoModel.get(i); if (focuses.indexOf(model.id) != -1) { item = photos.itemAt(i); item.progressBar.visible = true; - item.progressTip = Backend.translate(command) + item.progressTip = Backend.translate(command) + Backend.translate(" thinking..."); if (command === "PlayCard") { diff --git a/qml/Pages/WebInit.qml b/qml/Pages/WebInit.qml index 35883665..ee3188b3 100644 --- a/qml/Pages/WebInit.qml +++ b/qml/Pages/WebInit.qml @@ -15,7 +15,7 @@ Item { color: "#88888888" radius: 2 } - + Column { spacing: 8 TextField { diff --git a/qml/ToastManager.qml b/qml/ToastManager.qml index 14095e8f..f7f4c0a4 100644 --- a/qml/ToastManager.qml +++ b/qml/ToastManager.qml @@ -26,7 +26,7 @@ ListView { easing.type: Easing.InOutQuad } } - + delegate: Toast { Component.onCompleted: { show(text, duration); diff --git a/qml/main.qml b/qml/main.qml index 451498d8..32b4da05 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -90,16 +90,16 @@ Item { property bool stateVisible: false states: [ - State { + State { when: globalPopupDim.stateVisible PropertyChanges { target: globalPopupDim; opacity: 0.5 } }, - State { + State { when: !globalPopupDim.stateVisible PropertyChanges { target: globalPopupDim; opacity: 0.0 } } ] - + transitions: Transition { NumberAnimation { properties: "opacity"; easing.type: Easing.InOutQuad } } @@ -109,7 +109,7 @@ Item { id: globalPopup property string source: "" modal: true - dim: false // cannot animate the dim + dim: false // cannot animate the dim focus: true opacity: mainWindow.busy ? 0 : 1 closePolicy: Popup.CloseOnEscape diff --git a/src/client/clientplayer.h b/src/client/clientplayer.h index a55a4ed7..a4b13306 100644 --- a/src/client/clientplayer.h +++ b/src/client/clientplayer.h @@ -7,14 +7,14 @@ class ClientPlayer : public Player { Q_OBJECT Q_PROPERTY(int id READ getId CONSTANT) - Q_PROPERTY(QString screenName - READ getScreenName - WRITE setScreenName + Q_PROPERTY(QString screenName + READ getScreenName + WRITE setScreenName NOTIFY screenNameChanged ) Q_PROPERTY(QString avatar - READ getAvatar - WRITE setAvatar + READ getAvatar + WRITE setAvatar NOTIFY avatarChanged ) diff --git a/src/main.cpp b/src/main.cpp index df9a8265..8814e31e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -182,14 +182,14 @@ int main(int argc, char *argv[]) QTranslator translator; Q_UNUSED(translator.load("zh_CN.qm")); QCoreApplication::installTranslator(&translator); - + QmlBackend backend; backend.setEngine(engine); #ifndef Q_OS_WASM Pacman = new PackMan; #endif - + engine->rootContext()->setContextProperty("Backend", &backend); engine->rootContext()->setContextProperty("Pacman", Pacman); diff --git a/src/server/room.h b/src/server/room.h index 735aa863..39e7627e 100644 --- a/src/server/room.h +++ b/src/server/room.h @@ -61,7 +61,7 @@ public: LuaFunction startGame; QString fetchRequest(); - void pushRequest(const QString &req); + void pushRequest(const QString &req); bool hasRequest() const; signals: diff --git a/src/server/serverplayer.h b/src/server/serverplayer.h index 58b8d33c..626c0089 100644 --- a/src/server/serverplayer.h +++ b/src/server/serverplayer.h @@ -35,7 +35,7 @@ public: signals: void disconnected(); - + private: ClientSocket *socket; // socket for communicating with client Router *router; diff --git a/src/server/shell.h b/src/server/shell.h index 76000ced..229e81db 100644 --- a/src/server/shell.h +++ b/src/server/shell.h @@ -5,7 +5,7 @@ class Shell: public QThread { Q_OBJECT public: Shell(); - + enum Color { Black, Red, diff --git a/src/swig/qt.i b/src/swig/qt.i index c6bcbbaa..7edd2726 100644 --- a/src/swig/qt.i +++ b/src/swig/qt.i @@ -47,7 +47,7 @@ static int GetMicroSecond(lua_State *L) { long microsecond = tv.tv_sec * 1000000 + tv.tv_usec; lua_pushnumber(L, microsecond); return 1; -} +} %} void qDebug(const char *msg, ...); diff --git a/src/swig/server.i b/src/swig/server.i index 0e5ea122..e7519b3d 100644 --- a/src/swig/server.i +++ b/src/swig/server.i @@ -48,7 +48,7 @@ public: const QString &command, const QString &jsonData ); - + void gameOver(); LuaFunction startGame; @@ -91,7 +91,7 @@ void Room::roomStart() { } lua_pop(L, 1); } - + %} %nodefaultctor ServerPlayer; diff --git a/src/ui/qmlbackend.cpp b/src/ui/qmlbackend.cpp index af9beedb..70ee2a20 100644 --- a/src/ui/qmlbackend.cpp +++ b/src/ui/qmlbackend.cpp @@ -234,7 +234,7 @@ void QmlBackend::playSound(const QString &name, int index) { i++; } - index = i == 0 ? 0 : (QRandomGenerator::global()->generate()) % i + 1; + index = i == 0 ? 0 : (QRandomGenerator::global()->generate()) % i + 1; } if (index != 0) fname = fname + QString::number(index) + ".mp3"; @@ -242,7 +242,7 @@ void QmlBackend::playSound(const QString &name, int index) { fname = fname + ".mp3"; if (!QFile::exists(fname)) return; - + auto player = new QMediaPlayer; auto output = new QAudioOutput; player->setAudioOutput(output);