Хотфиксы багов и небольшие изменения #31
No files matched your search
+3
-2
@@ -15,8 +15,9 @@ Dialog {
|
||||
padding: 0
|
||||
width: 880
|
||||
height: 600
|
||||
closePolicy: buildsDialog.backend.switching ? Popup.NoAutoClose
|
||||
: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||
//closePolicy: buildsDialog.backend.switching ? Popup.NoAutoClose
|
||||
// : Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||
|
||||
background: Rectangle {
|
||||
color: "#1e1e1e"
|
||||
|
||||
+5
-23
@@ -19,15 +19,6 @@ endif()
|
||||
|
||||
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")
|
||||
|
||||
if(WIN32)
|
||||
@@ -47,10 +38,6 @@ qt_add_executable(BiLauncher
|
||||
${LAUNCHER_APP_ICON}
|
||||
)
|
||||
|
||||
# Иконка окна выставляется в main.cpp через setWindowIcon() и обязана быть
|
||||
# доступна на всех платформах, поэтому лежит в отдельном ресурсе, а не в
|
||||
# ресурсах QML-модуля: путь :/icons/... не зависит от URI модуля.
|
||||
# Размеры 24, 48 и 64 нужны панели задач Windows и значкам рабочих столов Linux.
|
||||
qt_add_resources(BiLauncher "appicon"
|
||||
PREFIX "/icons"
|
||||
BASE "icons"
|
||||
@@ -70,9 +57,11 @@ qt_add_resources(BiLauncher "appicon"
|
||||
icons/icon_512x512@2x.png
|
||||
)
|
||||
|
||||
# OUTPUT_DIRECTORY: по умолчанию модуль с URI BiLauncher кладёт qmldir в
|
||||
# ${CMAKE_BINARY_DIR}/BiLauncher — на Linux это имя занято самим исполняемым
|
||||
# файлом (у него нет расширения), и линковка падает с «Is a directory».
|
||||
# Путь импорта для QML code model Qt Creator / qmlls: модуль лежит в
|
||||
# ${CMAKE_CURRENT_BINARY_DIR}/qml, а не в корне каталога сборки.
|
||||
set(QML_IMPORT_PATH "${CMAKE_CURRENT_BINARY_DIR}/qml"
|
||||
CACHE STRING "Пути импорта QML для Qt Creator" FORCE)
|
||||
|
||||
qt_add_qml_module(BiLauncher
|
||||
URI 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_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}
|
||||
# Попадает в CFBundleIconFile сгенерированного Info.plist — только имя
|
||||
# файла, без пути: сам .icns кладётся в Contents/Resources выше.
|
||||
MACOSX_BUNDLE_ICON_FILE icon.icns
|
||||
MACOSX_BUNDLE TRUE
|
||||
WIN32_EXECUTABLE TRUE
|
||||
@@ -206,8 +193,6 @@ if(UNIX AND NOT APPLE)
|
||||
)
|
||||
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)
|
||||
install(FILES "${LAUNCHER_ICON_DIR}/icon_${icon_size}x${icon_size}.png"
|
||||
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_TOOL_OPTIONS ${deploy_opts})
|
||||
install(SCRIPT ${deploy_script})
|
||||
# Автотесты: собираются только по запросу и в установку не попадают.
|
||||
# Код лаунчера при этом не меняется — тесты компилируют те же исходники
|
||||
# в отдельную статическую библиотеку, см. tests/CMakeLists.txt и doc/testing.md.
|
||||
option(BILAUNCHER_BUILD_TESTS "Собрать автотесты (ctest)" OFF)
|
||||
if(BILAUNCHER_BUILD_TESTS)
|
||||
enable_testing()
|
||||
|
||||
@@ -192,6 +192,10 @@ Window {
|
||||
rotation: 0
|
||||
editable: false
|
||||
hoverEnabled: true
|
||||
// Пока идёт загрузка или установка, профиль и сборку не меняем:
|
||||
// единственное доступное действие — отмена на панели загрузки.
|
||||
enabled: !backend.busy && !backend.gameRunning
|
||||
opacity: enabled ? 1.0 : 0.45
|
||||
|
||||
model: backend.profileNames
|
||||
|
||||
@@ -390,7 +394,8 @@ Window {
|
||||
anchors.rightMargin: 0
|
||||
anchors.bottomMargin: -218
|
||||
hoverEnabled: true
|
||||
enabled: !backend.gameRunning && !backend.switching
|
||||
enabled: !backend.gameRunning || !backend.switching
|
||||
opacity: enabled ? 1.0 : 0.45
|
||||
|
||||
contentItem: Text {
|
||||
text: backend.activeBuildName !== "" ? backend.activeBuildName
|
||||
@@ -464,6 +469,7 @@ Window {
|
||||
anchors.verticalCenter: folderButton.verticalCenter
|
||||
anchors.leftMargin: 8
|
||||
hoverEnabled: true
|
||||
enabled: !backend.busy && !backend.gameRunning
|
||||
|
||||
background: Image {
|
||||
anchors.fill: parent
|
||||
|
||||
@@ -22,9 +22,9 @@ Dialog {
|
||||
padding: 0
|
||||
width: 960
|
||||
height: 560
|
||||
closePolicy: seasons.backend.seasonalInstalling
|
||||
? Popup.NoAutoClose
|
||||
: (Popup.CloseOnEscape | Popup.CloseOnPressOutside)
|
||||
// Закрывается и во время установки: отменить её можно только на панели
|
||||
// загрузки главного окна, а модальное окно эту панель перекрывает.
|
||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||
|
||||
background: Rectangle {
|
||||
color: "#1e1e1e"
|
||||
|
||||
+3
-2
@@ -63,8 +63,9 @@
|
||||
| `seasonalInstallFinished` | сообщение «сборка установлена, можно играть» |
|
||||
| `javaRuntimeInstalled` | обновляет строку Java в настройках |
|
||||
|
||||
Кнопка запуска выключена, пока `busy` или `gameRunning`. Кнопка активной сборки выключена во время
|
||||
игры и смены сборки.
|
||||
Кнопка запуска выключена, пока `busy` или `gameRunning`. Список профилей выключен, пока `busy`;
|
||||
кнопка активной сборки — пока `busy` или `gameRunning`. Так во время загрузки и установки (в том
|
||||
числе сезонной сборки) доступна только отмена на панели загрузки.
|
||||
|
||||
## Профили
|
||||
|
||||
|
||||
@@ -48,8 +48,9 @@
|
||||
Каталог обновляется при каждом открытии окна (`refreshSeasonalCatalog(false)`). Свежий кэш отвечает
|
||||
без сети.
|
||||
|
||||
Пока идёт установка, окно закрывается только кнопкой. Отменить установку можно на панели загрузки
|
||||
главного окна, и случайный щелчок мимо окна не должен её закрыть.
|
||||
Окно закрывается по Esc и щелчку мимо него и во время установки: отменить установку можно только
|
||||
на панели загрузки главного окна, которую модальное окно перекрывает. Установка при закрытии окна
|
||||
продолжается.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user