fix #25 by allowing user to close model windows while backend is busy
tests / macos (push) Successful in 1m18s
tests / package-smoke-linux (push) Skipped
tests / package-smoke-windows (push) Skipped
tests / package-smoke-macos (push) Skipped
tests / linux (push) Successful in 2m17s
tests / windows (push) Failing after 14m10s
tests / macos (push) Successful in 1m18s
tests / package-smoke-linux (push) Skipped
tests / package-smoke-windows (push) Skipped
tests / package-smoke-macos (push) Skipped
tests / linux (push) Successful in 2m17s
tests / windows (push) Failing after 14m10s
Signed-off-by: galeon <dertiellis@gmail.com>
This commit is contained in:
1 parent
acd9334c16
commit
92531c6e9a
6 files changed
+24
-33
No files matched your search
+3
-2
@@ -15,8 +15,9 @@ Dialog {
|
|||||||
padding: 0
|
padding: 0
|
||||||
width: 880
|
width: 880
|
||||||
height: 600
|
height: 600
|
||||||
closePolicy: buildsDialog.backend.switching ? Popup.NoAutoClose
|
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||||
: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
//closePolicy: buildsDialog.backend.switching ? Popup.NoAutoClose
|
||||||
|
// : Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: "#1e1e1e"
|
color: "#1e1e1e"
|
||||||
|
|||||||
+5
-23
@@ -19,15 +19,6 @@ endif()
|
|||||||
|
|
||||||
qt_standard_project_setup(REQUIRES 6.8)
|
qt_standard_project_setup(REQUIRES 6.8)
|
||||||
|
|
||||||
# Иконку самого файла приложения (то, что видно до запуска) каждая система берёт
|
|
||||||
# по-своему: Windows — из ресурса, вкомпилированного в .exe, macOS — из .icns
|
|
||||||
# внутри бандла. На Linux такого механизма нет, там иконку даёт .desktop-файл,
|
|
||||||
# который ставится ниже вместе с темой hicolor.
|
|
||||||
#
|
|
||||||
# Растры и .icns/.ico собираются из одного исходника скриптом icons/generate_icons.sh:
|
|
||||||
# у macOS арт по сетке Apple занимает 824 из 1024 точек холста, у Windows и Linux
|
|
||||||
# идёт без полей. Правки иконки вносятся в icons/master/icon_master.png с
|
|
||||||
# последующим перезапуском скрипта, а не в отдельные файлы размеров.
|
|
||||||
set(LAUNCHER_ICON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/icons")
|
set(LAUNCHER_ICON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/icons")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -47,10 +38,6 @@ qt_add_executable(BiLauncher
|
|||||||
${LAUNCHER_APP_ICON}
|
${LAUNCHER_APP_ICON}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Иконка окна выставляется в main.cpp через setWindowIcon() и обязана быть
|
|
||||||
# доступна на всех платформах, поэтому лежит в отдельном ресурсе, а не в
|
|
||||||
# ресурсах QML-модуля: путь :/icons/... не зависит от URI модуля.
|
|
||||||
# Размеры 24, 48 и 64 нужны панели задач Windows и значкам рабочих столов Linux.
|
|
||||||
qt_add_resources(BiLauncher "appicon"
|
qt_add_resources(BiLauncher "appicon"
|
||||||
PREFIX "/icons"
|
PREFIX "/icons"
|
||||||
BASE "icons"
|
BASE "icons"
|
||||||
@@ -70,9 +57,11 @@ qt_add_resources(BiLauncher "appicon"
|
|||||||
icons/icon_512x512@2x.png
|
icons/icon_512x512@2x.png
|
||||||
)
|
)
|
||||||
|
|
||||||
# OUTPUT_DIRECTORY: по умолчанию модуль с URI BiLauncher кладёт qmldir в
|
# Путь импорта для QML code model Qt Creator / qmlls: модуль лежит в
|
||||||
# ${CMAKE_BINARY_DIR}/BiLauncher — на Linux это имя занято самим исполняемым
|
# ${CMAKE_CURRENT_BINARY_DIR}/qml, а не в корне каталога сборки.
|
||||||
# файлом (у него нет расширения), и линковка падает с «Is a directory».
|
set(QML_IMPORT_PATH "${CMAKE_CURRENT_BINARY_DIR}/qml"
|
||||||
|
CACHE STRING "Пути импорта QML для Qt Creator" FORCE)
|
||||||
|
|
||||||
qt_add_qml_module(BiLauncher
|
qt_add_qml_module(BiLauncher
|
||||||
URI BiLauncher
|
URI BiLauncher
|
||||||
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qml/BiLauncher"
|
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qml/BiLauncher"
|
||||||
@@ -144,8 +133,6 @@ set_target_properties(BiLauncher PROPERTIES
|
|||||||
MACOSX_BUNDLE_GUI_IDENTIFIER com.galeondev.BiLauncher
|
MACOSX_BUNDLE_GUI_IDENTIFIER com.galeondev.BiLauncher
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}
|
||||||
# Попадает в CFBundleIconFile сгенерированного Info.plist — только имя
|
|
||||||
# файла, без пути: сам .icns кладётся в Contents/Resources выше.
|
|
||||||
MACOSX_BUNDLE_ICON_FILE icon.icns
|
MACOSX_BUNDLE_ICON_FILE icon.icns
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
WIN32_EXECUTABLE TRUE
|
WIN32_EXECUTABLE TRUE
|
||||||
@@ -206,8 +193,6 @@ if(UNIX AND NOT APPLE)
|
|||||||
)
|
)
|
||||||
install(TARGETS launcher_zlib_reference LIBRARY DESTINATION ${LAUNCHER_ZLIB_DIR})
|
install(TARGETS launcher_zlib_reference LIBRARY DESTINATION ${LAUNCHER_ZLIB_DIR})
|
||||||
|
|
||||||
# Рабочие столы ищут иконку не по имени файла, а по имени из ключа Icon=
|
|
||||||
# .desktop-файла, перебирая размеры в теме hicolor, — отсюда переименование.
|
|
||||||
foreach(icon_size IN ITEMS 16 24 32 48 64 128 256 512)
|
foreach(icon_size IN ITEMS 16 24 32 48 64 128 256 512)
|
||||||
install(FILES "${LAUNCHER_ICON_DIR}/icon_${icon_size}x${icon_size}.png"
|
install(FILES "${LAUNCHER_ICON_DIR}/icon_${icon_size}x${icon_size}.png"
|
||||||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${icon_size}x${icon_size}/apps"
|
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${icon_size}x${icon_size}/apps"
|
||||||
@@ -243,9 +228,6 @@ qt_generate_deploy_qml_app_script(
|
|||||||
DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM
|
DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM
|
||||||
DEPLOY_TOOL_OPTIONS ${deploy_opts})
|
DEPLOY_TOOL_OPTIONS ${deploy_opts})
|
||||||
install(SCRIPT ${deploy_script})
|
install(SCRIPT ${deploy_script})
|
||||||
# Автотесты: собираются только по запросу и в установку не попадают.
|
|
||||||
# Код лаунчера при этом не меняется — тесты компилируют те же исходники
|
|
||||||
# в отдельную статическую библиотеку, см. tests/CMakeLists.txt и doc/testing.md.
|
|
||||||
option(BILAUNCHER_BUILD_TESTS "Собрать автотесты (ctest)" OFF)
|
option(BILAUNCHER_BUILD_TESTS "Собрать автотесты (ctest)" OFF)
|
||||||
if(BILAUNCHER_BUILD_TESTS)
|
if(BILAUNCHER_BUILD_TESTS)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|||||||
@@ -192,6 +192,10 @@ Window {
|
|||||||
rotation: 0
|
rotation: 0
|
||||||
editable: false
|
editable: false
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
// Пока идёт загрузка или установка, профиль и сборку не меняем:
|
||||||
|
// единственное доступное действие — отмена на панели загрузки.
|
||||||
|
enabled: !backend.busy && !backend.gameRunning
|
||||||
|
opacity: enabled ? 1.0 : 0.45
|
||||||
|
|
||||||
model: backend.profileNames
|
model: backend.profileNames
|
||||||
|
|
||||||
@@ -390,7 +394,8 @@ Window {
|
|||||||
anchors.rightMargin: 0
|
anchors.rightMargin: 0
|
||||||
anchors.bottomMargin: -218
|
anchors.bottomMargin: -218
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
enabled: !backend.gameRunning && !backend.switching
|
enabled: !backend.gameRunning || !backend.switching
|
||||||
|
opacity: enabled ? 1.0 : 0.45
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: backend.activeBuildName !== "" ? backend.activeBuildName
|
text: backend.activeBuildName !== "" ? backend.activeBuildName
|
||||||
@@ -464,6 +469,7 @@ Window {
|
|||||||
anchors.verticalCenter: folderButton.verticalCenter
|
anchors.verticalCenter: folderButton.verticalCenter
|
||||||
anchors.leftMargin: 8
|
anchors.leftMargin: 8
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
enabled: !backend.busy && !backend.gameRunning
|
||||||
|
|
||||||
background: Image {
|
background: Image {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ Dialog {
|
|||||||
padding: 0
|
padding: 0
|
||||||
width: 960
|
width: 960
|
||||||
height: 560
|
height: 560
|
||||||
closePolicy: seasons.backend.seasonalInstalling
|
// Закрывается и во время установки: отменить её можно только на панели
|
||||||
? Popup.NoAutoClose
|
// загрузки главного окна, а модальное окно эту панель перекрывает.
|
||||||
: (Popup.CloseOnEscape | Popup.CloseOnPressOutside)
|
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: "#1e1e1e"
|
color: "#1e1e1e"
|
||||||
|
|||||||
+3
-2
@@ -63,8 +63,9 @@
|
|||||||
| `seasonalInstallFinished` | сообщение «сборка установлена, можно играть» |
|
| `seasonalInstallFinished` | сообщение «сборка установлена, можно играть» |
|
||||||
| `javaRuntimeInstalled` | обновляет строку Java в настройках |
|
| `javaRuntimeInstalled` | обновляет строку Java в настройках |
|
||||||
|
|
||||||
Кнопка запуска выключена, пока `busy` или `gameRunning`. Кнопка активной сборки выключена во время
|
Кнопка запуска выключена, пока `busy` или `gameRunning`. Список профилей выключен, пока `busy`;
|
||||||
игры и смены сборки.
|
кнопка активной сборки — пока `busy` или `gameRunning`. Так во время загрузки и установки (в том
|
||||||
|
числе сезонной сборки) доступна только отмена на панели загрузки.
|
||||||
|
|
||||||
## Профили
|
## Профили
|
||||||
|
|
||||||
|
|||||||
@@ -48,8 +48,9 @@
|
|||||||
Каталог обновляется при каждом открытии окна (`refreshSeasonalCatalog(false)`). Свежий кэш отвечает
|
Каталог обновляется при каждом открытии окна (`refreshSeasonalCatalog(false)`). Свежий кэш отвечает
|
||||||
без сети.
|
без сети.
|
||||||
|
|
||||||
Пока идёт установка, окно закрывается только кнопкой. Отменить установку можно на панели загрузки
|
Окно закрывается по Esc и щелчку мимо него и во время установки: отменить установку можно только
|
||||||
главного окна, и случайный щелчок мимо окна не должен её закрыть.
|
на панели загрузки главного окна, которую модальное окно перекрывает. Установка при закрытии окна
|
||||||
|
продолжается.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user