Compare commits

...

77 Commits
1.2.9 ... main

Author SHA1 Message Date
dependabot[bot] 74949e0861 build(deps): bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-08 06:11:09 +01:00
dependabot[bot] d89f111553 build(deps): bump actions/upload-artifact from 4 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-30 11:23:57 +01:00
dependabot[bot] a47c09cd97 build(deps): bump amannn/action-semantic-pull-request from 5 to 6
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 5 to 6.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: amannn/action-semantic-pull-request
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-30 11:23:43 +01:00
github-actions[bot] 074f02bf0e flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.911041%2Brev-7e495b747b51f95ae15e74377c5ce1fe69c1765f/019d8a9e-55cf-7e90-b58b-6fb096345a4d/source.tar.gz' (2026-04-13)
  → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.911667%2Brev-a4bf06618f0b5ee50f14ed8f0da77d34ecc19160/019dcae8-75b0-71d1-abd5-feab9658f0fa/source.tar.gz' (2026-04-25)
2026-04-30 11:22:23 +01:00
dependabot[bot] e46a005774 build(deps): bump crazy-max/ghaction-import-gpg from 6 to 7
Bumps [crazy-max/ghaction-import-gpg](https://github.com/crazy-max/ghaction-import-gpg) from 6 to 7.
- [Release notes](https://github.com/crazy-max/ghaction-import-gpg/releases)
- [Commits](https://github.com/crazy-max/ghaction-import-gpg/compare/v6...v7)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-import-gpg
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-23 07:37:13 +01:00
dependabot[bot] 6ced58ff10
build(deps): bump DeterminateSystems/update-flake-lock from 24 to 28 (#310) 2026-04-22 07:53:52 +01:00
dependabot[bot] a79907aac6 build(deps): bump DeterminateSystems/flakehub-push from 5 to 6
Bumps [DeterminateSystems/flakehub-push](https://github.com/determinatesystems/flakehub-push) from 5 to 6.
- [Release notes](https://github.com/determinatesystems/flakehub-push/releases)
- [Commits](https://github.com/determinatesystems/flakehub-push/compare/v5...v6)

---
updated-dependencies:
- dependency-name: DeterminateSystems/flakehub-push
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 07:34:15 +01:00
dependabot[bot] f682c78b3f
build(deps): bump DeterminateSystems/nix-installer-action from 17 to 22 (#311) 2026-04-21 07:33:07 +01:00
dependabot[bot] b5420c19a0 build(deps): bump package_info_plus from 9.0.0 to 9.0.1
Bumps [package_info_plus](https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/fluttercommunity/plus_plugins/releases)
- [Commits](https://github.com/fluttercommunity/plus_plugins/commits/package_info_plus-v9.0.1/packages/package_info_plus)

---
updated-dependencies:
- dependency-name: package_info_plus
  dependency-version: 9.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 07:32:32 +01:00
github-actions[bot] 188d4e420c flake.lock: Update
Flake lock file updates:

• Updated input 'flake-schemas':
    'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz' (2024-07-26)
  → 'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.4.2/019d5cf2-ee3c-7313-964e-f3f83c35d509/source.tar.gz' (2026-04-03)
• Updated input 'nixpkgs':
    'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2411.717484%2Brev-26245db0cb552047418cfcef9a25da91b222d6c7/01967ace-4a07-717a-a72f-cc60008c3b59/source.tar.gz' (2025-04-27)
  → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.911041%2Brev-7e495b747b51f95ae15e74377c5ce1fe69c1765f/019d8a9e-55cf-7e90-b58b-6fb096345a4d/source.tar.gz' (2026-04-13)
• Updated input 'quickemu':
    'https://api.flakehub.com/f/pinned/quickemu-project/quickemu/4.9.7/0194178b-26e5-7aa4-9330-b18d2f595e4c/source.tar.gz' (2024-12-30)
  → 'https://api.flakehub.com/f/pinned/quickemu-project/quickemu/4.9.9/019c47be-6c19-773e-881b-f7d33905672f/source.tar.gz' (2026-02-10)
• Updated input 'quickemu/flake-schemas':
    'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz' (2024-07-26)
  → 'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz' (2025-10-27)
2026-04-19 11:26:01 +01:00
dependabot[bot] efcfe7a376 build(deps): bump DeterminateSystems/flake-checker-action from 9 to 12
Bumps [DeterminateSystems/flake-checker-action](https://github.com/determinatesystems/flake-checker-action) from 9 to 12.
- [Release notes](https://github.com/determinatesystems/flake-checker-action/releases)
- [Commits](https://github.com/determinatesystems/flake-checker-action/compare/v9...v12)

---
updated-dependencies:
- dependency-name: DeterminateSystems/flake-checker-action
  dependency-version: '12'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-19 10:12:08 +01:00
dependabot[bot] f913883f5c build(deps): bump flutter_distributor from 0.4.5 to 0.6.6
Bumps [flutter_distributor](https://github.com/fastforgedev/fastforge/tree/main/packages) from 0.4.5 to 0.6.6.
- [Release notes](https://github.com/fastforgedev/fastforge/releases)
- [Commits](https://github.com/fastforgedev/fastforge/commits/HEAD/packages)

---
updated-dependencies:
- dependency-name: flutter_distributor
  dependency-version: 0.6.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-19 10:10:00 +01:00
dependabot[bot] 4337da3caf build(deps): bump package_info_plus from 8.1.1 to 9.0.0
Bumps [package_info_plus](https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus) from 8.1.1 to 9.0.0.
- [Release notes](https://github.com/fluttercommunity/plus_plugins/releases)
- [Commits](https://github.com/fluttercommunity/plus_plugins/commits/package_info_plus-v9.0.0/packages/package_info_plus)

---
updated-dependencies:
- dependency-name: package_info_plus
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-19 10:09:36 +01:00
dependabot[bot] 058d025aaa build(deps): bump DeterminateSystems/nix-installer-action from 16 to 17
Bumps [DeterminateSystems/nix-installer-action](https://github.com/determinatesystems/nix-installer-action) from 16 to 17.
- [Release notes](https://github.com/determinatesystems/nix-installer-action/releases)
- [Commits](https://github.com/determinatesystems/nix-installer-action/compare/v16...v17)

---
updated-dependencies:
- dependency-name: DeterminateSystems/nix-installer-action
  dependency-version: '17'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 10:36:42 +01:00
dependabot[bot] 90d9eb6149 build(deps): bump flutter_svg from 2.0.17 to 2.1.0
Bumps [flutter_svg](https://github.com/flutter/packages/tree/main/third_party/packages) from 2.0.17 to 2.1.0.
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/flutter_svg-v2.1.0/third_party/packages)

---
updated-dependencies:
- dependency-name: flutter_svg
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 10:36:22 +01:00
dependabot[bot] 441f9ac4f7 build(deps): bump provider from 6.1.4 to 6.1.5
Bumps [provider](https://github.com/rrousselGit/provider) from 6.1.4 to 6.1.5.
- [Commits](https://github.com/rrousselGit/provider/compare/provider-v6.1.4...provider-v6.1.5)

---
updated-dependencies:
- dependency-name: provider
  dependency-version: 6.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 10:35:55 +01:00
ivo 18e0c20ccb feat(theme): update primary color for improved dark mode contrast 2025-05-11 14:32:07 +01:00
Shawal Mbalire d5bd359a43 Update README.md
Added commands for building the macos desktop application
2025-05-11 14:30:30 +01:00
dependabot[bot] d5b34e9572 build(deps): bump DeterminateSystems/magic-nix-cache-action from 7 to 9
Bumps [DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action) from 7 to 9.
- [Release notes](https://github.com/determinatesystems/magic-nix-cache-action/releases)
- [Commits](https://github.com/determinatesystems/magic-nix-cache-action/compare/v7...v9)

---
updated-dependencies:
- dependency-name: DeterminateSystems/magic-nix-cache-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-11 14:29:29 +01:00
github-actions[bot] 77c6010a44 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2411.710315%2Brev-b681065d0919f7eb5309a93cea2cfa84dec9aa88/01939169-d1fd-700c-ac3b-46b9812bdcec/source.tar.gz?narHash=sha256-eq51hyiaIwtWo19fPEeE0Zr2s83DYMKJoukNLgGGpek%3D' (2024-12-03)
  → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2411.717484%2Brev-26245db0cb552047418cfcef9a25da91b222d6c7/01967ace-4a07-717a-a72f-cc60008c3b59/source.tar.gz?narHash=sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus%3D' (2025-04-27)
• Updated input 'quickemu':
    'https://api.flakehub.com/f/pinned/quickemu-project/quickemu/4.9.6/01907e69-af19-7432-9708-89c294672e35/source.tar.gz?narHash=sha256-zzD9nRkbYWg1vAW8QclJfrTePq1Y0h6lcIay%2Bbv56iY%3D' (2024-07-04)
  → 'https://api.flakehub.com/f/pinned/quickemu-project/quickemu/4.9.7/0194178b-26e5-7aa4-9330-b18d2f595e4c/source.tar.gz?narHash=sha256-vDYqaMz7cEzFmmwZTptwpznHezWzjnR80yWcSgQ%2BZnc%3D' (2024-12-30)
• Updated input 'quickemu/flake-schemas':
    'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.2/018b3da8-4cc3-7fbb-8ff7-1588413c53e2/source.tar.gz?narHash=sha256-j8SR19V1SRysyJwpOBF4TLuAvAjF5t%2BgMiboN4gYQDU%3D' (2023-10-16)
  → 'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz?narHash=sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw%3D' (2024-07-26)
2025-05-11 14:28:52 +01:00
dependabot[bot] f64ef8a598 build(deps): bump flutter_svg from 2.0.16 to 2.0.17
Bumps [flutter_svg](https://github.com/flutter/packages/tree/main/third_party/packages) from 2.0.16 to 2.0.17.
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/flutter_svg-v2.0.17/third_party/packages)

---
updated-dependencies:
- dependency-name: flutter_svg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-11 14:28:27 +01:00
dependabot[bot] 0e9f9a73ff build(deps): bump provider from 6.1.2 to 6.1.4
Bumps [provider](https://github.com/rrousselGit/provider) from 6.1.2 to 6.1.4.
- [Commits](https://github.com/rrousselGit/provider/compare/provider-v6.1.2...provider-v6.1.4)

---
updated-dependencies:
- dependency-name: provider
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-11 14:27:58 +01:00
dependabot[bot] c3011cf944 build(deps): bump DeterminateSystems/nix-installer-action from 13 to 16
Bumps [DeterminateSystems/nix-installer-action](https://github.com/determinatesystems/nix-installer-action) from 13 to 16.
- [Release notes](https://github.com/determinatesystems/nix-installer-action/releases)
- [Commits](https://github.com/determinatesystems/nix-installer-action/compare/v13...v16)

---
updated-dependencies:
- dependency-name: DeterminateSystems/nix-installer-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 10:01:06 +00:00
dependabot[bot] 463fd08ff2 build(deps): bump DeterminateSystems/update-flake-lock from 23 to 24
Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 23 to 24.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/v23...v24)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 09:59:21 +00:00
dependabot[bot] ff1b7bb66b build(deps): bump DeterminateSystems/flakehub-push from 4 to 5
Bumps [DeterminateSystems/flakehub-push](https://github.com/determinatesystems/flakehub-push) from 4 to 5.
- [Release notes](https://github.com/determinatesystems/flakehub-push/releases)
- [Commits](https://github.com/determinatesystems/flakehub-push/compare/v4...v5)

---
updated-dependencies:
- dependency-name: DeterminateSystems/flakehub-push
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 09:58:52 +00:00
dependabot[bot] eec0dd890d build(deps): bump DeterminateSystems/flake-checker-action from 8 to 9
Bumps [DeterminateSystems/flake-checker-action](https://github.com/determinatesystems/flake-checker-action) from 8 to 9.
- [Release notes](https://github.com/determinatesystems/flake-checker-action/releases)
- [Commits](https://github.com/determinatesystems/flake-checker-action/compare/v8...v9)

---
updated-dependencies:
- dependency-name: DeterminateSystems/flake-checker-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 09:58:32 +00:00
dependabot[bot] 4009c109a8 build(deps): bump quiver from 3.2.1 to 3.2.2
Bumps [quiver](https://github.com/google/quiver-dart) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/google/quiver-dart/releases)
- [Changelog](https://github.com/google/quiver-dart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/quiver-dart/compare/3.2.1...3.2.2)

---
updated-dependencies:
- dependency-name: quiver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 09:58:04 +00:00
Mark Johnson 622ea4d43b fix: #216 Increase max and default window size on Linux 2024-12-30 09:57:35 +00:00
Tristan Ross 4c2e3d403e feat: update for flutter 3.24 2024-12-30 09:55:41 +00:00
dependabot[bot] 99b207253b build(deps): bump shared_preferences from 2.2.3 to 2.3.2
Bumps [shared_preferences](https://github.com/flutter/packages/tree/main/packages/shared_preferences) from 2.2.3 to 2.3.2.
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/shared_preferences-v2.3.2/packages/shared_preferences)

---
updated-dependencies:
- dependency-name: shared_preferences
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-27 11:05:46 +01:00
Åke Engelbrektson 53cf0f9ea3 Update sv.po
Update Swedish translation from .pot
2024-08-27 11:04:57 +01:00
github-actions[bot] 99a386065e flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2405.633516%2Brev-8c50662509100d53229d4be607f1a3a31157fa12/0190f691-c019-7d99-b723-4b2dd6dfd38f/source.tar.gz?narHash=sha256-2ShmEaFi0kJVOEEu5gmlykN5dwjWYWYUJmlRTvZQRpU%3D' (2024-07-27)
  → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2405.634054%2Brev-4a92571f9207810b559c9eac203d1f4d79830073/01914d63-b212-712f-bb11-24565c742847/source.tar.gz?narHash=sha256-%2BCHVZnTnIYRLYsARInHYoWkujzcRkLY/gXm3s5bE52o%3D' (2024-08-13)
2024-08-27 11:04:33 +01:00
dependabot[bot] 4acd3798c8 build(deps): bump package_info_plus from 8.0.1 to 8.0.2
Bumps [package_info_plus](https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/fluttercommunity/plus_plugins/releases)
- [Commits](https://github.com/fluttercommunity/plus_plugins/commits/package_info_plus-v8.0.2/packages/package_info_plus)

---
updated-dependencies:
- dependency-name: package_info_plus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-27 11:04:11 +01:00
Phil Clifford 8d589183eb fix: repoint CONTRIBUTING discussion link 2024-08-27 11:03:49 +01:00
Yannick Mauray e8b430c909 fix: #191 : Download reported has successful on readonly storage 2024-08-02 12:25:56 +01:00
Martin Wimpress 94b98c5048 refactor: move quickemu to runtimeBinDependencies 2024-08-02 11:26:04 +01:00
Yannick Mauray 62faac71b4
feat: Enable macos desktop (#188)
* feat: macos desktop app on Apple silicon, initial config [wip]

* feat: macos desktop app on Apple silicon, initial config [wip]

* fix: use "super.key"

* chore: .vscode settings

* fix: more use of "super.key"

* chore: formating

* feat: misc macos settings.

* feat: set window size

* fix: desktop notification not (yet?) supported on macos

* fix: don't use a private variable for $version

* fix : comment

* feat: macos desktop app on Apple silicon, initial config [wip]

* fix: use "super.key"

* chore: .vscode settings

* fix: more use of "super.key"

* chore: formating

* feat: misc macos settings.

* feat: set window size

* fix: desktop notification not (yet?) supported on macos

* fix: don't use a private variable for $version

* fix : comment

* feat: in debug mode, throw an exception is a message is not translated

* chore: localizations

* feat: macos desktop app on Apple silicon, initial config [wip]

* fix: use "super.key"

* chore: .vscode settings

* fix: more use of "super.key"

* chore: formating

* feat: misc macos settings.

* feat: set window size

* fix: desktop notification not (yet?) supported on macos

* fix: don't use a private variable for $version

* fix : comment

* feat: in debug mode, throw an exception is a message is not translated

* chore: localizations

* feat: detect and use the Terminal app to connect via SSH

* fix: don't try to connect via SSH with empty username

* feat: macos desktop app on Apple silicon, initial config [wip]

* fix: use "super.key"

* chore: .vscode settings

* fix: more use of "super.key"

* chore: formating

* feat: misc macos settings.

* feat: set window size

* fix: desktop notification not (yet?) supported on macos

* fix: don't use a private variable for $version

* fix : comment

* feat: in debug mode, throw an exception is a message is not translated

* chore: localizations

* feat: detect and use the Terminal app to connect via SSH

* fix: don't try to connect via SSH with empty username

* feat: macos desktop app on Apple silicon, initial config [wip]

* feat: misc macos settings.

* feat: set window size

* fix : comment

* feat: macos desktop app on Apple silicon, initial config [wip]

* feat: misc macos settings.

* fix: app icons

* feat: packaging config

* chore: install disk name

* feat: getting ready for publication on the mac app strore

* fix: missing translations
2024-08-02 11:00:14 +01:00
Miguel Beltran 7d13a31e39 docs: fix Ubuntu ppa repository name
Went through the installation and found that there is a typo in the README.

Seems that the right ppa is the same as the one for quickemu and one with `quickgui` in it.
2024-08-02 10:56:36 +01:00
dependabot[bot] d8bdb40217 build(deps): bump package_info_plus from 8.0.0 to 8.0.1
Bumps [package_info_plus](https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/fluttercommunity/plus_plugins/releases)
- [Commits](https://github.com/fluttercommunity/plus_plugins/commits/package_info_plus-v8.0.1/packages/package_info_plus)

---
updated-dependencies:
- dependency-name: package_info_plus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 10:54:51 +01:00
dependabot[bot] 25d2b40d51 build(deps): bump DeterminateSystems/nix-installer-action from 12 to 13
Bumps [DeterminateSystems/nix-installer-action](https://github.com/determinatesystems/nix-installer-action) from 12 to 13.
- [Release notes](https://github.com/determinatesystems/nix-installer-action/releases)
- [Commits](https://github.com/determinatesystems/nix-installer-action/compare/v12...v13)

---
updated-dependencies:
- dependency-name: DeterminateSystems/nix-installer-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 10:53:52 +01:00
github-actions[bot] 13262ba46d flake.lock: Update
Flake lock file updates:

• Updated input 'flake-schemas':
    'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.2/018b3da8-4cc3-7fbb-8ff7-1588413c53e2/source.tar.gz?narHash=sha256-j8SR19V1SRysyJwpOBF4TLuAvAjF5t%2BgMiboN4gYQDU%3D' (2023-10-16)
  → 'https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz?narHash=sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw%3D' (2024-07-26)
• Updated input 'nixpkgs':
    'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2405.632931%2Brev-f12ee5f64c6a09995e71c9626d88c4efa983b488/0190afd7-6008-74ee-a4f6-a75a0a8f29b3/source.tar.gz?narHash=sha256-FZ5dnrvKkln9ESdoTR8R7GKW9rNpXNZrxGsOXsbsTpE%3D' (2024-07-12)
  → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2405.633516%2Brev-8c50662509100d53229d4be607f1a3a31157fa12/0190f691-c019-7d99-b723-4b2dd6dfd38f/source.tar.gz?narHash=sha256-2ShmEaFi0kJVOEEu5gmlykN5dwjWYWYUJmlRTvZQRpU%3D' (2024-07-27)
2024-08-02 10:53:32 +01:00
Janis 37e733b280 Update README.md 2024-08-02 10:53:14 +01:00
Janis b8913f4ed7 Update README.md 2024-08-02 10:53:14 +01:00
dependabot[bot] f4edc9dc33 build(deps): bump process_run from 1.0.0+1 to 1.1.0
Bumps [process_run](https://github.com/tekartik/process_run.dart/tree/master/packages) from 1.0.0+1 to 1.1.0.
- [Commits](https://github.com/tekartik/process_run.dart/commits/v1.1.0/packages)

---
updated-dependencies:
- dependency-name: process_run
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 10:52:41 +01:00
github-actions[bot] aa840182b0 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2405.631440%2Brev-2819fffa7fa42156680f0d282c60d81e8fb185b7/0190034c-678d-7039-b45c-fa38168f2500/source.tar.gz?narHash=sha256-mJi4/gjiwQlSaxjA6AusXBN/6rQRaPCycR7bd8fydnQ%3D' (2024-06-09)
  → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2405.632931%2Brev-f12ee5f64c6a09995e71c9626d88c4efa983b488/0190afd7-6008-74ee-a4f6-a75a0a8f29b3/source.tar.gz?narHash=sha256-FZ5dnrvKkln9ESdoTR8R7GKW9rNpXNZrxGsOXsbsTpE%3D' (2024-07-12)
2024-07-14 20:09:17 +01:00
Martin Wimpress 7de1087666
chore: update flake.lock 2024-07-04 17:06:42 +01:00
Martin Wimpress fb3bce2f7b chore: bump version to 1.2.10 2024-07-04 14:15:18 +01:00
Martin Wimpress c42976c453
docs: add FUNDING.yml 2024-07-03 13:34:04 +01:00
Martin Wimpress 679f5c3523 fix: check for running VM processes using kill -0 2024-07-03 13:01:03 +01:00
Martin Wimpress ada669500f
docs: update pull_request_template.md (#184) 2024-07-03 11:52:08 +01:00
Martin Wimpress 1f4f120eb2 chore: update pubspec.lock.json 2024-07-03 11:42:13 +01:00
dependabot[bot] d591153da4 build(deps): bump gettext_i18n from 1.0.5 to 1.0.7
Bumps [gettext_i18n](https://github.com/frenchguych/gettext_i18n) from 1.0.5 to 1.0.7.
- [Release notes](https://github.com/frenchguych/gettext_i18n/releases)
- [Changelog](https://github.com/frenchguych/gettext_i18n/blob/main/CHANGELOG.md)
- [Commits](https://github.com/frenchguych/gettext_i18n/compare/v1.0.5...v1.0.7)

---
updated-dependencies:
- dependency-name: gettext_i18n
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 16:14:50 +01:00
dependabot[bot] 59a623abfd build(deps): bump file_picker from 8.0.5 to 8.0.6
Bumps [file_picker](https://github.com/miguelpruivo/flutter_file_picker) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/miguelpruivo/flutter_file_picker/releases)
- [Changelog](https://github.com/miguelpruivo/flutter_file_picker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/miguelpruivo/flutter_file_picker/compare/8.0.5...8.0.6)

---
updated-dependencies:
- dependency-name: file_picker
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 11:13:53 +01:00
Yannick Mauray 275d065c74 fix: localizations 2024-07-02 02:22:18 +01:00
Martin Wimpress 3f8be1bfc0 feat: nix package, overlay and devshell use the quickemu FlakeHub flake 2024-07-02 02:21:53 +01:00
Martin Wimpress a5a4c7cd11 docs: make the pubspec description match the project tagline 2024-07-01 02:09:21 +01:00
Martin Wimpress 8b77041cf2 feat: add authors to the left menu 2024-07-01 02:09:21 +01:00
Martin Wimpress cdbe799232 chore: make the disabled dark mode toggle look like a toggle 2024-07-01 02:09:21 +01:00
Martin Wimpress dbc5e3f551 feat: kill VMs using quickemu --kill when running quickemu >= 4.9.6 2024-07-01 01:52:58 +01:00
Martin Wimpress bdce26ebb6 docs: update pull_request_template.md 2024-07-01 01:52:21 +01:00
Martin Wimpress dcadfb69f5 feat: add fetchQuickemuVersion() and display version in the menu 2024-07-01 01:24:27 +01:00
Martin Wimpress 6f30c78251 refactor: check in pubspec.lock
devshell.nix auto-regenerates pubspec.lock and pubspec.lock.json
2024-06-30 18:16:04 +01:00
Martin Wimpress c334ddd7c2 fix: correct the flake description 2024-06-30 18:16:04 +01:00
Martin Wimpress 7a59735ad9 ci: only test build quickgui if the flutter app was changed 2024-06-30 16:13:52 +01:00
Martin Wimpress 2cc24c74fe docs: add pull_request_template.md 2024-06-30 00:54:50 +01:00
Martin Wimpress c7fbc8ae5a docs: update SECURITY.md 2024-06-30 00:15:34 +01:00
Martin Wimpress b8943ed0db docs: update SECURITY.md 2024-06-30 00:12:12 +01:00
Martin Wimpress 9b70107668 docs: update issue templates 2024-06-29 23:59:29 +01:00
Martin Wimpress 1b0f9964b9 docs: add SECURITY.md 2024-06-29 23:36:06 +01:00
Martin Wimpress 88e689a9e3 docs: add CONTRIBUTING.md 2024-06-29 23:25:11 +01:00
Martin Wimpress b0511f18e0 Create CODE_OF_CONDUCT.md 2024-06-29 23:19:00 +01:00
Martin Wimpress 21347fd740 ci: add semantic commit validator 2024-06-29 22:54:50 +01:00
dependabot[bot] 1745e17c27 build(deps): bump process_run from 0.14.2 to 1.0.0+1
Bumps [process_run](https://github.com/tekartik/process_run.dart/tree/master/packages) from 0.14.2 to 1.0.0+1.
- [Commits](https://github.com/tekartik/process_run.dart/commits/v1.0.0/packages)

---
updated-dependencies:
- dependency-name: process_run
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-29 22:46:51 +01:00
dependabot[bot] 4536776082 build(deps): bump DeterminateSystems/update-flake-lock from 22 to 23
Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 22 to 23.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/v22...v23)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-29 22:33:31 +01:00
Martin Wimpress 61c27e6948 ci: add pub to dependabot 2024-06-29 22:30:55 +01:00
github-actions[bot] bf3c7ec511 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.643242%2Brev-2893f56de08021cffd9b6b6dfc70fd9ccd51eb60/0190530b-f61b-7788-9601-b336b1caf671/source.tar.gz?narHash=sha256-ECni%2BIkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko%3D' (2024-06-24)
  → 'https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.644565%2Brev-b2852eb9365c6de48ffb0dc2c9562591f652242a/01906511-d0fc-7244-b596-2d790f5bfdb0/source.tar.gz?narHash=sha256-C8e9S7RzshSdHB7L%2Bv9I51af1gDM5unhJ2xO1ywxNH8%3D' (2024-06-27)
2024-06-29 22:17:55 +01:00
Martin Wimpress cc7652b1e3 ci: add Nix flake checker and updater 2024-06-29 22:16:24 +01:00
98 changed files with 3596 additions and 322 deletions

8
.envrc
View File

@ -1,9 +1 @@
use flake
flutter pub get
flutter config --enable-linux-desktop
dart pub global activate flutter_distributor
echo "**********************************************************************"
echo "* flutter build linux --release *"
echo "* flutter_distributor package --platform=linux --targets=zip *"
echo "* yq eval pubspec.lock -o=json -P > pubspec.lock.json *"
echo "**********************************************************************"

3
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,3 @@
# These are supported funding model platforms
github: [ymauray, marxjohnson, flexiondotorg]

35
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us improve
title: 'bug: description of the bug you encountered'
labels: ''
assignees: ''
---
**I confirm this bug has not already been reported**
- [ ] I have searched the issues and this bug has not been reported previously
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Desktop (please complete the following information):**
- Quickgui Versdion: [e.g 1.2.9]
- OS: [e.g. Ubuntu]
- Version [e.g. 24.04]
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.

View File

@ -0,0 +1,23 @@
---
name: Feature request
about: Suggest an idea for this project
title: 'feat: describe the feature you are requesting'
labels: ''
assignees: ''
---
**I confirm this feature has not been previously requested**
- [ ] I have searched the issues and this feature has not previously been requested
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -3,5 +3,8 @@ updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
interval: "weekly"
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: "daily"

34
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1,34 @@
# Description
Please include a summary of the changes along with any relevant motivation and context.
<!-- Delete if not relevant -->
- Closes #
- Fixes #
- Resolves #
## Type of change
<!-- Delete any that are not relevant -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Packaging (updates the packaging)
- [ ] Documentation (updates the documentation)
# Checklist:
<!-- Delete any that are not relevant -->
- [ ] I have performed a self-review of my code
- [ ] I have tested my code in common scenarios and confirmed there are no regressions
- [ ] I have added comments to my code, particularly in hard-to-understand sections
- [ ] I have made corresponding changes to the documentation
- [ ] I have updated and committed `pubspec.yaml` and `pubspec.lock`
- `flutter pub get`
- [ ] I have updated and committed `pubspec.lock.json` (*required for Nix*)
- `yq eval pubspec.lock -o=json -P > pubspec.lock.json`
*`yq` above is [yq-go](https://github.com/mikefarah/yq)*

View File

@ -4,9 +4,19 @@ on:
pull_request:
branches:
- main
paths:
- pubspec.yaml
- assets/**
- lib/**
- linux/**
push:
branches:
- main
paths:
- pubspec.yaml
- assets/**
- lib/**
- linux/**
workflow_dispatch:
# TODO: arm64 runner
@ -17,7 +27,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: "Checkout 🥡"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Install Flutter 🦋"
uses: subosito/flutter-action@v2
with:
@ -26,7 +36,7 @@ jobs:
flutter-version-file: pubspec.yaml
- name: "Install dependencies 💾"
run: |
sudo apt-get -y install clang cmake ninja-build pkg-config libgtk-3-0 libgtk-3-dev libblkid1 liblzma5
sudo apt-get -y install clang cmake libblkid1 liblzma5 libgtk-3-0 libgtk-3-dev ninja-build pkg-config
- name: Install Flutter dependencies 🦋
run: flutter pub get
- name: Enable Linux Desktop 🐧
@ -36,7 +46,7 @@ jobs:
- name: Show artifacts 👀
run: tree build/linux/x64/release/bundle
- name: Upload artifacts ⤴️
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: Quickgui-${{github.run_number}}-linux-x64
path: build/linux/x64/release/bundle
@ -46,7 +56,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: "Checkout 🥡"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Install Flutter 🦋"
uses: subosito/flutter-action@v2
with:
@ -55,7 +65,7 @@ jobs:
flutter-version-file: pubspec.yaml
- name: "Install dependencies 💾"
run: |
sudo apt-get -y install clang cmake ninja-build pkg-config libgtk-3-0 libgtk-3-dev libblkid1 liblzma5
sudo apt-get -y install clang cmake libblkid1 liblzma5 libgtk-3-0 libgtk-3-dev ninja-build pkg-config
sudo apt-get -y install debhelper-compat distro-info dput devscripts rsync
- name: Install Flutter dependencies 🦋
run: flutter pub get
@ -64,7 +74,7 @@ jobs:
- name: Build artifacts 🏗️
run: flutter build linux --release
- name: "Import gpg key 🔑"
uses: crazy-max/ghaction-import-gpg@v6
uses: crazy-max/ghaction-import-gpg@v7
with:
gpg_private_key: ${{ secrets.PPA_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PPA_GPG_PASSPHRASE }}
@ -108,11 +118,11 @@ jobs:
contents: "read"
steps:
- name: "Checkout 🥡"
uses: "actions/checkout@v4"
uses: "actions/checkout@v6"
- name: "Install Nix ❄️"
uses: "DeterminateSystems/nix-installer-action@v12"
uses: "DeterminateSystems/nix-installer-action@v22"
- name: "Enable Magic Nix Cache 🪄"
uses: "DeterminateSystems/magic-nix-cache-action@v7"
uses: "DeterminateSystems/magic-nix-cache-action@v9"
- name: "Build with Nix ❄️"
run: |
nix build .#quickgui

21
.github/workflows/flake-checker.yml vendored Normal file
View File

@ -0,0 +1,21 @@
name: Flake ❄️ Checker ✅
on:
push:
branches:
- main
schedule:
- cron: '42 0 * * 6'
workflow_dispatch:
jobs:
flake-checker:
name: Flake Checker
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: DeterminateSystems/nix-installer-action@v22
- uses: DeterminateSystems/magic-nix-cache-action@v9
- uses: DeterminateSystems/flake-checker-action@v12

20
.github/workflows/flake-updater.yml vendored Normal file
View File

@ -0,0 +1,20 @@
name: Flake ❄️ Lock 🔒️ Updater ✨
on:
schedule:
- cron: '37 13 14,28 * *'
workflow_dispatch:
jobs:
lock-updater:
name: Flake Lock Updater
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: DeterminateSystems/nix-installer-action@v22
- uses: DeterminateSystems/magic-nix-cache-action@v9
- uses: DeterminateSystems/update-flake-lock@v28
with:
pr-title: "chore: update flake.lock"

27
.github/workflows/lint-pr.yml vendored Normal file
View File

@ -0,0 +1,27 @@
name: "Lint Pull Request 🐙"
on:
pull_request_target:
types:
- opened
- edited
- synchronize
permissions:
pull-requests: read
jobs:
main:
name: Validate pull request title
runs-on: ubuntu-22.04
steps:
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# If the PR only contains a single commit, the action will validate that
# it matches the configured pattern.
validateSingleCommit: true
# Related to `validateSingleCommit` you can opt-in to validate that the PR
# title matches a single commit to avoid confusion.
validateSingleCommitMatchesPrTitle: true

View File

@ -24,7 +24,7 @@ jobs:
name: "Check versions ⚖️"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: "Compare App and Git versions 🟰"
@ -46,7 +46,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: "Checkout 🥡"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Install Flutter 🦋"
uses: subosito/flutter-action@v2
with:
@ -100,12 +100,12 @@ jobs:
id-token: "write"
contents: "read"
steps:
- uses: "actions/checkout@v4"
- uses: "actions/checkout@v6"
with:
ref: "${{ (inputs.tag != null) && format('refs/tags/{0}', inputs.tag) || '' }}"
- uses: "DeterminateSystems/nix-installer-action@v12"
- uses: "DeterminateSystems/magic-nix-cache-action@v7"
- uses: "DeterminateSystems/flakehub-push@v4"
- uses: "DeterminateSystems/nix-installer-action@v22"
- uses: "DeterminateSystems/magic-nix-cache-action@v9"
- uses: "DeterminateSystems/flakehub-push@v6"
with:
visibility: "public"
name: "quickemu-project/quickgui"
@ -117,7 +117,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: "Checkout 🥡"
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: "Install Flutter 🦋"
uses: subosito/flutter-action@v2
with:
@ -126,7 +126,7 @@ jobs:
flutter-version-file: pubspec.yaml
- name: "Install dependencies 💾"
run: |
sudo apt-get -y install clang cmake ninja-build pkg-config libgtk-3-0 libgtk-3-dev libblkid1 liblzma5
sudo apt-get -y install clang cmake libblkid1 liblzma5 libgtk-3-0 libgtk-3-dev ninja-build pkg-config
sudo apt-get -y install debhelper-compat distro-info dput devscripts rsync
- name: Install Flutter dependencies 🦋
run: flutter pub get
@ -135,7 +135,7 @@ jobs:
- name: Build artifacts 🏗️
run: flutter build linux --release
- name: "Import gpg key 🔑"
uses: crazy-max/ghaction-import-gpg@v6
uses: crazy-max/ghaction-import-gpg@v7
with:
gpg_private_key: ${{ secrets.PPA_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PPA_GPG_PASSPHRASE }}

2
.gitignore vendored
View File

@ -6,8 +6,6 @@
.packages
build/
dist/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock
# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.

View File

@ -4,7 +4,27 @@
# This file should be version controlled and should not be manually edited.
version:
revision: 3595343e20a61ff16d14e8ecc25f364276bb1b8b
channel: stable
revision: "761747bfc538b5af34aa0d3fac380f1bc331ec49"
channel: "stable"
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: macos
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

View File

@ -1,7 +1,7 @@
{
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true,
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"cmake.sourceDirectory": "${workspaceFolder}/linux"
}

128
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
#quickemu channel on Discord.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

9
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,9 @@
# Contributing
We welcome contributions to Quickgui.
- Help other Quickgui users by answering questions in the [Quickgui Discussions](https://github.com/quickemu-project/discussions/categories/quickgui) 🛟
- Improve the documentation in [this README](https://github.com/quickemu-project/quickgui/edit/master/README.md) and the [Quickgui Wiki](https://github.com/quickemu-project/quickgui/wiki) 📖
- File bug reports and feature requests in the [Quickgui Issues](https://github.com/quickemu-project/quickgui/issues) 📁
- Submit [Quickgui Pull requests](https://github.com/quickemu-project/quickgui/pulls) to fix bugs 🐞 or add new features ✨
- Commit messages must [conform to the Conventional Commits specification](https://www.conventionalcommits.org/).

View File

@ -33,7 +33,7 @@ If you don't have Quickemu installed then go and follow the Quickemu installatio
A .deb package is available for Debian on our [release page](https://github.com/quickemu-project/quickgui/releases).
- Download the latest .deb package
- Install it with `apt-get install ./quickgui-1.2.9+1-linux.deb`
- Install it with `apt-get install ./quickgui-1.2.10+1-linux.deb`
## Fedora
@ -64,7 +64,7 @@ systemPackages = with pkgs; [
Ubuntu users can install Quickgui using the [.deb package described above for Debian](#debian) or from our PPA.
```shell
sudo add-apt-repository ppa:flexiondotorg/quickgui
sudo apt-add-repository ppa:flexiondotorg/quickemu
sudo apt-get update
sudo apt-get install quickgui
```
@ -78,14 +78,14 @@ We provide an AppImage and a pre-compiled binary of Quickemu in a .zip file.
The AppImage should work on most Linux distributions.
* [Download](https://github.com/quickemu-project/quickgui/releases) the latest AppImage.
* `chmod +x quickgui-1.2.9+1-linux.AppImage`
* `./quickgui-1.2.9+1-linux.AppImage`
* `chmod +x quickgui-1.2.10+1-linux.AppImage`
* `./quickgui-1.2.10+1-linux.AppImage`
### Pre-compiled binary
* [Download](https://github.com/quickemu-project/quickgui/releases) the latest .zip file.
* `unzip quickgui-1.2.9+1-linux.zip`
* `cd quickgui-1.2.9+1-linux`
* `unzip quickgui-1.2.10+1-linux.zip`
* `cd quickgui-1.2.10+1-linux`
* `chmod +x quickgui`
* `./quickgui`
@ -100,6 +100,17 @@ To compile the Quickgui yourself:
* `flutter config --enable-linux-desktop`
* `flutter build linux --release`
## Macos
This requires flutter to be installed as well as xcode development for macos nad cocoapods.
It will install quickgui app in the applications and after running the command below you should be able to search for it through spotlight
```bash
git clone https://github.com/quickemu-project/quickgui.git
cd quickgui
flutter pub get
flutter config --enable-macos-desktop
flutter build macos --release
```
The compiled binary will be in `build/linux/x64/release/bundle/quickgui`.
You can run it with:

18
SECURITY.md Normal file
View File

@ -0,0 +1,18 @@
# Security Policy
## Supported Versions
Here are the versions of Quickgui currently being supported with security updates.
| Version | Supported |
| ------- | ------------------ |
| 1.2.x | :white_check_mark: |
| < 1.1 | :x: |
## Reporting a Vulnerability
If you discover a vulnerability in Quickgui then [file an issue](https://github.com/quickemu-project/quickgui/issues/new) and click *Report a vulnerability*.
- Quickgui is a spare-time hobby project.
- We do not have SLAs for responding to security issues.
- It is a best-efforts basis.

View File

@ -49,8 +49,8 @@ msgstr "Správce stahování"
msgid "Downloading (no progress available)..."
msgstr "Probíhá stahování (průběh není k dispozici) …"
msgid "Downloading...{0}%"
msgstr "Probíhá stahování …{0}%"
msgid "Downloading... {0}%"
msgstr "Probíhá stahování  {0}%"
msgid "Downloading {0}"
msgstr "Probíhá stahování {0}"

View File

@ -55,7 +55,7 @@ msgstr "Dadlwythwr"
msgid "Downloading (no progress available)..."
msgstr "Llwytho i lawr (dim cynnydd ar gael)..."
msgid "Downloading...{0}%"
msgid "Downloading... {0}%"
msgstr "Llwytho i lawr... {0}%"
msgid "Downloading {0}"

View File

@ -50,8 +50,8 @@ msgstr "Downloader"
msgid "Downloading (no progress available)..."
msgstr "Lädt herunter (Kein Fortschritt verfügbar) …"
msgid "Downloading...{0}%"
msgstr "Herunterladen …{0}%"
msgid "Downloading... {0}%"
msgstr "Herunterladen  {0}%"
msgid "Downloading {0}"
msgstr "{0} wird herunterladen"

View File

@ -49,8 +49,8 @@ msgstr "Downloader"
msgid "Downloading (no progress available)..."
msgstr "Downloading (no progress available)..."
msgid "Downloading...{0}%"
msgstr "Downloading...{0}%"
msgid "Downloading... {0}%"
msgstr "Downloading... {0}%"
msgid "Downloading {0}"
msgstr "Downloading {0}"
@ -184,3 +184,15 @@ msgstr "SSH username"
# Connect to the VM via SSH
msgid "Connect"
msgstr "Connect"
msgid "Loading available downloads"
msgstr "Loading available downloads"
msgid "Powered by"
msgstr "Powered by"
msgid "Error"
msgstr "Error"
msgid "Could not write to the working directory. Please check the permissions."
msgstr "Could not write to the working directory. Please check the permissions."

View File

@ -62,8 +62,8 @@ msgid "Downloading (no progress available)..."
msgstr "Descargando (progreso no disponible)..."
#, fuzzy
msgid "Downloading...{0}%"
msgstr "Descargando...{0}%"
msgid "Downloading... {0}%"
msgstr "Descargando... {0}%"
#, fuzzy
msgid "Downloading {0}"

View File

@ -49,8 +49,8 @@ msgstr "Gestionnaire de téléchargements"
msgid "Downloading (no progress available)..."
msgstr "Téléchargement (pas de barre de progression)..."
msgid "Downloading...{0}%"
msgstr "Téléchargement...{0}%"
msgid "Downloading... {0}%"
msgstr "Téléchargement... {0}%"
msgid "Downloading {0}"
msgstr "Téléchargement de {0}"
@ -184,3 +184,15 @@ msgstr "Nom d'utilisateur SSH"
# Connect to the VM via SSH
msgid "Connect"
msgstr "Connecter"
msgid "Error"
msgstr "Erreur"
msgid "Could not write to the working directory. Please check the permissions."
msgstr "Impossible d'écrire dans le répertoire de travail. Veuillez vérifier les permissions."
msgid "Loading available downloads"
msgstr "Chargement des téléchargements disponibles"
msgid "Powered by"
msgstr "Propulsé par"

View File

@ -51,8 +51,8 @@ msgstr "Inneal luchdachadh sìos"
msgid "Downloading (no progress available)..."
msgstr "A luchdachadh sìos (chan eil adhartas ri fhaighinn)"
msgid "Downloading...{0}%"
msgstr "A luchdachadh sìos...{0}%"
msgid "Downloading... {0}%"
msgstr "A luchdachadh sìos... {0}%"
msgid "Downloading {0}"
msgstr "Thèid {0} a luchdachadh sìos"

View File

@ -49,8 +49,8 @@ msgstr "Letöltő"
msgid "Downloading (no progress available)..."
msgstr "Letöltés (a haladásról nincs visszajelzés)..."
msgid "Downloading...{0}%"
msgstr "Letöltés...{0}%"
msgid "Downloading... {0}%"
msgstr "Letöltés... {0}%"
msgid "Downloading {0}"
msgstr "Letöltés {0}"

View File

@ -54,8 +54,8 @@ msgstr "Download"
msgid "Downloading (no progress available)..."
msgstr "Download (nessun progresso disponibile)..."
msgid "Downloading...{0}%"
msgstr "Scaricando...{0}%"
msgid "Downloading... {0}%"
msgstr "Scaricando... {0}%"
msgid "Downloading {0}"
msgstr "Scaricamento di {0}"

View File

@ -49,8 +49,8 @@ msgstr "ダウンローダ"
msgid "Downloading (no progress available)..."
msgstr "ダウンロード中(進行状況を推定中)..."
msgid "Downloading...{0}%"
msgstr "ダウンロード中...{0}%"
msgid "Downloading... {0}%"
msgstr "ダウンロード中... {0}%"
msgid "Downloading {0}"
msgstr "{0}をダウンロード中"

View File

@ -55,8 +55,8 @@ msgstr "Downloader"
msgid "Downloading (no progress available)..."
msgstr "Downloaden (geen voortgang beschikbaar)..."
msgid "Downloading...{0}%"
msgstr "Downloaden...{0}%"
msgid "Downloading... {0}%"
msgstr "Downloaden... {0}%"
msgid "Downloading {0}"
msgstr "Downloaden {0}"

View File

@ -55,8 +55,8 @@ msgstr "Nedlaster"
msgid "Downloading (no progress available)..."
msgstr "Nedlasting (ingen fremgang tilgjengelig)..."
msgid "Downloading...{0}%"
msgstr "Laster ned...{0}%"
msgid "Downloading... {0}%"
msgstr "Laster ned... {0}%"
msgid "Downloading {0}"
msgstr "Laster ned {0}"

View File

@ -48,7 +48,7 @@ msgstr "Telecargador"
msgid "Downloading (no progress available)..."
msgstr "Telecargament (cap de barra de progression pas disponibla)..."
msgid "Downloading...{0}%"
msgid "Downloading... {0}%"
msgstr "Telecargament... {0}%"
msgid "Downloading {0}"

View File

@ -49,8 +49,8 @@ msgstr "Downloader"
msgid "Downloading (no progress available)..."
msgstr "Baixando (progresso não disponível)..."
msgid "Downloading...{0}%"
msgstr "Baixando...{0}%"
msgid "Downloading... {0}%"
msgstr "Baixando... {0}%"
msgid "Downloading {0}"
msgstr "Baixando {0}"

View File

@ -49,8 +49,8 @@ msgstr "Transferidor"
msgid "Downloading (no progress available)..."
msgstr "A transferir (progresso não disponível)..."
msgid "Downloading...{0}%"
msgstr "A transferir...{0}%"
msgid "Downloading... {0}%"
msgstr "A transferir... {0}%"
msgid "Downloading {0}"
msgstr "A transferir {0}"

View File

@ -49,7 +49,7 @@ msgstr ""
msgid "Downloading (no progress available)..."
msgstr ""
msgid "Downloading...{0}%"
msgid "Downloading... {0}%"
msgstr ""
msgid "Downloading {0}"
@ -187,3 +187,14 @@ msgstr ""
msgid "Connect"
msgstr ""
msgid "Error"
msgstr ""
msgid "Could not write to the working directory. Please check the permissions."
msgstr ""
msgid "Loading available downloads"
msgstr ""
msgid "Powered by"
msgstr ""

View File

@ -55,8 +55,8 @@ msgstr "Загрузчик"
msgid "Downloading (no progress available)..."
msgstr "Загрузка (нет прогресса)..."
msgid "Downloading...{0}%"
msgstr "Загрузка...{0}%"
msgid "Downloading... {0}%"
msgstr "Загрузка... {0}%"
msgid "Downloading {0}"
msgstr "Загрузка {0}"

View File

@ -1,11 +1,11 @@
# Swedish translation for quickgui.
# Åke Engelbrektson <eson@svenskasprakfiler.se>, 2022.
# Åke Engelbrektson <eson@svenskasprakfiler.se>, 2022, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: quickgui\n"
"POT-Creation-Date: 2021-09-29 09:59+0200\n"
"PO-Revision-Date: 2022-06-13 13:19+0200\n"
"PO-Revision-Date: 2024-08-14 21:09+0200\n"
"Last-Translator: Åke Engelbrektson <eson@svenskasprakfiler.se>\n"
"Language-Team: \n"
"Language: sv\n"
@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.1\n"
"X-Generator: Poedit 3.4.4\n"
"X-Poedit-Basepath: .\n"
msgid "Quickgui : a Flutter frontend for Quickget and Quickemu"
@ -52,7 +52,7 @@ msgstr "Nerladdare"
msgid "Downloading (no progress available)..."
msgstr "Laddar ner (inget förlopp tillgängligt)..."
msgid "Downloading...{0}%"
msgid "Downloading... {0}%"
msgstr "Laddar ner... {0}%"
msgid "Downloading {0}"
@ -135,3 +135,74 @@ msgstr "Du är på väg att stoppa den virtuella maskinen {0}"
msgid "Language"
msgstr "Språk"
msgid "Directory where the machines are stored"
msgstr "Plats där maskinerna lagras"
msgid "Search version"
msgstr "Sök version"
msgid "quickemu was not found in your PATH"
msgstr "quickemu kunde inte hittas i din PATH"
msgid "Please install it and try again."
msgstr "Installera det och försök igen."
# The complete sentence is "See github.com/quickemu-project/quickemu for more information"
msgid "See"
msgstr "Se"
# The complete sentence is "See github.com/quickemu-project/quickemu for more information"
msgid "for more information"
msgstr "för mer information"
msgid "Delete {0}"
msgstr "Ta bort {0}"
msgid ""
"You are about to delete {0}. This cannot be undone. Would you like to delete "
"the disk image but keep the configuration, or delete the whole VM?"
msgstr ""
"Du är på väg att ta bort {0}. Detta kan inte ångras. Vill du ta bort "
"diskavbildningen men behålla konfigurationen eller ta bort hela den "
"virtuella datorn?"
msgid "Delete disk image"
msgstr "Ta bor diskavbilden"
msgid "Delete whole VM"
msgstr "Ta bort hela den virtuella datorn"
msgid "Connect display with SPICE"
msgstr "Anslut skärm med SPICE"
msgid "SPICE client not found"
msgstr "Ingen SPICE-klient hittades"
msgid "Connect with SSH"
msgstr "Anslut via SSH"
msgid "SSH server not detected on guest"
msgstr "Ingen SSH-server identifierad på gästen"
msgid "Launch SSH connection to {0}"
msgstr "Starta SSH-anslutning till {0}"
msgid "SSH username"
msgstr "SSH-användarnamn"
# Connect to the VM via SSH
msgid "Connect"
msgstr "Anslut"
msgid "Error"
msgstr "Fel"
msgid "Could not write to the working directory. Please check the permissions."
msgstr "Kunde inte skriva till arbetsmappen. Kontrollera rättigheterna."
msgid "Loading available downloads"
msgstr "Läser in tillgängliga nerladdningar"
msgid "Powered by"
msgstr "Drivs av"

View File

@ -49,8 +49,8 @@ msgstr "Yükleyici"
msgid "Downloading (no progress available)..."
msgstr "Yükleniyor (ilerleme yok)..."
msgid "Downloading...{0}%"
msgstr "Yükleniyor...{0}%"
msgid "Downloading... {0}%"
msgstr "Yükleniyor... {0}%"
msgid "Downloading {0}"
msgstr "Yükleniyor {0}"

View File

@ -47,6 +47,14 @@ mkShell rec {
# Packages installed via `dart pub global activate package_name` are
# located in the `$PUB_CACHE/bin` directory.
shellHook = ''
flutter pub get
yq eval pubspec.lock -o=json -P > pubspec.lock.json
flutter config --enable-linux-desktop
dart pub global activate flutter_distributor
echo "**********************************************************************"
echo "* flutter build linux --release *"
echo "* flutter_distributor package --platform=linux --targets=zip *"
echo "**********************************************************************"
if [ -z "$PUB_CACHE" ]; then
export PATH="$PATH":"$HOME/.pub-cache/bin"
else

View File

@ -12,3 +12,10 @@ releases:
dart-define:
APP_ENV: dev
publish_to: none
- name: macos-dev
jobs:
- name: quickgui-dev-macos
package:
platform: macos
target: dmg
publish_to: none

View File

@ -2,12 +2,26 @@
"nodes": {
"flake-schemas": {
"locked": {
"lastModified": 1697467827,
"narHash": "sha256-j8SR19V1SRysyJwpOBF4TLuAvAjF5t+gMiboN4gYQDU=",
"rev": "764932025c817d4e500a8d2a4d8c565563923d29",
"revCount": 29,
"lastModified": 1775244557,
"narHash": "sha256-iYXRXIX9eafJmwJFAhqT3YxvvpNRuPFSLRCSpvGh8Ic=",
"rev": "15edbeeaf77e42216dbcba8bfd907fdeabb75a2b",
"revCount": 132,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.2/018b3da8-4cc3-7fbb-8ff7-1588413c53e2/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.4.2/019d5cf2-ee3c-7313-964e-f3f83c35d509/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A.tar.gz"
}
},
"flake-schemas_2": {
"locked": {
"lastModified": 1761577921,
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
"revCount": 107,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
},
"original": {
"type": "tarball",
@ -16,22 +30,43 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1719254875,
"narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=",
"rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60",
"revCount": 643242,
"lastModified": 1777077449,
"narHash": "sha256-AIiMJiqvGrN4HyLEbKAoCSRRYn0rnlW5VbKNIMIYqm4=",
"rev": "a4bf06618f0b5ee50f14ed8f0da77d34ecc19160",
"revCount": 911667,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.643242%2Brev-2893f56de08021cffd9b6b6dfc70fd9ccd51eb60/0190530b-f61b-7788-9601-b336b1caf671/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.911667%2Brev-a4bf06618f0b5ee50f14ed8f0da77d34ecc19160/019dcae8-75b0-71d1-abd5-feab9658f0fa/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A.tar.gz"
}
},
"quickemu": {
"inputs": {
"flake-schemas": "flake-schemas_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1770727319,
"narHash": "sha256-djTJr1I0LDBdbIPtTVWB4b/t1jSQ2/+RtQtWTnMLBFs=",
"rev": "81d038cbaeb8fc4f7154489447fe9f856299c742",
"revCount": 2292,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/quickemu-project/quickemu/4.9.9/019c47be-6c19-773e-881b-f7d33905672f/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/quickemu-project/quickemu/%2A.tar.gz"
}
},
"root": {
"inputs": {
"flake-schemas": "flake-schemas",
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs",
"quickemu": "quickemu"
}
}
},

View File

@ -1,38 +1,47 @@
{
description = "Quickemu flake";
description = "Quickgui flake";
inputs = {
flake-schemas.url = "https://flakehub.com/f/DeterminateSystems/flake-schemas/*.tar.gz";
nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz";
nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/*.tar.gz";
quickemu.url = "https://flakehub.com/f/quickemu-project/quickemu/*.tar.gz";
quickemu.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {
self,
flake-schemas,
nixpkgs,
quickemu,
}: let
forAllSystems = function:
nixpkgs.lib.genAttrs [
"x86_64-linux"
# TODO: Enable when upstream supports these platforms
#"aarch64-linux"
#"x86_64-darwin"
#"aarch64-darwin"
] (system: function nixpkgs.legacyPackages.${system});
# Define supported systems and a helper function for generating system-specific outputs
#TODO: Add the following as quickemu/quickgui/GitHub builders support them:
# aarch64-darwin aarch64-linux x86_64-darwin
supportedSystems = [ "aarch64-linux" "x86_64-linux" ];
forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f {
system = system;
pkgs = import nixpkgs { inherit system; };
});
in {
# Schemas tell Nix about the structure of your flake's outputs
# Define schemas for the flake's outputs
schemas = flake-schemas.schemas;
overlays.default = final: prev: {
quickgui = final.callPackage ./package.nix {};
};
# Define overlays for each supported system
overlays = forEachSupportedSystem ({pkgs, system, ...}: {
default = final: prev: {
quickgui = final.callPackage ./package.nix { quickemu = quickemu.packages.${system}.default; };
};
});
packages = forAllSystems (pkgs: rec {
quickgui = pkgs.callPackage ./package.nix {};
# Define packages for each supported system
packages = forEachSupportedSystem ({pkgs, system, ...}: rec {
quickgui = pkgs.callPackage ./package.nix { quickemu = quickemu.packages.${system}.default; };
default = quickgui;
});
devShells = forAllSystems (pkgs: {
default = pkgs.callPackage ./devshell.nix {};
# Define devShells for each supported system
devShells = forEachSupportedSystem ({pkgs, system, ...}: {
default = pkgs.callPackage ./devshell.nix { quickemu = quickemu.packages.${system}.default; };
});
};
}

View File

@ -1,20 +1,20 @@
import 'dart:io';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:provider/provider.dart';
import 'package:tuple/tuple.dart';
import 'package:window_size/window_size.dart';
import 'package:flutter/services.dart';
import 'src/app.dart';
import 'src/mixins/app_version.dart';
import 'src/model/app_settings.dart';
import 'src/model/operating_system.dart';
import 'src/model/option.dart';
import 'src/model/version.dart';
import 'src/model/osicons.dart';
import 'src/model/version.dart';
Future<List<OperatingSystem>> loadOperatingSystems(bool showUbuntus) async {
var process = await Process.run('quickget', ['--list-csv']);
@ -65,9 +65,7 @@ Future<void> getIcons() async {
.where((String key) => key.contains('.svg'))
.toList();
for (final imagePath in imagePaths) {
String filename = imagePath
.split('/')
.last;
String filename = imagePath.split('/').last;
String id = filename.substring(0, filename.lastIndexOf('.'));
osIcons[id] = imagePath;
}
@ -76,8 +74,13 @@ Future<void> getIcons() async {
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Don't forget to also change the size in linux/my_application.cc:50
setWindowMinSize(const Size(692, 580));
setWindowMaxSize(const Size(692, 580));
if (Platform.isMacOS) {
setWindowMinSize(const Size(692 + 2, 580 + 30));
setWindowMaxSize(const Size(692 + 2, 580 + 30));
} else {
setWindowMinSize(const Size(692, 580));
setWindowMaxSize(const Size(800, 720));
}
final foundQuickGet = await Process.run('which', ['quickget']);
if (foundQuickGet.exitCode == 0) {
gOperatingSystems = loadOperatingSystems(false);

View File

@ -15,7 +15,7 @@ import 'model/app_settings.dart';
import 'pages/main_page.dart';
class App extends StatefulWidget {
const App({Key? key}) : super(key: key);
const App({super.key});
@override
State<App> createState() => _AppState();
@ -61,15 +61,14 @@ class _AppState extends State<App> with PreferencesMixin {
builder: (context, appSettings, _) => MaterialApp(
theme: ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSwatch(
colorScheme: ColorScheme.fromSwatch(
primarySwatch: Colors.pink,
backgroundColor: Colors.white,
)
),
)),
darkTheme: ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSwatch(
primarySwatch: darkGrey,
primarySwatch: Colors.pink,
backgroundColor: darkGrey.shade700,
brightness: Brightness.dark,
),

View File

@ -4,3 +4,15 @@ var gIsSnap = Platform.environment['SNAP']?.isNotEmpty ?? false;
const String prefWorkingDirectory = 'workingDirectory';
const String prefThemeMode = 'themeMode';
const String prefCurrentLocale = 'currentLocale';
Future<String> fetchQuickemuVersion() async {
// Get the version of quickemu
var result = await Process.run('quickemu', ['--version']);
// If successful return the trimmed version
if (result.exitCode == 0) {
return result.stdout.trim();
} else {
return '';
}
}

View File

@ -15,11 +15,11 @@ import '../widgets/downloader/download_progress_bar.dart';
class Downloader extends StatefulWidget {
const Downloader({
Key? key,
required this.operatingSystem,
required this.version,
this.option,
}) : super(key: key);
super.key,
});
final OperatingSystem operatingSystem;
final Version version;
@ -30,7 +30,7 @@ class Downloader extends StatefulWidget {
}
class _DownloaderState extends State<Downloader> {
final notificationsClient = NotificationsClient();
final notificationsClient = Platform.isMacOS ? null : NotificationsClient();
final curlPattern = RegExp("( [0-9.]+%)");
late final Stream<double> _progressStream;
bool _downloadFinished = false;
@ -71,7 +71,7 @@ class _DownloaderState extends State<Downloader> {
controller.close();
setState(() {
_downloadFinished = true;
notificationsClient.notify(
notificationsClient?.notify(
_cancelled
? context.t('Download cancelled')
: context.t('Download complete'),

View File

@ -5,7 +5,7 @@ import '../widgets/home_page/downloader_menu.dart';
import '../widgets/home_page/logo.dart';
class DownloaderPage extends StatelessWidget {
const DownloaderPage({Key? key}) : super(key: key);
const DownloaderPage({super.key});
@override
Widget build(BuildContext context) {

View File

@ -7,7 +7,7 @@ import '../widgets/home_page/main_menu.dart';
import '../widgets/left_menu.dart';
class MainPage extends StatefulWidget {
const MainPage({Key? key}) : super(key: key);
const MainPage({super.key});
@override
State<MainPage> createState() => _MainPageState();
@ -23,6 +23,7 @@ class _MainPageState extends State<MainPage> {
@override
Widget build(BuildContext context) {
GettextLocalizations.of(context).enableExceptions(true);
return Scaffold(
appBar: AppBar(
title: Text(context.t('Main menu')),

View File

@ -9,17 +9,18 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:gettext_i18n/gettext_i18n.dart';
import 'package:path/path.dart' as path;
import 'package:process_run/shell.dart';
import 'package:version/version.dart';
import '../globals.dart';
import '../mixins/preferences_mixin.dart';
import '../model/vminfo.dart';
import '../model/osicons.dart';
import '../model/vminfo.dart';
/// VM manager page.
/// Displays a list of available VMs, running state and connection info,
/// with buttons to start and stop VMs.
class Manager extends StatefulWidget {
const Manager({Key? key}) : super(key: key);
const Manager({super.key});
@override
State<Manager> createState() => _ManagerState();
@ -32,6 +33,7 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
final List<String> _sshVms = [];
String? _terminalEmulator;
final List<String> _supportedTerminalEmulators = [
if (Platform.isMacOS) 'osascript',
'alacritty',
'cool-retro-term',
'gnome-terminal',
@ -48,7 +50,7 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
'uxrvt',
'xfce4-terminal',
'xrvt',
'xterm'
'xterm',
];
Timer? refreshTimer;
@ -82,8 +84,7 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
// Find out which terminal emulator we have set as the default.
String result = whichSync('x-terminal-emulator') ?? '';
if (result.isNotEmpty) {
String terminalEmulator =
await File(result).resolveSymbolicLinks();
String terminalEmulator = await File(result).resolveSymbolicLinks();
terminalEmulator = path.basenameWithoutExtension(terminalEmulator);
if (_supportedTerminalEmulators.contains(terminalEmulator)) {
setState(() {
@ -108,7 +109,7 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
void _detectSpice() async {
var result = whichSync('spicy') ?? '';
setState(() {
_spicy = result.isNotEmpty ;
_spicy = result.isNotEmpty;
});
}
@ -155,8 +156,10 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
File pidFile = File('$name/$name.pid');
if (pidFile.existsSync()) {
String pid = pidFile.readAsStringSync().trim();
Directory procDir = Directory('/proc/$pid');
if (procDir.existsSync()) {
// Check if the process is still running using kill -0, which is
// a portable way to check if a process is running on macOS and Linux.
ProcessResult result = Process.runSync('kill', ['-0', pid]);
if (result.exitCode == 0) {
if (_activeVms.containsKey(name)) {
activeVms[name] = _activeVms[name]!;
} else {
@ -270,7 +273,7 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
}
String vmStem = currentVm;
SvgPicture? osIcon;
while(vmStem.contains('-')) {
while (vmStem.contains('-')) {
vmStem = vmStem.substring(0, vmStem.lastIndexOf('-'));
if (osIcons.containsKey(vmStem)) {
osIcon = SvgPicture.asset(
@ -298,7 +301,11 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
? null
: () async {
Map<String, VmInfo> activeVms = _activeVms;
List<String> command = ['quickemu', '--vm', '$currentVm.conf'];
List<String> command = [
'quickemu',
'--vm',
'$currentVm.conf'
];
if (_spicy) {
command.addAll(['--display', 'spice']);
}
@ -324,7 +331,7 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
builder: (BuildContext context) => AlertDialog(
title: Text(context.t('Stop The Virtual Machine?')),
content: Text(context.t(
'You are about to terminate the virtual machine',
'You are about to terminate the virtual machine {0}',
args: [currentVm])),
actions: <Widget>[
TextButton(
@ -337,11 +344,24 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
),
],
),
).then((result) {
).then((result) async {
result = result ?? false;
if (result) {
var shell = Shell();
shell.run(['killall', currentVm].join(' '));
// If Quickemu is newer than 4.9.6, use the new --kill option
// which is macOS compatible.
var quickemuVersion =
Version.parse(await fetchQuickemuVersion());
if (quickemuVersion >= Version(4, 9, 6)) {
shell.run([
'quickemu',
'--vm',
'$currentVm.conf',
'--kill'
].join(' '));
} else {
shell.run(['killall', currentVm].join(' '));
}
setState(() {
_activeVms.remove(currentVm);
});
@ -422,8 +442,8 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
IconButton(
icon: SvgPicture.asset('assets/images/console.svg',
semanticsLabel: 'Connect with SSH',
colorFilter: ColorFilter.mode(sshy ? buttonColor : Colors.grey, BlendMode.srcIn)
),
colorFilter: ColorFilter.mode(
sshy ? buttonColor : Colors.grey, BlendMode.srcIn)),
tooltip: sshy
? context.t('Connect with SSH')
: context.t('SSH server not detected on guest'),
@ -452,7 +472,10 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
child: Text(context.t('Cancel')),
),
TextButton(
onPressed: () => Navigator.pop(context, true),
onPressed: () {
if (usernameController.text.isEmpty) return;
Navigator.of(context).pop(true);
},
child: Text(context.t('Connect')),
),
],
@ -470,6 +493,11 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
// Strip the extension as x-terminal-emulator may point to a .wrapper
switch (path
.basenameWithoutExtension(_terminalEmulator!)) {
case 'osascript':
sshArgs = [
'-e \'tell app "Terminal" to do script "${sshArgs.join(' ')}"\''
];
break;
case 'gnome-terminal':
case 'mate-terminal':
sshArgs.insert(0, '--');

View File

@ -6,7 +6,7 @@ import '../model/operating_system.dart';
import '../model/osicons.dart';
class OperatingSystemSelection extends StatefulWidget {
const OperatingSystemSelection({Key? key}) : super(key: key);
const OperatingSystemSelection({super.key});
@override
State<OperatingSystemSelection> createState() =>

View File

@ -4,7 +4,7 @@ import 'package:gettext_i18n/gettext_i18n.dart';
import '../model/version.dart';
class OptionSelection extends StatefulWidget {
const OptionSelection(this.version, {Key? key}) : super(key: key);
const OptionSelection(this.version, {super.key});
final Version version;

View File

@ -8,8 +8,7 @@ import '../model/version.dart';
import 'option_selection.dart';
class VersionSelection extends StatefulWidget {
const VersionSelection({Key? key, required this.operatingSystem})
: super(key: key);
const VersionSelection({required this.operatingSystem, super.key});
final OperatingSystem operatingSystem;

View File

@ -3,10 +3,10 @@ import 'package:gettext_i18n/gettext_i18n.dart';
class CancelDismissButton extends StatelessWidget {
const CancelDismissButton({
Key? key,
required this.downloadFinished,
required this.onCancel,
}) : super(key: key);
super.key,
});
final bool downloadFinished;
final VoidCallback onCancel;

View File

@ -2,12 +2,12 @@ import 'package:flutter/material.dart';
import 'package:gettext_i18n/gettext_i18n.dart';
class DownloadLabel extends StatelessWidget {
const DownloadLabel(
{Key? key,
required this.downloadFinished,
required this.data,
required this.downloader})
: super(key: key);
const DownloadLabel({
required this.downloadFinished,
required this.data,
required this.downloader,
super.key,
});
final bool downloadFinished;
final double? data;

View File

@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
class DownloadProgressBar extends StatelessWidget {
const DownloadProgressBar({
Key? key,
required this.downloadFinished,
required this.data,
}) : super(key: key);
super.key,
});
final bool downloadFinished;
final double? data;

View File

@ -8,9 +8,8 @@ import '../../globals.dart';
import '../../mixins/preferences_mixin.dart';
import '../home_page/home_page_button_group.dart';
class DownloaderMenu extends StatefulWidget {
const DownloaderMenu({Key? key}) : super(key: key);
const DownloaderMenu({super.key});
@override
State<DownloaderMenu> createState() => _DownloaderMenuState();
@ -65,7 +64,7 @@ class _DownloaderMenuState extends State<DownloaderMenu> with PreferencesMixin {
}
},
child: Text(Directory.current.path),
),
),
],
),
),

View File

@ -2,11 +2,11 @@ import 'package:flutter/material.dart';
class DownloaderPageButton extends StatelessWidget {
const DownloaderPageButton({
Key? key,
this.label,
required this.text,
this.onPressed,
}) : super(key: key);
super.key,
});
final String? label;
final String text;

View File

@ -2,11 +2,11 @@ import 'package:flutter/material.dart';
class HomePageButton extends StatelessWidget {
const HomePageButton({
Key? key,
this.label,
required this.text,
this.onPressed,
}) : super(key: key);
super.key,
});
final String? label;
final String text;

View File

@ -2,6 +2,8 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:gettext_i18n/gettext_i18n.dart';
import 'package:quickgui/src/globals.dart';
import 'package:quickgui/src/mixins/preferences_mixin.dart';
import 'package:tuple/tuple.dart';
import '../../model/operating_system.dart';
@ -13,23 +15,24 @@ import '../../pages/version_selection.dart';
import 'downloader_page_button.dart';
class HomePageButtonGroup extends StatefulWidget {
const HomePageButtonGroup({Key? key}) : super(key: key);
const HomePageButtonGroup({super.key});
@override
State<HomePageButtonGroup> createState() => _HomePageButtonGroupState();
}
class _HomePageButtonGroupState extends State<HomePageButtonGroup> {
class _HomePageButtonGroupState extends State<HomePageButtonGroup>
with PreferencesMixin {
OperatingSystem? _selectedOperatingSystem;
Version? _selectedVersion;
Option? _selectedOption;
@override
Widget build(BuildContext context) {
var _versionButtonLabel =
var versionButtonLabel =
_selectedVersion?.version ?? context.t('Select...');
if (_selectedOption?.option.isNotEmpty ?? false) {
_versionButtonLabel = "$_versionButtonLabel (${_selectedOption!.option})";
versionButtonLabel = "$versionButtonLabel (${_selectedOption!.option})";
}
return Row(
children: [
@ -60,7 +63,7 @@ class _HomePageButtonGroupState extends State<HomePageButtonGroup> {
),
DownloaderPageButton(
label: context.t('Version'),
text: _versionButtonLabel, //_selectedVersion?.version ?? 'Select...',
text: versionButtonLabel, //_selectedVersion?.version ?? 'Select...',
onPressed: (_selectedOperatingSystem != null)
? () {
Navigator.of(context)
@ -85,16 +88,50 @@ class _HomePageButtonGroupState extends State<HomePageButtonGroup> {
text: context.t('Download'),
onPressed: (_selectedVersion == null)
? null
: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => Downloader(
operatingSystem: _selectedOperatingSystem!,
version: _selectedVersion!,
option: _selectedOption,
: () async {
final workingDirectory =
await getPreference<String>(prefWorkingDirectory);
final tmpFile = File("$workingDirectory/modecheck.tmp");
if (tmpFile.existsSync()) {
tmpFile.deleteSync();
}
try {
tmpFile.createSync();
} catch (e) {
// Do nothing
}
if (tmpFile.existsSync()) {
tmpFile.deleteSync();
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => Downloader(
operatingSystem: _selectedOperatingSystem!,
version: _selectedVersion!,
option: _selectedOption,
),
),
),
);
);
} else {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text(context.t('Error')),
content: Text(
context.t(
'Could not write to the working directory. Please check the permissions.'),
),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text(context.t('OK')),
),
],
),
);
}
},
),
],

View File

@ -1,9 +1,7 @@
import 'package:flutter/material.dart';
class Logo extends StatelessWidget {
const Logo({
Key? key,
}) : super(key: key);
const Logo({super.key});
@override
Widget build(BuildContext context) {

View File

@ -6,7 +6,7 @@ import '../../pages/manager.dart';
import '../home_page/home_page_button.dart';
class MainMenu extends StatelessWidget {
const MainMenu({Key? key}) : super(key: key);
const MainMenu({super.key});
@override
Widget build(BuildContext context) {

View File

@ -9,7 +9,7 @@ import '../mixins/preferences_mixin.dart';
import '../model/app_settings.dart';
class LeftMenu extends StatefulWidget {
const LeftMenu({Key? key}) : super(key: key);
const LeftMenu({super.key});
@override
State<LeftMenu> createState() => _LeftMenuState();
@ -22,9 +22,10 @@ class _LeftMenuState extends State<LeftMenu> with PreferencesMixin {
@override
void initState() {
super.initState();
fetchQuickemuVersion();
_dropdownMenuItems = supportedLocales
.map((e) => DropdownMenuItem(child: Text(e), value: e))
.toList();
.map((e) => DropdownMenuItem(value: e, child: Text(e)))
.toList();
}
@override
@ -42,15 +43,47 @@ class _LeftMenuState extends State<LeftMenu> with PreferencesMixin {
@override
Widget build(BuildContext context) {
var _version = AppVersion.packageInfo!.version;
var version = AppVersion.packageInfo!.version;
return Consumer<AppSettings>(
builder: (context, appSettings, _) {
return Drawer(
child: ListView(
children: [
ListTile(
title: Text("Quickgui $_version",
style: const TextStyle(fontSize: 24.0, fontWeight: FontWeight.bold)),
Padding(
// Minimal bottom padding
padding: const EdgeInsets.only(bottom: 0)
.add(const EdgeInsets.symmetric(horizontal: 16)),
child: Container(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Text("Quickgui $version",
style: const TextStyle(
fontSize: 24.0, fontWeight: FontWeight.bold)),
),
),
FutureBuilder<String>(
future: fetchQuickemuVersion(),
builder:
(BuildContext context, AsyncSnapshot<String> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator(); // or some other widget while waiting
} else {
String poweredByText =
"${context.t('Powered by')} Quickemu";
if (snapshot.hasData) {
poweredByText += " ${snapshot.data}";
}
return Padding(
// Minimal top padding
padding: const EdgeInsets.only(top: 0)
.add(const EdgeInsets.symmetric(horizontal: 16)),
child: Container(
child: Text(poweredByText,
style: const TextStyle(
fontSize: 12.0, fontWeight: FontWeight.bold)),
),
);
}
},
),
Container(
height: 4.0,
@ -59,7 +92,8 @@ class _LeftMenuState extends State<LeftMenu> with PreferencesMixin {
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Row(
children: [
Text(context.t('Use dark mode'),
Text(
context.t('Use dark mode'),
style: TextStyle(
color: Colors.grey[300],
),
@ -68,22 +102,22 @@ class _LeftMenuState extends State<LeftMenu> with PreferencesMixin {
child: Container(),
),
Switch(
value: Theme.of(context).colorScheme.brightness == Brightness.dark,
onChanged: null,
activeColor: Colors.grey[300],
activeTrackColor: Colors.grey[300],
inactiveThumbColor: Colors.grey[300],
value: Theme.of(context).colorScheme.brightness ==
Brightness.dark,
activeColor: Colors.black26,
activeTrackColor: Theme.of(context).colorScheme.primary,
inactiveThumbColor: Colors.grey[500],
inactiveTrackColor: Colors.grey[300],
/*
onChanged: (value) {
appSettings.useDarkMode = value;
savePreference(prefThemeMode, value);
},
activeColor: Colors.white,
activeTrackColor: Colors.black26,
inactiveThumbColor: Theme.of(context).colorScheme.onPrimary,
inactiveTrackColor: Theme.of(context).colorScheme.primary,
*/
// activeColor: Colors.white,
// activeTrackColor: Colors.black26,
// inactiveThumbColor:
// Theme.of(context).colorScheme.onPrimary,
// inactiveTrackColor: Theme.of(context).colorScheme.primary,
),
],
),
@ -113,6 +147,42 @@ class _LeftMenuState extends State<LeftMenu> with PreferencesMixin {
],
),
),
Container(
height: 32.0,
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(
children: [
RichText(
textAlign: TextAlign.center,
text: TextSpan(
style: DefaultTextStyle.of(context).style,
children: const <TextSpan>[
TextSpan(
text: 'Authors\n',
style: TextStyle(fontWeight: FontWeight.bold)),
TextSpan(text: 'Yannick Mauray\n'),
TextSpan(text: 'Mark Johnson\n'),
TextSpan(text: 'Martin Wimpress\n'),
],
),
),
RichText(
textAlign: TextAlign.center,
text: TextSpan(
style: DefaultTextStyle.of(context).style,
children: const <TextSpan>[
TextSpan(text: '© 2021 - 2024\n'),
TextSpan(
text: 'Quickemu Project\n',
style: TextStyle(fontWeight: FontWeight.bold)),
],
),
),
],
),
),
],
),
);

View File

@ -47,7 +47,7 @@ static void my_application_activate(GApplication* application) {
gtk_window_set_title(window, "quickgui");
}
gtk_window_set_default_size(window, 692, 580);
gtk_window_set_default_size(window, 800, 720);
gtk_widget_show(GTK_WIDGET(window));
g_autoptr(FlDartProject) project = fl_dart_project_new();

BIN
macos/.DS_Store vendored Normal file

Binary file not shown.

7
macos/.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
# Flutter-related
**/Flutter/ephemeral/
**/Pods/
# Xcode-related
**/dgph
**/xcuserdata/

View File

@ -0,0 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"

View File

@ -0,0 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"

View File

@ -0,0 +1,18 @@
//
// Generated file. Do not edit.
//
import FlutterMacOS
import Foundation
import package_info_plus
import shared_preferences_foundation
import url_launcher_macos
import window_size
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
WindowSizePlugin.register(with: registry.registrar(forPlugin: "WindowSizePlugin"))
}

43
macos/Podfile Normal file
View File

@ -0,0 +1,43 @@
platform :osx, '10.14'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_macos_podfile_setup
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_macos_build_settings(target)
end
end

41
macos/Podfile.lock Normal file
View File

@ -0,0 +1,41 @@
PODS:
- FlutterMacOS (1.0.0)
- package_info_plus (0.0.1):
- FlutterMacOS
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- url_launcher_macos (0.0.1):
- FlutterMacOS
- window_size (0.0.2):
- FlutterMacOS
DEPENDENCIES:
- FlutterMacOS (from `Flutter/ephemeral`)
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
- window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`)
EXTERNAL SOURCES:
FlutterMacOS:
:path: Flutter/ephemeral
package_info_plus:
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos
shared_preferences_foundation:
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
url_launcher_macos:
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
window_size:
:path: Flutter/ephemeral/.symlinks/plugins/window_size/macos
SPEC CHECKSUMS:
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399
window_size: 339dafa0b27a95a62a843042038fa6c3c48de195
PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367
COCOAPODS: 1.15.2

View File

@ -0,0 +1,821 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXAggregateTarget section */
33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
buildPhases = (
33CC111E2044C6BF0003C045 /* ShellScript */,
);
dependencies = (
);
name = "Flutter Assemble";
productName = FLX;
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
1BE543F3FBBB4C06DEC7A142 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D7B8DA22B0A54BBE9BCBC89F /* Pods_Runner.framework */; };
331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
556376D73D985479212CC116 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BA7153C071C61C298B27A8E /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 33CC10EC2044A3C60003C045;
remoteInfo = Runner;
};
33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 33CC111A2044C6BA0003C045;
remoteInfo = FLX;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
33CC110E2044A8840003C045 /* Bundle Framework */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
19D1D10CEE112AEFE7E1767A /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
1BE3B465CD1572F2B2D20FD9 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
33CC10ED2044A3C60003C045 /* quickgui.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = quickgui.app; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
5BA7153C071C61C298B27A8E /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
950FEF9E0622AA1DB23932BB /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
95A2808058381DC2EEC275FC /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
C0B7021831AC0B71E4AF216A /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
D7B8DA22B0A54BBE9BCBC89F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D7FA05E1CC5B19461025C6AD /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
331C80D2294CF70F00263BE5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
556376D73D985479212CC116 /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
33CC10EA2044A3C60003C045 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
1BE543F3FBBB4C06DEC7A142 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
331C80D6294CF71000263BE5 /* RunnerTests */ = {
isa = PBXGroup;
children = (
331C80D7294CF71000263BE5 /* RunnerTests.swift */,
);
path = RunnerTests;
sourceTree = "<group>";
};
33BA886A226E78AF003329D5 /* Configs */ = {
isa = PBXGroup;
children = (
33E5194F232828860026EE4D /* AppInfo.xcconfig */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
);
path = Configs;
sourceTree = "<group>";
};
33CC10E42044A3C60003C045 = {
isa = PBXGroup;
children = (
33FAB671232836740065AC1E /* Runner */,
33CEB47122A05771004F2AC0 /* Flutter */,
331C80D6294CF71000263BE5 /* RunnerTests */,
33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */,
93FB5BDFAA139FEF4CABA9BA /* Pods */,
);
sourceTree = "<group>";
};
33CC10EE2044A3C60003C045 /* Products */ = {
isa = PBXGroup;
children = (
33CC10ED2044A3C60003C045 /* quickgui.app */,
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
33CC11242044D66E0003C045 /* Resources */ = {
isa = PBXGroup;
children = (
33CC10F22044A3C60003C045 /* Assets.xcassets */,
33CC10F42044A3C60003C045 /* MainMenu.xib */,
33CC10F72044A3C60003C045 /* Info.plist */,
);
name = Resources;
path = ..;
sourceTree = "<group>";
};
33CEB47122A05771004F2AC0 /* Flutter */ = {
isa = PBXGroup;
children = (
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
);
path = Flutter;
sourceTree = "<group>";
};
33FAB671232836740065AC1E /* Runner */ = {
isa = PBXGroup;
children = (
33CC10F02044A3C60003C045 /* AppDelegate.swift */,
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
33E51913231747F40026EE4D /* DebugProfile.entitlements */,
33E51914231749380026EE4D /* Release.entitlements */,
33CC11242044D66E0003C045 /* Resources */,
33BA886A226E78AF003329D5 /* Configs */,
);
path = Runner;
sourceTree = "<group>";
};
93FB5BDFAA139FEF4CABA9BA /* Pods */ = {
isa = PBXGroup;
children = (
C0B7021831AC0B71E4AF216A /* Pods-Runner.debug.xcconfig */,
1BE3B465CD1572F2B2D20FD9 /* Pods-Runner.release.xcconfig */,
95A2808058381DC2EEC275FC /* Pods-Runner.profile.xcconfig */,
950FEF9E0622AA1DB23932BB /* Pods-RunnerTests.debug.xcconfig */,
19D1D10CEE112AEFE7E1767A /* Pods-RunnerTests.release.xcconfig */,
D7FA05E1CC5B19461025C6AD /* Pods-RunnerTests.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D7B8DA22B0A54BBE9BCBC89F /* Pods_Runner.framework */,
5BA7153C071C61C298B27A8E /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
331C80D4294CF70F00263BE5 /* RunnerTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
40EE0DAE63B1E96400157795 /* [CP] Check Pods Manifest.lock */,
331C80D1294CF70F00263BE5 /* Sources */,
331C80D2294CF70F00263BE5 /* Frameworks */,
331C80D3294CF70F00263BE5 /* Resources */,
);
buildRules = (
);
dependencies = (
331C80DA294CF71000263BE5 /* PBXTargetDependency */,
);
name = RunnerTests;
productName = RunnerTests;
productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
33CC10EC2044A3C60003C045 /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
D70F1D8E1864647EE1620381 /* [CP] Check Pods Manifest.lock */,
33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */,
3911F4199D1C6D839AC39703 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
33CC11202044C79F0003C045 /* PBXTargetDependency */,
);
name = Runner;
productName = Runner;
productReference = 33CC10ED2044A3C60003C045 /* quickgui.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
33CC10E52044A3C60003C045 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
331C80D4294CF70F00263BE5 = {
CreatedOnToolsVersion = 14.0;
TestTargetID = 33CC10EC2044A3C60003C045;
};
33CC10EC2044A3C60003C045 = {
CreatedOnToolsVersion = 9.2;
LastSwiftMigration = 1100;
ProvisioningStyle = Automatic;
SystemCapabilities = {
com.apple.Sandbox = {
enabled = 1;
};
};
};
33CC111A2044C6BA0003C045 = {
CreatedOnToolsVersion = 9.2;
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 33CC10E42044A3C60003C045;
productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
33CC10EC2044A3C60003C045 /* Runner */,
331C80D4294CF70F00263BE5 /* RunnerTests */,
33CC111A2044C6BA0003C045 /* Flutter Assemble */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
331C80D3294CF70F00263BE5 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
33CC10EB2044A3C60003C045 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
3399D490228B24CF009A79C7 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
};
33CC111E2044C6BF0003C045 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
Flutter/ephemeral/FlutterInputs.xcfilelist,
);
inputPaths = (
Flutter/ephemeral/tripwire,
);
outputFileListPaths = (
Flutter/ephemeral/FlutterOutputs.xcfilelist,
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
3911F4199D1C6D839AC39703 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
40EE0DAE63B1E96400157795 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
D70F1D8E1864647EE1620381 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
331C80D1294CF70F00263BE5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
33CC10E92044A3C60003C045 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 33CC10EC2044A3C60003C045 /* Runner */;
targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
};
33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
33CC10F52044A3C60003C045 /* Base */,
);
name = MainMenu.xib;
path = Runner;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
331C80DB294CF71000263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 950FEF9E0622AA1DB23932BB /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "quickemu-project.quickgui.RunnerTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/quickgui.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/quickgui";
};
name = Debug;
};
331C80DC294CF71000263BE5 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 19D1D10CEE112AEFE7E1767A /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "quickemu-project.quickgui.RunnerTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/quickgui.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/quickgui";
};
name = Release;
};
331C80DD294CF71000263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D7FA05E1CC5B19461025C6AD /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "quickemu-project.quickgui.RunnerTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/quickgui.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/quickgui";
};
name = Profile;
};
338D0CE9231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Profile;
};
338D0CEA231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = quickgui;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Profile;
};
338D0CEB231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Profile;
};
33CC10F92044A3C60003C045 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
33CC10FA2044A3C60003C045 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
33CC10FC2044A3C60003C045 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = quickgui;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
};
name = Debug;
};
33CC10FD2044A3C60003C045 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = quickgui;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Release;
};
33CC111C2044C6BA0003C045 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
33CC111D2044C6BA0003C045 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
331C80DB294CF71000263BE5 /* Debug */,
331C80DC294CF71000263BE5 /* Release */,
331C80DD294CF71000263BE5 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC10F92044A3C60003C045 /* Debug */,
33CC10FA2044A3C60003C045 /* Release */,
338D0CE9231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC10FC2044A3C60003C045 /* Debug */,
33CC10FD2044A3C60003C045 /* Release */,
338D0CEA231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC111C2044C6BA0003C045 /* Debug */,
33CC111D2044C6BA0003C045 /* Release */,
338D0CEB231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 33CC10E52044A3C60003C045 /* Project object */;
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1510"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "quickgui.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "quickgui.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<Testables>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "331C80D4294CF70F00263BE5"
BuildableName = "RunnerTests.xctest"
BlueprintName = "RunnerTests"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "quickgui.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "quickgui.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,9 @@
import Cocoa
import FlutterMacOS
@NSApplicationMain
class AppDelegate: FlutterAppDelegate {
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true
}
}

View File

@ -0,0 +1,68 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_16.png",
"scale" : "1x"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_64.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_128.png",
"scale" : "1x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "1x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_1024.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,343 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
<connections>
<outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Runner" customModuleProvider="target">
<connections>
<outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/>
<outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
</connections>
</customObject>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
<items>
<menuItem title="APP_NAME" id="1Xt-HY-uBw">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="APP_NAME" systemMenu="apple" id="uQy-DD-JDr">
<items>
<menuItem title="About APP_NAME" id="5kV-Vb-QxS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
<menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
<menuItem title="Services" id="NMo-om-nkz">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
</menuItem>
<menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
<menuItem title="Hide APP_NAME" keyEquivalent="h" id="Olw-nP-bQN">
<connections>
<action selector="hide:" target="-1" id="PnN-Uc-m68"/>
</connections>
</menuItem>
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
</connections>
</menuItem>
<menuItem title="Show All" id="Kd2-mp-pUS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
<menuItem title="Quit APP_NAME" keyEquivalent="q" id="4sb-4s-VLi">
<connections>
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Edit" id="5QF-Oa-p0T">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Edit" id="W48-6f-4Dl">
<items>
<menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
<connections>
<action selector="undo:" target="-1" id="M6e-cu-g7V"/>
</connections>
</menuItem>
<menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
<connections>
<action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
<menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
<connections>
<action selector="cut:" target="-1" id="YJe-68-I9s"/>
</connections>
</menuItem>
<menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
<connections>
<action selector="copy:" target="-1" id="G1f-GL-Joy"/>
</connections>
</menuItem>
<menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
<connections>
<action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
</connections>
</menuItem>
<menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/>
</connections>
</menuItem>
<menuItem title="Delete" id="pa3-QI-u2k">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
</connections>
</menuItem>
<menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
<connections>
<action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
<menuItem title="Find" id="4EN-yA-p0u">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Find" id="1b7-l0-nxx">
<items>
<menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
<connections>
<action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
</connections>
</menuItem>
<menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
</connections>
</menuItem>
<menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
<connections>
<action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
</connections>
</menuItem>
<menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
<connections>
<action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
</connections>
</menuItem>
<menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
<connections>
<action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
</connections>
</menuItem>
<menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
<connections>
<action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
<items>
<menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
<connections>
<action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/>
</connections>
</menuItem>
<menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
<connections>
<action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
<menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/>
</connections>
</menuItem>
<menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/>
</connections>
</menuItem>
<menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Substitutions" id="9ic-FL-obx">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
<items>
<menuItem title="Show Substitutions" id="z6F-FW-3nz">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
<menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/>
</connections>
</menuItem>
<menuItem title="Smart Quotes" id="hQb-2v-fYv">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/>
</connections>
</menuItem>
<menuItem title="Smart Dashes" id="rgM-f4-ycn">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/>
</connections>
</menuItem>
<menuItem title="Smart Links" id="cwL-P1-jid">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/>
</connections>
</menuItem>
<menuItem title="Data Detectors" id="tRr-pd-1PS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/>
</connections>
</menuItem>
<menuItem title="Text Replacement" id="HFQ-gK-NFA">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Transformations" id="2oI-Rn-ZJC">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Transformations" id="c8a-y6-VQd">
<items>
<menuItem title="Make Upper Case" id="vmV-6d-7jI">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
</connections>
</menuItem>
<menuItem title="Make Lower Case" id="d9M-CD-aMd">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
</connections>
</menuItem>
<menuItem title="Capitalize" id="UEZ-Bs-lqG">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Speech" id="xrE-MZ-jX0">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Speech" id="3rS-ZA-NoH">
<items>
<menuItem title="Start Speaking" id="Ynk-f8-cLZ">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/>
</connections>
</menuItem>
<menuItem title="Stop Speaking" id="Oyz-dy-DGm">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="View" id="H8h-7b-M4v">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="View" id="HyV-fh-RgO">
<items>
<menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
<connections>
<action selector="toggleFullScreen:" target="-1" id="dU3-MA-1Rq"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Window" id="aUF-d1-5bR">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
<items>
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
<connections>
<action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
</connections>
</menuItem>
<menuItem title="Zoom" id="R4o-n2-Eq4">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Help" id="EPT-qC-fAb">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Help" systemMenu="help" id="rJ0-wn-3NY"/>
</menuItem>
</items>
<point key="canvasLocation" x="142" y="-258"/>
</menu>
<window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="Runner" customModuleProvider="target">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<rect key="contentRect" x="335" y="390" width="800" height="600"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1577"/>
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
<rect key="frame" x="0.0" y="0.0" width="800" height="600"/>
<autoresizingMask key="autoresizingMask"/>
</view>
</window>
</objects>
</document>

View File

@ -0,0 +1,14 @@
// Application-level settings for the Runner target.
//
// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
// future. If not, the values below would default to using the project name when this becomes a
// 'flutter create' template.
// The application's name. By default this is also the title of the Flutter window.
PRODUCT_NAME = quickgui
// The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = quickemu-project.quickgui
// The copyright displayed in application information
PRODUCT_COPYRIGHT = Copyright © 2024 quickemu-project. All rights reserved.

View File

@ -0,0 +1,2 @@
#include "../../Flutter/Flutter-Debug.xcconfig"
#include "Warnings.xcconfig"

View File

@ -0,0 +1,2 @@
#include "../../Flutter/Flutter-Release.xcconfig"
#include "Warnings.xcconfig"

View File

@ -0,0 +1,13 @@
WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
GCC_WARN_UNDECLARED_SELECTOR = YES
CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CLANG_WARN_PRAGMA_PACK = YES
CLANG_WARN_STRICT_PROTOTYPES = YES
CLANG_WARN_COMMA = YES
GCC_WARN_STRICT_SELECTOR_MATCH = YES
CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
GCC_WARN_SHADOW = YES
CLANG_WARN_UNREACHABLE_CODE = YES

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
</dict>
</plist>

32
macos/Runner/Info.plist Normal file
View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>NSHumanReadableCopyright</key>
<string>$(PRODUCT_COPYRIGHT)</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@ -0,0 +1,15 @@
import Cocoa
import FlutterMacOS
class MainFlutterWindow: NSWindow {
override func awakeFromNib() {
let flutterViewController = FlutterViewController()
let windowFrame = self.frame
self.contentViewController = flutterViewController
self.setFrame(windowFrame, display: true)
RegisterGeneratedPlugins(registry: flutterViewController)
super.awakeFromNib()
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

View File

@ -0,0 +1,12 @@
import Cocoa
import FlutterMacOS
import XCTest
class RunnerTests: XCTestCase {
func testExample() {
// If you add code to the Runner application, consider adding tests here.
// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
}
}

View File

@ -0,0 +1,10 @@
title: quickgui
contents:
- x: 456
y: 200
type: link
path: "/Applications"
- x: 200
y: 200
type: file
path: quickgui.app

View File

@ -7,7 +7,7 @@
, quickemu
}:
let
runtimeBinDependencies = [ gnome.zenity ];
runtimeBinDependencies = [ quickemu gnome.zenity ];
versionMatches = builtins.match ''
.*
.*version:[[:blank:]]([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\+?[[:digit:]]*)
@ -25,7 +25,6 @@ flutter.buildFlutterApplication rec {
};
# These things are added to LD_LIBRARY_PATH, but not PATH
runtimeDependencies = [ quickemu ];
extraWrapProgramArgs = "--prefix PATH : ${lib.makeBinPath runtimeBinDependencies}";
nativeBuildInputs = [ copyDesktopItems ];

1000
pubspec.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@ -4,21 +4,21 @@
"dependency": "transitive",
"description": {
"name": "_discoveryapis_commons",
"sha256": "f8bb1fdbd77f3d5c1d62b5b0eca75fbf1e41bf4f6c62628f880582e2182ae45d",
"sha256": "113c4100b90a5b70a983541782431b82168b3cae166ab130649c36eb3559d498",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.6"
"version": "1.0.7"
},
"ansicolor": {
"dependency": "transitive",
"description": {
"name": "ansicolor",
"sha256": "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880",
"sha256": "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.2"
"version": "2.0.3"
},
"archive": {
"dependency": "transitive",
@ -34,11 +34,11 @@
"dependency": "transitive",
"description": {
"name": "args",
"sha256": "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a",
"sha256": "bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.5.0"
"version": "2.6.0"
},
"async": {
"dependency": "transitive",
@ -94,11 +94,11 @@
"dependency": "transitive",
"description": {
"name": "cli_util",
"sha256": "c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19",
"sha256": "ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.4.1"
"version": "0.4.2"
},
"clock": {
"dependency": "transitive",
@ -134,21 +134,21 @@
"dependency": "transitive",
"description": {
"name": "cross_file",
"sha256": "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32",
"sha256": "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.3.4+1"
"version": "0.3.4+2"
},
"crypto": {
"dependency": "transitive",
"description": {
"name": "crypto",
"sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab",
"sha256": "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.3"
"version": "3.0.6"
},
"cupertino_icons": {
"dependency": "direct main",
@ -184,11 +184,21 @@
"dependency": "transitive",
"description": {
"name": "dio",
"sha256": "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5",
"sha256": "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.4.3+1"
"version": "5.7.0"
},
"dio_web_adapter": {
"dependency": "transitive",
"description": {
"name": "dio_web_adapter",
"sha256": "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.0"
},
"fake_async": {
"dependency": "transitive",
@ -204,31 +214,31 @@
"dependency": "transitive",
"description": {
"name": "ffi",
"sha256": "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21",
"sha256": "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.2"
"version": "2.1.3"
},
"file": {
"dependency": "transitive",
"description": {
"name": "file",
"sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c",
"sha256": "a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.0.0"
"version": "7.0.1"
},
"file_picker": {
"dependency": "direct main",
"description": {
"name": "file_picker",
"sha256": "2ca051989f69d1b2ca012b2cf3ccf78c70d40144f0861ff2c063493f7c8c3d45",
"sha256": "16dc141db5a2ccc6520ebb6a2eb5945b1b09e95085c021d9f914f8ded7f1465c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.0.5"
"version": "8.1.4"
},
"flutter": {
"dependency": "direct main",
@ -296,21 +306,21 @@
"dependency": "transitive",
"description": {
"name": "flutter_plugin_android_lifecycle",
"sha256": "c6b0b4c05c458e1c01ad9bcc14041dd7b1f6783d487be4386f793f47a8a4d03e",
"sha256": "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.20"
"version": "2.0.23"
},
"flutter_svg": {
"dependency": "direct main",
"description": {
"name": "flutter_svg",
"sha256": "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2",
"sha256": "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.10+1"
"version": "2.0.16"
},
"flutter_test": {
"dependency": "direct dev",
@ -348,11 +358,11 @@
"dependency": "direct main",
"description": {
"name": "gettext_i18n",
"sha256": "e15f1a6bd5b79435377d8245359e68750af5091d30f571abe36fd10ba5cc5eee",
"sha256": "1acdb7f6bb7c06aaa69016a248de20123ac9af2e1a29321244012fbf6f2d4bdd",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.5"
"version": "1.0.7"
},
"gettext_parser": {
"dependency": "direct main",
@ -378,11 +388,11 @@
"dependency": "transitive",
"description": {
"name": "google_identity_services_web",
"sha256": "9482364c9f8b7bd36902572ebc3a7c2b5c8ee57a9c93e6eb5099c1a9ec5265d8",
"sha256": "55580f436822d64c8ff9a77e37d61f5fb1e6c7ec9d632a43ee324e2a05c3c6c9",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.3.1+1"
"version": "0.3.3"
},
"googleapis": {
"dependency": "transitive",
@ -408,11 +418,11 @@
"dependency": "transitive",
"description": {
"name": "http",
"sha256": "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938",
"sha256": "b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.1"
"version": "1.2.2"
},
"http_parser": {
"dependency": "transitive",
@ -428,11 +438,11 @@
"dependency": "transitive",
"description": {
"name": "image",
"sha256": "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8",
"sha256": "f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.2.0"
"version": "4.3.0"
},
"intl": {
"dependency": "transitive",
@ -468,21 +478,21 @@
"dependency": "transitive",
"description": {
"name": "leak_tracker",
"sha256": "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a",
"sha256": "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "10.0.4"
"version": "10.0.5"
},
"leak_tracker_flutter_testing": {
"dependency": "transitive",
"description": {
"name": "leak_tracker_flutter_testing",
"sha256": "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8",
"sha256": "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.3"
"version": "3.0.5"
},
"leak_tracker_testing": {
"dependency": "transitive",
@ -518,11 +528,11 @@
"dependency": "transitive",
"description": {
"name": "logging",
"sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340",
"sha256": "c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.0"
"version": "1.3.0"
},
"matcher": {
"dependency": "transitive",
@ -538,31 +548,31 @@
"dependency": "transitive",
"description": {
"name": "material_color_utilities",
"sha256": "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a",
"sha256": "f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.8.0"
"version": "0.11.1"
},
"meta": {
"dependency": "transitive",
"description": {
"name": "meta",
"sha256": "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136",
"sha256": "bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.12.0"
"version": "1.15.0"
},
"msix": {
"dependency": "transitive",
"description": {
"name": "msix",
"sha256": "519b183d15dc9f9c594f247e2d2339d855cf0eaacc30e19b128e14f3ecc62047",
"sha256": "c50d6bd1aafe0d071a3c1e5a5ccb056404502935cb0a549e3178c4aae16caf33",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.16.7"
"version": "3.16.8"
},
"mustache_template": {
"dependency": "transitive",
@ -598,21 +608,21 @@
"dependency": "direct main",
"description": {
"name": "package_info_plus",
"sha256": "b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0",
"sha256": "da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.0.0"
"version": "8.1.1"
},
"package_info_plus_platform_interface": {
"dependency": "transitive",
"description": {
"name": "package_info_plus_platform_interface",
"sha256": "f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e",
"sha256": "ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.0"
"version": "3.0.1"
},
"parse_app_package": {
"dependency": "transitive",
@ -638,11 +648,11 @@
"dependency": "transitive",
"description": {
"name": "path_parsing",
"sha256": "e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf",
"sha256": "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.1"
"version": "1.1.0"
},
"path_provider_linux": {
"dependency": "transitive",
@ -668,11 +678,11 @@
"dependency": "transitive",
"description": {
"name": "path_provider_windows",
"sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170",
"sha256": "bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.2.1"
"version": "2.3.0"
},
"petitparser": {
"dependency": "transitive",
@ -688,11 +698,11 @@
"dependency": "transitive",
"description": {
"name": "platform",
"sha256": "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65",
"sha256": "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.5"
"version": "3.1.6"
},
"plist_parser": {
"dependency": "transitive",
@ -718,11 +728,11 @@
"dependency": "direct main",
"description": {
"name": "process_run",
"sha256": "8d9c6198b98fbbfb511edd42e7364e24d85c163e47398919871b952dc86a423e",
"sha256": "a68fa9727392edad97a2a96a77ce8b0c17d28336ba1b284b1dfac9595a4299ea",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.14.2"
"version": "1.2.2+1"
},
"provider": {
"dependency": "direct main",
@ -768,11 +778,11 @@
"dependency": "direct main",
"description": {
"name": "quiver",
"sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47",
"sha256": "ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.2.1"
"version": "3.2.2"
},
"recase": {
"dependency": "transitive",
@ -788,71 +798,71 @@
"dependency": "direct main",
"description": {
"name": "shared_preferences",
"sha256": "d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180",
"sha256": "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.2.3"
"version": "2.3.3"
},
"shared_preferences_android": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_android",
"sha256": "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577",
"sha256": "7f172d1b06de5da47b6264c2692ee2ead20bbbc246690427cdb4fc301cd0c549",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.2.3"
"version": "2.3.4"
},
"shared_preferences_foundation": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_foundation",
"sha256": "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7",
"sha256": "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.0"
"version": "2.5.3"
},
"shared_preferences_linux": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_linux",
"sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa",
"sha256": "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.2"
"version": "2.4.1"
},
"shared_preferences_platform_interface": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_platform_interface",
"sha256": "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b",
"sha256": "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.2"
"version": "2.4.1"
},
"shared_preferences_web": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_web",
"sha256": "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a",
"sha256": "d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.0"
"version": "2.4.2"
},
"shared_preferences_windows": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_windows",
"sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59",
"sha256": "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.2"
"version": "2.4.1"
},
"shell_executor": {
"dependency": "transitive",
@ -924,11 +934,11 @@
"dependency": "transitive",
"description": {
"name": "synchronized",
"sha256": "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558",
"sha256": "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.0+1"
"version": "3.3.0+3"
},
"term_glyph": {
"dependency": "transitive",
@ -944,11 +954,11 @@
"dependency": "transitive",
"description": {
"name": "test_api",
"sha256": "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f",
"sha256": "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.7.0"
"version": "0.7.2"
},
"tuple": {
"dependency": "direct main",
@ -964,61 +974,61 @@
"dependency": "transitive",
"description": {
"name": "typed_data",
"sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
"sha256": "f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.2"
"version": "1.4.0"
},
"url_launcher": {
"dependency": "direct main",
"description": {
"name": "url_launcher",
"sha256": "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3",
"sha256": "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.3.0"
"version": "6.3.1"
},
"url_launcher_android": {
"dependency": "transitive",
"description": {
"name": "url_launcher_android",
"sha256": "ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf",
"sha256": "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.3.3"
"version": "6.3.14"
},
"url_launcher_ios": {
"dependency": "transitive",
"description": {
"name": "url_launcher_ios",
"sha256": "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89",
"sha256": "e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.3.0"
"version": "6.3.1"
},
"url_launcher_linux": {
"dependency": "transitive",
"description": {
"name": "url_launcher_linux",
"sha256": "ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811",
"sha256": "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.1"
"version": "3.2.1"
},
"url_launcher_macos": {
"dependency": "transitive",
"description": {
"name": "url_launcher_macos",
"sha256": "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de",
"sha256": "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.2.0"
"version": "3.2.1"
},
"url_launcher_platform_interface": {
"dependency": "transitive",
@ -1034,21 +1044,21 @@
"dependency": "transitive",
"description": {
"name": "url_launcher_web",
"sha256": "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a",
"sha256": "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.1"
"version": "2.3.3"
},
"url_launcher_windows": {
"dependency": "transitive",
"description": {
"name": "url_launcher_windows",
"sha256": "ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7",
"sha256": "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.1"
"version": "3.1.3"
},
"uuid": {
"dependency": "transitive",
@ -1064,31 +1074,31 @@
"dependency": "transitive",
"description": {
"name": "vector_graphics",
"sha256": "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3",
"sha256": "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.11+1"
"version": "1.1.15"
},
"vector_graphics_codec": {
"dependency": "transitive",
"description": {
"name": "vector_graphics_codec",
"sha256": "c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da",
"sha256": "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.11+1"
"version": "1.1.12"
},
"vector_graphics_compiler": {
"dependency": "transitive",
"description": {
"name": "vector_graphics_compiler",
"sha256": "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81",
"sha256": "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.11+1"
"version": "1.1.16"
},
"vector_math": {
"dependency": "transitive",
@ -1100,35 +1110,45 @@
"source": "hosted",
"version": "2.1.4"
},
"version": {
"dependency": "direct main",
"description": {
"name": "version",
"sha256": "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.2"
},
"vm_service": {
"dependency": "transitive",
"description": {
"name": "vm_service",
"sha256": "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec",
"sha256": "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "14.2.1"
"version": "14.2.5"
},
"web": {
"dependency": "transitive",
"description": {
"name": "web",
"sha256": "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27",
"sha256": "cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.5.1"
"version": "1.1.0"
},
"win32": {
"dependency": "transitive",
"description": {
"name": "win32",
"sha256": "a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4",
"sha256": "8b338d4486ab3fbc0ba0db9f9b4f5239b6697fcee427939a40e720cbb9ee0a69",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.5.1"
"version": "5.9.0"
},
"window_size": {
"dependency": "direct main",
@ -1145,11 +1165,11 @@
"dependency": "transitive",
"description": {
"name": "xdg_directories",
"sha256": "faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d",
"sha256": "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.4"
"version": "1.1.0"
},
"xml": {
"dependency": "transitive",
@ -1173,7 +1193,7 @@
}
},
"sdks": {
"dart": ">=3.4.0 <4.0.0",
"flutter": ">=3.22.0"
"dart": ">=3.5.0 <4.0.0",
"flutter": ">=3.24.0"
}
}

View File

@ -1,7 +1,7 @@
name: quickgui
description: Desktop frontend for Quickget and Quickemu
description: An elegant virtual machine manager for the desktop
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.2.9+1
version: 1.2.10+1
environment:
flutter: "3.22.0"
@ -14,18 +14,19 @@ dependencies:
sdk: flutter
cupertino_icons: ^1.0.8
desktop_notifications: ^0.6.3
file_picker: ^8.0.5
flutter_svg: ^2.0.10+1
file_picker: ^8.0.6
flutter_svg: ^2.1.0
gettext: ^1.2.0
gettext_i18n: ^1.0.5
gettext_i18n: ^1.0.7
gettext_parser: ^0.2.0
package_info_plus: ^8.0.0
process_run: ^0.14.2
provider: ^6.1.2
quiver: ^3.2.1
package_info_plus: ^9.0.1
process_run: ^1.1.0
provider: ^6.1.5
quiver: ^3.2.2
url_launcher: ^6.3.0
shared_preferences: ^2.2.3
shared_preferences: ^2.3.2
tuple: ^2.0.2
version: ^3.0.2
window_size:
git:
url: https://github.com/google/flutter-desktop-embedding.git
@ -35,7 +36,7 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
flutter_distributor: ^0.4.5
flutter_distributor: ^0.6.6
flutter_lints: ^4.0.0
flutter: