From 7d3abf69ff1a255356b64bfc8c655894bc143f60 Mon Sep 17 00:00:00 2001 From: roosslan Date: Mon, 12 Oct 2026 22:38:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B5=D1=80=D1=81=D0=B8=D1=8F=203.1.4,?= =?UTF-8?q?=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20=D0=B2=20GitHub=20Act?= =?UTF-8?q?ions,=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D1=91=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 67 +++++++++++++++++++++++++++++++++++++ fuzzy_clock_window.cpp | 2 +- readme.md | 41 +++-------------------- resource.rc | 8 ++--- 4 files changed, 76 insertions(+), 42 deletions(-) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..20673cd --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,67 @@ +name: Сборка + +on: + push: + branches: [trunk] + tags: ['v*'] + pull_request: + +jobs: + windows: + runs-on: windows-latest + permissions: + contents: write # для публикации релиза по тегу + steps: + - uses: actions/checkout@v4 + + - uses: jurplel/install-qt-action@v4 + with: + version: '6.10.0' + arch: win64_msvc2022_64 + cache: true + + - uses: ilammy/msvc-dev-cmd@v1 + + - name: Сборка + run: | + qmake fuzzy_clock.pro "CONFIG+=release" + nmake release + + - name: Развёртывание + run: | + New-Item -ItemType Directory deploy | Out-Null + Copy-Item release\fuzzy_clock.exe, fuzzy.conf, style.css deploy\ + windeployqt --release --no-translations deploy\fuzzy_clock.exe + + - name: Упаковка в CAB + run: | + # makecab сохраняет поддиректории (platforms\, styles\ и т.д.) только через DDF-файл + $root = (Resolve-Path deploy).Path + $ddf = @( + '.OPTION EXPLICIT' + '.Set CabinetNameTemplate=fuzzy_clock-win64.cab' + '.Set DiskDirectoryTemplate=.' + '.Set CompressionType=LZX' + '.Set MaxDiskSize=0' + '.Set UniqueFiles=OFF' + '.Set Cabinet=ON' + '.Set Compress=ON' + ) + Get-ChildItem $root -Recurse -File | ForEach-Object { + $ddf += '"{0}" "{1}"' -f $_.FullName, $_.FullName.Substring($root.Length + 1) + } + $ddf | Set-Content fuzzy_clock.ddf -Encoding ascii + makecab.exe -F fuzzy_clock.ddf + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + + - uses: actions/upload-artifact@v4 + with: + name: fuzzy_clock-win64 + path: fuzzy_clock-win64.cab + + - name: Релиз + if: startsWith(github.ref, 'refs/tags/v') + uses: softprops/action-gh-release@v2 + with: + name: fuzzy clock ${{ github.ref_name }} + files: fuzzy_clock-win64.cab diff --git a/fuzzy_clock_window.cpp b/fuzzy_clock_window.cpp index 8dfae74..80171df 100644 --- a/fuzzy_clock_window.cpp +++ b/fuzzy_clock_window.cpp @@ -133,6 +133,6 @@ void fuzzyClockWindow::createActions() void fuzzyClockWindow::about() { QMessageBox::about(this, tr("О \"Неточных\" часах..."), - tr("\"Неточные\" часы v3.1.3,
(ремейк версии 2.1 " + tr("\"Неточные\" часы v3.1.4,
(ремейк версии 2.1 " "от 12.01.2004)
rasa")); } diff --git a/readme.md b/readme.md index b21c5b9..07897f5 100644 --- a/readme.md +++ b/readme.md @@ -1,58 +1,25 @@ # Неточные часы (fuzzy clock) -Небольшое окно без рамки поверх остальных окон, показывающее время словами с точностью до пяти минут: «Без четверти два», «Половина третьего», «Ровно час». Точное время выводится во всплывающей подсказке. +Часы с точностью до пяти минут: «Без четверти два», «Половина третьего», «Ровно час». Точное время выводится во всплывающей подсказке. Ремейк версии 2.1 от 12.01.2004 на Qt 6. -![fuzzy_clock.gif](https://github.com/roosslan/fuzzy_clock/blob/trunk/fuzzy_clock.gif?raw=true) +![fuzzy_clock.gif](fuzzy_clock.gif) -## Управление - -- окно перетаскивается левой кнопкой мыши; -- правая кнопка открывает меню: «About», «About Qt», «Exit»; -- положение окна сохраняется в реестре, в ключе `HKEY_CURRENT_USER\SOFTWARE\rasa\FuzzyClock`. ## Сборка Требуется Windows, Qt 6 (модуль `widgets`) и MSVC. -Сборка из командной строки разработчика Visual Studio: +Сборка либо в в Qt Creator либо из командной строки msvs: ```bat qmake fuzzy_clock.pro nmake ``` -Также проект можно открыть в Qt Creator. - Для запуска на другой машине необходимо скопировать библиотеки Qt в директорию с exe: ```bat windeployqt fuzzy_clock.exe -``` - -## Двоичные файлы - -Собранные файлы в репозитории не хранятся, они публикуются в [GitHub Releases](https://github.com/roosslan/fuzzy_clock/releases). В релизе v3.1.3 лежит только архив библиотек Qt прежней версии, без `fuzzy_clock.exe`. - -## Файлы рядом с exe - -Файлы `fuzzy.conf` и `style.css` ищутся в директории, где находится `fuzzy_clock.exe`. - -- `style.css` — оформление окна в синтаксисе Qt Style Sheets: `#fuzzyClockWindow` — окно, `#timeLabel` — текст. -- `fuzzy.conf` — фразы, из которых собирается время. - -### Формат fuzzy.conf - -INI-файл, секция `[oldstyle]`, списки внутри значения разделяются `\\`: - -| Ключ | Содержимое | -|---|---| -| `minutes` | фразы; `%0` заменяется часом в именительном падеже, `%1` — в родительном | -| `minuteRefer` | 60 чисел через пробел: для каждой минуты — номер фразы из `minutes` (с нуля) | -| `nominativeHours` | 12 названий часов в именительном падеже: «час», «два», … «двенадцать» | -| `genitiveHours` | 12 названий часов в родительном падеже: «первого», «второго», … «двенадцатого» | - -Для фраз с `%1` («Пять минут %1») подставляется следующий час, для фраз с `%0` («Без пяти %0») — тоже следующий, кроме минут 0–2 («Ровно %0»), где используется текущий. - -При ошибке в файле (неверное количество элементов, номер фразы вне списка) вместо времени выводится «Ошибка в fuzzy.conf». +``` \ No newline at end of file diff --git a/resource.rc b/resource.rc index 4c40160..095b7ef 100644 --- a/resource.rc +++ b/resource.rc @@ -3,8 +3,8 @@ IDI_ICON1 ICON DISCARDABLE "app.ico" VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,1,3,2004 - PRODUCTVERSION 3,1,3,2004 + FILEVERSION 3,1,4,2004 + PRODUCTVERSION 3,1,4,2004 FILEFLAGS 0x0L FILEFLAGSMASK 0x3fL FILEOS 0x00040004L @@ -17,12 +17,12 @@ BEGIN BEGIN VALUE "CompanyName", "rasa" VALUE "FileDescription", "Fuzzy Clock" - VALUE "FileVersion", "3.1.3.2004" + VALUE "FileVersion", "3.1.4.2004" VALUE "LegalCopyright", "Copyright (C) rasa 2004 - 2026" VALUE "InternalName", "fuzzy_clock" VALUE "OriginalFilename", "fuzzy_clock.exe" VALUE "ProductName", "Fuzzy Clock" - VALUE "ProductVersion", "3.1.3.2004" + VALUE "ProductVersion", "3.1.4.2004" END END BLOCK "VarFileInfo"