Pl/FlightGear Qt Launcher

From FlightGear wiki
Jump to navigation Jump to search
FlightGear Qt Launcher
Strona statku powietrznego programu Qt Launcher dla FlightGear 2018.2 renderowana w systemie Windows 10
Strona statku powietrznego programu Qt Launcher dla FlightGear 2018.2 renderowana w systemie Windows 10
Data rozpoczęcia 01/2015
Opis Zintegrowany program uruchamiający dla FlightGear
Opiekun(owie) James Turner
Współtwórca(y) James Turner
Status W trakcie aktywnego rozwoju
Foldery flightgear/flightgear/next/src/GUI
Dziennik zmian flightgear/flightgear/next/src/GUI log view

Qt Launcher to zintegrowany program uruchamiający dla FlightGeara, zastępujący FGRun w oficjalnych wydaniach od wersji 2016.4. Początkowo zaprojektowany jako rozwiązanie tymczasowe we FlightGear 3.4 dla problemu wsparcia starego FlightGear Mac Launcher, kończącego się wraz z OS X Yosemite, stał się głównym programem uruchamiającym FlightGear dla wszystkich platform i jest dostarczany ze wszystkimi oficjalnymi wydaniami FlightGear (jednak użytkownicy budujący ze źródeł mogą potrzebować osobnej konfiguracji/przebudowy FlightGeara).

Sposób użycia

Aby uruchomić Launcher:

  • Microsoft Windows: kliknij podwójnie na ikonę FlightGear <wersja> na pulpicie lub z menu Start wyszukaj aplikacji FlightGear <wersja> i uruchom ją.
  • macOS i Linux: otwórz terminal i uruchom fgfs z opcją --launcher:
    $ fgfs --launcher
    

Należy pamiętać, że Launcher jest opcjonalny z powodów wyjaśnionych poniżej w sekcji Zależności. W rezultacie, jeśli korzystasz z systemu Linux i zainstalowałeś wersję FlightGeara dostarczoną przez twoją dystrybucję, Launcher może nie być dostępny, ponieważ twórcy pakietów mogli go nie włączyć. W takim przypadku należy poprosić dystrybucję o włączenie tej funkcji.

Włączanie wyświetlania konsoli w systemach Windows

Aby w systemie Windows włączyć wyświetlanie konsoli wraz z uruchomieniem się Launchera, kliknij prawym przyciskiem myszy skrót FlightGear na pulpicie i z menu kontekstowego wybierz Właściwości. W zakładce Skrót, w polu Element docelowy dodaj na końcu --console i kliknij OK.

Jeśli nie potrzebujesz konsoli podczas uruchamiania Launchera a tylko podczas działania symulatora, to w Launcherze idź do zakładki Ustawienia, rozwiń sekcję Ogólne klikając na link Pokaż więcej i zaznacz opcję Pokaż konsolę debugowania.

Katalog pobierania statków powietrznych/TerraSync

Od wersji FlightGear 2016.2 lokalizacja używana przez Launcher do przechowywania pobranych statków powietrznych i scenerii TerraSync może być określona w zakładce Dodatki. Ręczne określanie katalogu pobierania TerraSync stało się zatem zbędne.[1]

Preferencje

We FlightGear 2016.2 i nowszych wersjach preferencje są przechowywane w $FG_HOME/FlightGear/FlightGear.ini na systemach uniksopodobnych, pod Windows w %UserProfile%/AppData/Roaming/flightgear.org/FlightGear/FlightGear.ini.[1] Starsze wersje korzystają z domyślnej lokalizacji używanej przez Qt:

  • rejestru w systemie Microsoft Windows;
  • ~/Library/Preferences na macOS;
  • domyślnej lokalizacji preferencji w systemie Linux (zazwyczaj ~/.config/FlightGear/FlightGear.conf).

Preferencje można zresetować do wartości domyślnych, wybierają w Launcherze menu z trzema kropkami w górnym lewym rogi i dalej pozycję Przywróć domyślne ustawienia.... W starszych wersjach odbywało się to poprzez przytrzymanie klawisza Alt podczas uruchamiania się Launchera.[2]

Historia i status

W październiku 2014 roku Apple wydało OS X 10.10 Yosemite. Niestety, jeden z frameworków, na którym opierał się dawny FlightGear Mac Launcher, zwany RubyCocoa This is a link to a Wikipedia article, został usunięty, przez co stał się niekompatybilny z OS X Yosemite. James Turner rozpoczął pracę nad rozwiązaniem dla nadchodzącej wersji 3.4. Dodał prosty wbudowany Launcher wykorzystujący bibliotekę Qt, uruchamiany przed utworzeniem głównego okna symulatora. Został on wydany wraz z FlightGear 3.4 jako funkcja tylko dla komputerów Mac.

Po FlightGear 3.4 zdecydowano, że ten tymczasowy program uruchamiający tylko dla komputerów Mac, zostanie przekształcony w zamiennik FGRun i stanie się częścią planu aktualizacji interfejsu użytkownika FlightGear. W wersji FlightGear 3.6 stał się on dostępny dla wszystkich platform i nadal był rozwijany, ulepszany i dopracowywany.

Od maja 2016 roku Qt Launcher jest aktywnie rozwijany. Obejmuje to dodawanie nowych funkcji, naprawianie błędów i udoskonalanie istniejących funkcji.

Od połowy 2016 r. interfejs użytkownika Qt jest teraz dostępny również podczas działania symulatora; wymaga to jednak wielu testów, ale statki powietrzne można instalować/zmieniać i dostosowywać lokalizację z poziomu symulatora. Po pewnym czasie symulator ulegnie awarii.[3]

Opcje, które nie działają, to takie rzeczy jak ustawianie scenerii/ścieżek statków powietrznych i pozycji początkowej, ponieważ kolidują one z wartościami przekazywanymi przez sam Launcher.[4]

Począwszy od wersji 2016.4, FGRun został usunięty z oficjalnych dystrybucji.

Kontekst

Cleanup.png This article may require cleanup to meet the quality standards of the wiki. Please improve this article if you can.

Ponadto, było to również motywowane mnogością zewnętrznych programów uruchamiających/frontendów GUI opracowanych przez wielu współtwórców na przestrzeni lat.[5]

Jeśli chodzi o powód zmiany, ponieważ stary Launcher był tylko dla Windowsa, a Qt5 działa również na macOS i Linux i pozwala robić rzeczy niezależnie od systemu operacyjnego, co jest naprawdę koncepcyjnie lepsze, ponieważ nie musimy zajmować się dedykowanymi kwestiami Win, Mac i Linux.[6]


James Turner (przede wszystkim) pracuje nad rozwojem wbudowanego Launchera, który ma całkowicie zastąpić FGRun. Ten nowy program uruchamiający jest już dość dojrzały, działa dobrze na każdym obsługiwanym systemie operacyjnym i jest już dostępny w bieżącej wersji. Fred B. (który był głównym programistą FGRun) nie był zaangażowany w rozwój FlightGeara od dłuższego czasu, i FGRun jest zbudowany na dość starej bibliotece GUI o nazwie "fltk". Wszelkie zmiany, które zostały wprowadzone do FGRun w ciągu ostatnich kilku lat, były łatane przez ludzi, którzy po prostu próbowali utrzymać go kulejącego wraz z nowoczesnymi aktualizacjami systemu operacyjnego, nowszymi kompilatorami, nowszymi bibliotekami OSG itp. Nadejdzie czas (prawdopodobnie dość szybko), kiedy przestaniemy wspierać, kompilować i dystrybuować FGRun wraz z FlightGearem. (FGRun oczywiście zawsze będzie istniał i każdy może go skompilować, używać i utrzymywać, jeśli chce, po prostu przestanie być dystrybuowany z podstawowym pakietem FlightGear na rzecz nowszego programu uruchamiającego).[7]

Cele długoterminowe obejmują (1) usprawnienie procesu włączania prac autorów statków powietrznych do domyślnej dystrybucji oraz (2) ułatwienie grupom takim jak FGUK integracji własnych hangarów z narzędziami do zarządzania statkami powietrznymi w Qt Launcherze. Dla deweloperów, którzy chcą wyrazić zgodę, bycie częścią domyślnej dystrybucji zapewniłoby znacznie szerszą dostępność ich pracy. Z perspektywy użytkownika końcowego zapewni to łatwy/zintegrowany sposób instalacji (i aktualizacji) statków powietrznych, którymi są zainteresowani. Autor statku powietrznego (lub zewnętrzny opiekun hangaru) może opublikować adres URL hangaru, który jest kopiowany/wklejany na stronę dodawania w Qt Launcherze, a wszystkie nowe statki powietrzne pojawiają się natychmiast. James wykonał kawał dobrej roboty po stronie Qt, aby zebrać to wszystko razem dla użytkowników końcowych. Będzie to kolejny krok naprzód w większym procesie, który opracowaliśmy jakiś czas temu.[8]


Ostatecznym celem jest ułatwienie opiekunom hangarów dystrybucji i integracji ich pracy z "nowym" Launcherem FlightGear (który istnieje już na tyle długo, że trudno go nazwać nowym). System katalogów statków powietrznych Jamesa sprawia, że wyszukiwanie, wybieranie i aktualizowanie statków powietrznych jest naprawdę łatwe i bezproblemowe dla użytkowników końcowych. Opiekunowie statków powietrznych po prostu publikują swoje pliki catalog.xml (które są generowane przez skrypt). Efektem ubocznym tego systemu jest odejście od zależności od FGAddon (lub innych jeszcze bardziej masywnych repozytoriów) i promowanie mniejszych i bardziej ukierunkowanych repozytoriów stron trzecich oraz wyższy stopień decentralizacji i skalowalności.[9]

1rightarrow.png Zobacz QtQuick use in FlightGear - główny artykuł na ten temat.

Zgodnie z planem dla rozwoju FlightGear 4.xx, obecny interfejs graficzny FlightGear (oparty na PUI bibliotece PLIB) zostanie zastąpiony interfejsem opartym na Qt. Ponadto równolegle rozwijany będzie interfejs użytkownika oparty na przeglądarce (o nazwie Phi).[10] Spowoduje to powstanie następującego interfejsu użytkownika:

  • Qt Launcher
  • Wewnętrzny interfejs użytkownika oparty na integracji Qt/Canvas.
  • Zewnętrzny interfejs użytkownika oparty na przeglądarce (Phi)

Należy jednak wyjaśnić, że Qt zawsze pozostanie opcjonalną zależnością.[11]

Na maj 2017, James jest nadal bardzo niezdecydowany co do tego, jakiej technologii użyć do GUI w symulatorze, jest nieco skłonny do korzystania z Canvas, ponieważ pozwala to uniknąć niektórych problemów z renderowaniem (ale ujawnia kilka innych, plus niektóre wydajnościowe), ale problem polega na tym, że James jest dość niezadowolony z GUI/widżet API w Canvas w tej chwili - nie spełnia jego wyobrażeń o tym, jak proste + solidne powinno być takie API, James musi ocenić, czy obecne API można ulepszyć, czy też należy je drastycznie zmienić. Inną kwestią jest użycie QtQuick renderowanego do OpenGL, który ma bardzo ładne, solidne i dobrze zaprojektowane API, ale dodaje pewne zależności i komplikuje architekturę renderowania, co denerwuje go w przypadku konfiguracji wielu okien i innych bardziej ezoterycznych konfiguracji OSG.[12]

Zależności

Istnieje 100% zgoda co do tego, że FlightGear nigdy nie będzie wymagał Qt[13], intencją jest dodanie zintegrowanych wygodnych funkcji, ale środowisko wiersza poleceń/powłoki nie zmieni się, a domyślny tryb "fgfs" nawet w kompilacji z obsługą Qt pozostanie niezmieniony. Musisz ustawić zmienne środowiskowe lub przekazać argument, aby uzyskać Launcher, nawet jeśli funkcja została wybrana w czasie kompilacji. Mamy tę przewagę, że wstępnie zbudowanym kompilacją na Windows i Mac, łatwo jest zapewnić dostępność Qt, a ci użytkownicy są mniej skłonni do używania wiersza poleceń niż użytkownicy Linuksa.[14]

Nawet jeśli Qt zostanie wybrane w czasie kompilacji, nadal będzie możliwe jego wyłączenie w czasie wykonywania. Jest to ważne, ponieważ /początkowo/ jest prawdopodobne, że niektóre funkcje konfiguracji okna nie będą działać podczas korzystania z Qt. Zwłaszcza opcje wielu okien umożliwiające obsługę różnych projektorów obok siebie.[15] Kiedy Launcher został wprowadzony, istniały znaczne rozbieżności w opiniach na temat tego, czy właściwe jest wymaganie zależności od Qt; główni programiści doszli do wniosku, że jest to niepożądane, chyba że ma to konkretną korzyść.[16] Ponieważ na razie Qt jest potrzebne tylko dla Launchera, zostało ono opcjonalną zależnością, a ludzie mogą nadal używać innych frontendów, jeśli chcą.

Jeśli CMake nie jest w stanie znaleźć Qt 5.1 (minimalna wymagana wersja) lub nowszej, program uruchamiający nie zostanie skompilowany[17][18] i zostanie wyświetlony następujący komunikat:

-- Qt launcher enabled, checking for Qt 5.1 / qmake
CMake Warning at CMakeLists.txt:303 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5" (requested
  version 5.1) with any of the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.

Jeśli CMake wyświetla następujące ostrzeżenie, należy zainstalować qtdeclarative5-dev

  Target "fgqmlui" links to target "Qt5::Quick" but the target was not found.

Od maja 2015 r. Qt Launcher jest domyślny w systemach Microsoft Windows i OS X, w przypadku Linuksa to od twórców dystrybucji zależy, czy go dołączą, czy nie.

Czy, jak i kiedy wewnętrzny interfejs graficzny może wykorzystać Qt, jest przedmiotem badań i jest w tak wczesnym stanie, że osoby odpowiedzialne wolały jeszcze niczego nie ogłaszać. Jeśli tak się stanie, zostanie to omówione na liście mailingowej.[19]

Społecznościowe instrukcje wideo

Omówienie całego Launchera

Poradnik autorstwa SP-ROM (język polski), w którym od 4:57 minuty omawiany jest cały Launcher dla FlightGeara w wersji 2020.1.

Zakładka Statki powietrzne: instalowanie, filtrowanie według ocen

Poradnik autorstwa Parnikkapore dla Flightgear 2020.1 (język ang.). Uwaga: można wybrać warianty z karty samolotu dla statków powietrznych, które je mają, takich jak C172p, klikając menu rozwijane tytułu.

Powiązane treści

References
  1. 1.0 1.1 James Turner (Apr 8th, 2016). [Flightgear-devel] Launcher add-on handling changes.
  2. James Turner (Nov 23rd, 2015). Re: [Flightgear-devel] Qt launcher and phi-utility FGFS 3.6.0 RC to 3.7.0.
  3. https://sourceforge.net/p/flightgear/fgdata/ci/654a343bbb7eb51b387060515e3415e152d12c2a/
  4. https://sourceforge.net/p/flightgear/mailman/message/35689137/
  5. The FlightGear Front-End Situation
  6. Thorsten  (Jul 26th, 2016).  Re: 2016.x.x take off from carrier .
  7. curt  (Sep 2nd, 2016).  Re: Jumbolino .
  8. curt  (Jun 6th, 2016).  Re: A call for FlightGear wiki logos for the 3rd party hanga .
  9. curt  (Sep 7th, 2016).  Re: How the project works .
  10. Torsten (Jan 10th, 2015). Re: New Canvas GUI.
  11. James Turner (Oct 11th, 2015). [Flightgear-devel] GUI questions (again).
  12. James Turner  (May 28th, 2017).  Re: [Flightgear-devel] KBOS runway list? are there 10 or are there 12? .
  13. James Turner (Oct 11th, 2015). [Flightgear-devel] GUI questions (again).
  14. James Turner (Oct 11th, 2015). [Flightgear-devel] GUI questions (again).
  15. James Turner (Oct 11th, 2015). [Flightgear-devel] GUI questions (again).
  16. Durk Talsma (2015-06-11). Re: [Flightgear-devel] Policy Document and V4.X Roadmap.
  17. Rebecca N. Palmer (Feb 26th, 2015). Re: [Flightgear-devel] FGData splitting / assembling the base package.
  18. Bertrand Coconnier (Feb 26th, 2015). Re: [Flightgear-devel] Qt launcher requirement bump in Flightgear git.
  19. Torsten (Jan 11th, 2015). Re: FlightGear GUI hell: PUI, Canvas GUI, Mongoose, Qt5 ??.