diff options
52 files changed, 770 insertions, 399 deletions
@@ -4,7 +4,7 @@ # Set the port dfile="lumina" -VERSION="1.3.0" +VERSION="1.3.1" massage_subdir() { cd "$1" diff --git a/port-files/FreeBSD/x11/lumina-core/pkg-plist b/port-files/FreeBSD/x11/lumina-core/pkg-plist index 58828828..91380e14 100644 --- a/port-files/FreeBSD/x11/lumina-core/pkg-plist +++ b/port-files/FreeBSD/x11/lumina-core/pkg-plist @@ -1,11 +1,15 @@ +bin/lthemeengine bin/lumina-desktop bin/lumina-info bin/lumina-open bin/start-lumina-desktop etc/luminaDesktop.conf.dist +lib/qt5/plugins/platformthemes/liblthemeengine.so +lib/qt5/plugins/styles/liblthemeengine-style.so man/man1/lumina-open.1.gz man/man8/lumina-desktop.8.gz man/man8/start-lumina-desktop.8.gz +share/applications/lthemeengine.desktop share/applications/lumina-info.desktop share/applications/lumina-support.desktop share/icons/material-design-dark/LICENSE @@ -1634,6 +1638,12 @@ share/icons/material-design-light/scalable/status/weather-showers.svg share/icons/material-design-light/scalable/status/weather-snow.svg share/icons/material-design-light/scalable/status/weather-storm.svg share/icons/material-design-light/scalable/status/weather-windy.svg +share/lthemeengine/colors/airy.conf +share/lthemeengine/colors/darker.conf +share/lthemeengine/colors/dusk.conf +share/lthemeengine/colors/sand.conf +share/lthemeengine/colors/simple.conf +share/lthemeengine/colors/waves.conf share/lumina-desktop/Login.ogg share/lumina-desktop/Logout.ogg share/lumina-desktop/colors/Black.qss.colors diff --git a/src-qt5/OS-detect.pri b/src-qt5/OS-detect.pri index ac195000..8b7b0bc0 100644 --- a/src-qt5/OS-detect.pri +++ b/src-qt5/OS-detect.pri @@ -119,4 +119,11 @@ isEmpty(OS){ L_SESSDIR = $$DESTDIR$${L_SESSDIR} L_MANDIR = $$DESTDIR$${L_MANDIR} } + + #Some conf to redirect intermediate stuff in separate dirs + UI_DIR=./.build/ui/ + MOC_DIR=./.build/moc/ + OBJECTS_DIR=./.build/obj + RCC_DIR=./.build/rcc + QMAKE_DISTCLEAN += -r ./.build } diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_ca.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_ca.ts index 727f02c4..9b6491be 100644 --- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_ca.ts +++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_ca.ts @@ -77,7 +77,7 @@ <source>This color scheme already exists. Overwrite it?</source> <translation>Aquest esquema de colors ja existeix. -Voleu sobreescriure'l?</translation> +Voleu sobreescriure'l?</translation> </message> <message> <location filename="../ColorDialog.cpp" line="121"/> @@ -189,7 +189,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../PanelWidget.cpp" line="19"/> <source>Top/Left</source> - <translation>A dalt a l'esquerra</translation> + <translation>A dalt a l'esquerra</translation> </message> <message> <location filename="../PanelWidget.cpp" line="20"/> @@ -239,12 +239,12 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="80"/> <source>Desktop Bar</source> - <translation>Barra de l'escriptori</translation> + <translation>Barra de l'escriptori</translation> </message> <message> <location filename="../LPlugins.cpp" line="81"/> <source>This provides shortcuts to everything in the desktop folder - allowing easy access to all your favorite files/applications.</source> - <translation>Això proporciona dreceres a tot el que hi ha dins la carpeta de l'escriptori. Permet un accés fàcil a tots els vostres fitxers / aplicacions.</translation> + <translation>Això proporciona dreceres a tot el que hi ha dins la carpeta de l'escriptori. Permet un accés fàcil a tots els vostres fitxers / aplicacions.</translation> </message> <message> <location filename="../LPlugins.cpp" line="87"/> @@ -269,7 +269,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="109"/> <source>Keep track of your battery status.</source> - <translation>Feu un seguiment de l'estat de la bateria.</translation> + <translation>Feu un seguiment de l'estat de la bateria.</translation> </message> <message> <location filename="../LPlugins.cpp" line="115"/> @@ -279,7 +279,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="116"/> <source>View the current time and date.</source> - <translation>Mostra l'hora i la data actuals.</translation> + <translation>Mostra l'hora i la data actuals.</translation> </message> <message> <location filename="../LPlugins.cpp" line="122"/> @@ -289,7 +289,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="123"/> <source>View or change system settings (audio volume, screen brightness, battery life, virtual desktops).</source> - <translation>Vegeu o canvieu els paràmetres del sistema (volum de l'àudio, la brillantor, la vida de la bateria, els escriptoris virtuals).</translation> + <translation>Vegeu o canvieu els paràmetres del sistema (volum de l'àudio, la brillantor, la vida de la bateria, els escriptoris virtuals).</translation> </message> <message> <location filename="../LPlugins.cpp" line="129"/> @@ -310,17 +310,17 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="144"/> <source>Display area for dockable system applications</source> - <translation>Mostra l'àrea per a aplicacions de sistema acoblables</translation> + <translation>Mostra l'àrea per a aplicacions de sistema acoblables</translation> </message> <message> <location filename="../LPlugins.cpp" line="151"/> <source>Hide all open windows and show the desktop</source> - <translation>Amaga totes les finestres i mostra l'escriptori</translation> + <translation>Amaga totes les finestres i mostra l'escriptori</translation> </message> <message> <location filename="../LPlugins.cpp" line="157"/> <source>Start Menu</source> - <translation>Menú d'inici</translation> + <translation>Menú d'inici</translation> </message> <message> <location filename="../LPlugins.cpp" line="190"/> @@ -330,33 +330,33 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="191"/> <source>Display a calendar on the desktop</source> - <translation>Mostra un calendari a l'escriptori</translation> + <translation>Mostra un calendari a l'escriptori</translation> </message> <message> <location filename="../LPlugins.cpp" line="164"/> <location filename="../LPlugins.cpp" line="197"/> <source>Application Launcher</source> - <translation>Llançador d'aplicacions</translation> + <translation>Llançador d'aplicacions</translation> </message> <message> <location filename="../LPlugins.cpp" line="66"/> <source>User Menu</source> - <translation>Menú de l'usuari</translation> + <translation>Menú de l'usuari</translation> </message> <message> <location filename="../LPlugins.cpp" line="67"/> - <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> - <translation>Inicia un menú alternatiu centrat en els fitxers, directoris i favorits de l'usuari.</translation> + <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> + <translation>Inicia un menú alternatiu centrat en els fitxers, directoris i favorits de l'usuari.</translation> </message> <message> <location filename="../LPlugins.cpp" line="73"/> <source>Application Menu</source> - <translation>Menú d'aplicació</translation> + <translation>Menú d'aplicació</translation> </message> <message> <location filename="../LPlugins.cpp" line="74"/> <source>Start menu alternative which focuses on launching applications.</source> - <translation>Inicia un menú alternatiu centrat en el llançament d'aplicacions.</translation> + <translation>Inicia un menú alternatiu centrat en el llançament d'aplicacions.</translation> </message> <message> <location filename="../LPlugins.cpp" line="94"/> @@ -371,42 +371,42 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="101"/> <source>Workspace Switcher</source> - <translation>Canviador d'espais de treball</translation> + <translation>Canviador d'espais de treball</translation> </message> <message> <location filename="../LPlugins.cpp" line="130"/> <source>View and control any running application windows (group similar windows under a single button).</source> - <translation>Mostra i controla qualsevol finestra d'aplicació en execució (agrupa les finestres similars en un sol botó).</translation> + <translation>Mostra i controla qualsevol finestra d'aplicació en execució (agrupa les finestres similars en un sol botó).</translation> </message> <message> <location filename="../LPlugins.cpp" line="137"/> <source>View and control any running application windows (every individual window has a button)</source> - <translation>Mostra i controla qualsevol finestra d'aplicació en execució (cada finestra té un botó).</translation> + <translation>Mostra i controla qualsevol finestra d'aplicació en execució (cada finestra té un botó).</translation> </message> <message> <location filename="../LPlugins.cpp" line="150"/> <source>Show Desktop</source> - <translation>Mostra l'escriptori</translation> + <translation>Mostra l'escriptori</translation> </message> <message> <location filename="../LPlugins.cpp" line="158"/> <source>Unified system access and application launch menu.</source> - <translation>Menú unificat de llançador d'aplicacions i d'accés al sistema.</translation> + <translation>Menú unificat de llançador d'aplicacions i d'accés al sistema.</translation> </message> <message> <location filename="../LPlugins.cpp" line="165"/> <source>Pin an application shortcut directly to the panel</source> - <translation>Enganxa la drecera d'una aplicació directament al plafó</translation> + <translation>Enganxa la drecera d'una aplicació directament al plafó</translation> </message> <message> <location filename="../LPlugins.cpp" line="198"/> <source>Desktop button for launching an application</source> - <translation>Botó d'escriptori per iniciar una aplicació</translation> + <translation>Botó d'escriptori per iniciar una aplicació</translation> </message> <message> <location filename="../LPlugins.cpp" line="204"/> <source>Desktop Icons View</source> - <translation>Vista d'icones a l'escriptori</translation> + <translation>Vista d'icones a l'escriptori</translation> </message> <message> <location filename="../LPlugins.cpp" line="211"/> @@ -416,19 +416,19 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="212"/> <source>Keep simple text notes on your desktop</source> - <translation>Mantingueu notes de text senzilles a l'escriptori</translation> + <translation>Mantingueu notes de text senzilles a l'escriptori</translation> </message> <message> <location filename="../LPlugins.cpp" line="171"/> <location filename="../LPlugins.cpp" line="218"/> <source>Audio Player</source> - <translation>Reproductor d'àudio</translation> + <translation>Reproductor d'àudio</translation> </message> <message> <location filename="../LPlugins.cpp" line="172"/> <location filename="../LPlugins.cpp" line="219"/> <source>Play through lists of audio files</source> - <translation>Reprodueix llistes de fitxers d'àudio</translation> + <translation>Reprodueix llistes de fitxers d'àudio</translation> </message> <message> <location filename="../LPlugins.cpp" line="225"/> @@ -438,7 +438,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="226"/> <source>Keep track of system statistics such as CPU/Memory usage and CPU temperatures.</source> - <translation>Control de les estadístiques del sistema com ara l'ús de la CPU i la mèmòria i les temperatures de la CPU.</translation> + <translation>Control de les estadístiques del sistema com ara l'ús de la CPU i la mèmòria i les temperatures de la CPU.</translation> </message> <message> <location filename="../LPlugins.cpp" line="232"/> @@ -489,7 +489,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="285"/> <source>Show the desktop settings menu.</source> - <translation>Mostra el menú de paràmetres de l'escriptori.</translation> + <translation>Mostra el menú de paràmetres de l'escriptori.</translation> </message> <message> <location filename="../LPlugins.cpp" line="298"/> @@ -510,7 +510,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="205"/> <source>Configurable area for automatically showing desktop icons</source> - <translation>Àrea configurable per mostrar automàticament icones d'escriptori</translation> + <translation>Àrea configurable per mostrar automàticament icones d'escriptori</translation> </message> <message> <location filename="../LPlugins.cpp" line="263"/> @@ -525,13 +525,13 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="292"/> <source>List the open, minimized, active, and urgent application windows</source> - <translation>Llista les finestres d'aplicació obertes, minimitzades, actives i urgents.</translation> + <translation>Llista les finestres d'aplicació obertes, minimitzades, actives i urgents.</translation> </message> <message> <location filename="../LPlugins.cpp" line="179"/> <location filename="../LPlugins.cpp" line="306"/> <source>Run an external script to generate a user defined menu</source> - <translation>Executa un script extern per generar un menú definit per l'usuari.</translation> + <translation>Executa un script extern per generar un menú definit per l'usuari.</translation> </message> <message> <location filename="../LPlugins.cpp" line="312"/> @@ -541,7 +541,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="313"/> <source>Lock the current desktop session</source> - <translation>Bloqueja la sessió d'escriptori actual</translation> + <translation>Bloqueja la sessió d'escriptori actual</translation> </message> <message> <location filename="../LPlugins.cpp" line="323"/> @@ -591,7 +591,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="348"/> <source>Main background color for widgets that list or display collections of items.</source> - <translation>Color de fons principal per a ginys que llisten o mostres col·leccions d'ítems.</translation> + <translation>Color de fons principal per a ginys que llisten o mostres col·leccions d'ítems.</translation> </message> <message> <location filename="../LPlugins.cpp" line="353"/> @@ -636,7 +636,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="377"/> <source>Accent Color</source> - <translation>Color d'accentuació</translation> + <translation>Color d'accentuació</translation> </message> <message> <location filename="../LPlugins.cpp" line="378"/> @@ -646,7 +646,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../LPlugins.cpp" line="383"/> <source>Accent Color (Disabled)</source> - <translation>Color d'accentuació (inhabilitat)</translation> + <translation>Color d'accentuació (inhabilitat)</translation> </message> <message> <location filename="../LPlugins.cpp" line="384"/> @@ -706,7 +706,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/getPage.cpp" line="45"/> <source>Startup Settings</source> - <translation>Paràmetres de l'inici</translation> + <translation>Paràmetres de l'inici</translation> </message> <message> <location filename="../pages/getPage.cpp" line="45"/> @@ -761,7 +761,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/getPage.cpp" line="48"/> <source>Change window settings and appearances</source> - <translation>Canvia els paràmetres i l'aparença de les finestres</translation> + <translation>Canvia els paràmetres i l'aparença de les finestres</translation> </message> <message> <location filename="../pages/getPage.cpp" line="49"/> @@ -781,12 +781,12 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/getPage.cpp" line="49"/> <source>Desktop Plugins</source> - <translation>Connectors de l'escriptori</translation> + <translation>Connectors de l'escriptori</translation> </message> <message> <location filename="../pages/getPage.cpp" line="49"/> <source>Change what icons or tools are embedded on the desktop</source> - <translation>Canvia les icones o les eines encastades a l'escriptori</translation> + <translation>Canvia les icones o les eines encastades a l'escriptori</translation> </message> <message> <location filename="../pages/getPage.cpp" line="50"/> @@ -806,7 +806,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/getPage.cpp" line="51"/> <source>Change what options are shown on the desktop context menu</source> - <translation>Canvia les opcions que es mostren al menú contextual de l'escriptori</translation> + <translation>Canvia les opcions que es mostren al menú contextual de l'escriptori</translation> </message> <message> <location filename="../pages/getPage.cpp" line="52"/> @@ -831,12 +831,12 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/getPage.cpp" line="53"/> <source>User Settings</source> - <translation>Paràmetres de l'usuari</translation> + <translation>Paràmetres de l'usuari</translation> </message> <message> <location filename="../pages/getPage.cpp" line="53"/> <source>Change basic user settings such as time/date formats</source> - <translation>Canvieu els paràmetres d'usuari bàsics com ara el format de l'hora i la data</translation> + <translation>Canvieu els paràmetres d'usuari bàsics com ara el format de l'hora i la data</translation> </message> </context> <context> @@ -885,7 +885,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../ScriptDialog.cpp" line="64"/> <source>Select an icon file</source> - <translation>Seleccioneu un fitxer d'icona</translation> + <translation>Seleccioneu un fitxer d'icona</translation> </message> </context> <context> @@ -932,7 +932,7 @@ Voleu sobreescriure'l?</translation> <source>This theme already exists. Overwrite it?</source> <translation>Aquest tema ja existeix. -Voleu sobreescriure'l?</translation> +Voleu sobreescriure'l?</translation> </message> </context> <context> @@ -990,7 +990,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_autostart.ui" line="39"/> <source>Add New Startup Service</source> - <translation>Afegeix un servei nou a l'inici</translation> + <translation>Afegeix un servei nou a l'inici</translation> </message> <message> <location filename="../pages/page_autostart.ui" line="75"/> @@ -1010,7 +1010,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_autostart.cpp" line="66"/> <source>Startup Services</source> - <translation>Serveis de l'inici</translation> + <translation>Serveis de l'inici</translation> </message> <message> <location filename="../pages/page_autostart.cpp" line="133"/> @@ -1020,7 +1020,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_autostart.cpp" line="133"/> <source>Application Binaries (*)</source> - <translation>Binaris d'aplicacions (*)</translation> + <translation>Binaris d'aplicacions (*)</translation> </message> <message> <location filename="../pages/page_autostart.cpp" line="136"/> @@ -1106,7 +1106,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_defaultapps.ui" line="269"/> <source>Set App</source> - <translation>Estableix l'aplicació</translation> + <translation>Estableix l'aplicació</translation> </message> <message> <location filename="../pages/page_defaultapps.ui" line="279"/> @@ -1225,7 +1225,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_fluxbox_keys.ui" line="184"/> <source>Note: Current key bindings need to be cleared and saved before they can be re-used.</source> - <translation>Nota: les associacions de tecles actuals s'han de netejar i desar abans que es puguin reutilitzar.</translation> + <translation>Nota: les associacions de tecles actuals s'han de netejar i desar abans que es puguin reutilitzar.</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.ui" line="220"/> @@ -1234,12 +1234,12 @@ Voleu sobreescriure'l?</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.ui" line="244"/> - <source>"Mod1": Alt key -"Mod4": Windows/Mac key -"Control": Ctrl key</source> - <translation>"Mod1": tecla Alt -"Mod4": tecla Windows/Mac -"Control": tecla Ctrl</translation> + <source>"Mod1": Alt key +"Mod4": Windows/Mac key +"Control": Ctrl key</source> + <translation>"Mod1": tecla Alt +"Mod4": tecla Windows/Mac +"Control": tecla Ctrl</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="70"/> @@ -1249,12 +1249,12 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="78"/> <source>Audio Volume Up</source> - <translation>Volum de l'àudio amunt</translation> + <translation>Volum de l'àudio amunt</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="79"/> <source>Audio Volume Down</source> - <translation>Volum de l'àudio avall</translation> + <translation>Volum de l'àudio avall</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="80"/> @@ -1297,7 +1297,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_fluxbox_settings.ui" line="81"/> <source>Number of Workspaces</source> - <translation>Nombre d'espais de treball</translation> + <translation>Nombre d'espais de treball</translation> </message> <message> <location filename="../pages/page_fluxbox_settings.ui" line="98"/> @@ -1381,7 +1381,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_interface_desktop.ui" line="79"/> <source>Display Desktop Folder Contents</source> - <translation>Mostra els continguts de la carpeta de l'escriptori</translation> + <translation>Mostra els continguts de la carpeta de l'escriptori</translation> </message> <message> <location filename="../pages/page_interface_desktop.ui" line="86"/> @@ -1391,7 +1391,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_interface_desktop.cpp" line="56"/> <source>Desktop Settings</source> - <translation>Paràmetres de l'escriptori</translation> + <translation>Paràmetres de l'escriptori</translation> </message> </context> <context> @@ -1409,7 +1409,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_interface_menu.cpp" line="46"/> <source>Desktop Settings</source> - <translation>Paràmetres de l'escriptori</translation> + <translation>Paràmetres de l'escriptori</translation> </message> </context> <context> @@ -1422,7 +1422,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_interface_panels.ui" line="46"/> <source>Panel</source> - <translation type="unfinished"></translation> + <translation>Plafó</translation> </message> <message> <location filename="../pages/page_interface_panels.ui" line="96"/> @@ -1437,7 +1437,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_interface_panels.cpp" line="58"/> <source>Desktop Settings</source> - <translation>Paràmetres de l'escriptori</translation> + <translation>Paràmetres de l'escriptori</translation> </message> </context> <context> @@ -1465,12 +1465,12 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_main.cpp" line="64"/> <source>Desktop Defaults</source> - <translation>Valors per defecte de l'escriptori</translation> + <translation>Valors per defecte de l'escriptori</translation> </message> <message> <location filename="../pages/page_main.cpp" line="68"/> <source>User Settings</source> - <translation>Paràmetres de l'usuari</translation> + <translation>Paràmetres de l'usuari</translation> </message> <message> <location filename="../pages/page_main.cpp" line="72"/> @@ -1480,7 +1480,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_main.cpp" line="158"/> <source>Desktop Settings</source> - <translation>Paràmetres de l'escriptori</translation> + <translation>Paràmetres de l'escriptori</translation> </message> </context> <context> @@ -1533,7 +1533,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_session_locale.cpp" line="47"/> <source>Desktop Settings</source> - <translation>Paràmetres de l'escriptori</translation> + <translation>Paràmetres de l'escriptori</translation> </message> <message> <location filename="../pages/page_session_locale.cpp" line="91"/> @@ -1551,7 +1551,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_session_options.ui" line="34"/> <source>Enable numlock on startup</source> - <translation>Habilita el bloqueig numèric a l'inici</translation> + <translation>Habilita el bloqueig numèric a l'inici</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="41"/> @@ -1571,22 +1571,22 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_session_options.ui" line="58"/> <source>Manage desktop app links</source> - <translation>Gestió dels enllaços de les aplicacions d'escriptori</translation> + <translation>Gestió dels enllaços de les aplicacions d'escriptori</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="65"/> <source>Show application crash data</source> - <translation>Mostra les dades de la fallada d'aplicacions</translation> + <translation>Mostra les dades de la fallada d'aplicacions</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="74"/> <source>Change User Icon</source> - <translation>Canvia la icona de l'usuari</translation> + <translation>Canvia la icona de l'usuari</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="112"/> <source>Time Format:</source> - <translation>Format de l'hora:</translation> + <translation>Format de l'hora:</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="124"/> @@ -1613,12 +1613,12 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_session_options.ui" line="220"/> <source>Window Manager</source> - <translation type="unfinished">Gestor de finestres</translation> + <translation>Gestor de finestres</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="248"/> <source>Reset Desktop Settings</source> - <translation>Restableix els paràmetres de l'escriptori</translation> + <translation>Restableix els paràmetres de l'escriptori</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="267"/> @@ -1643,22 +1643,22 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_session_options.cpp" line="20"/> <source>Time first then Date</source> - <translation>Primer l'hora, després la data</translation> + <translation>Primer l'hora, després la data</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="21"/> <source>Date first then Time</source> - <translation>Primer la data, després l'hora</translation> + <translation>Primer la data, després l'hora</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="61"/> <source>Window manager</source> - <translation type="unfinished"></translation> + <translation>Gestor de finestres</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="94"/> <source>Desktop Settings</source> - <translation>Paràmetres de l'escriptori</translation> + <translation>Paràmetres de l'escriptori</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="175"/> @@ -1673,17 +1673,17 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_session_options.cpp" line="180"/> <source>Reset User Image</source> - <translation>Restableix la imatge de l'usuari</translation> + <translation>Restableix la imatge de l'usuari</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="180"/> <source>Would you like to reset the user image to the system default?</source> - <translation>Voleu restablir la imatge de l'usuari a la predeterminada del sistema?</translation> + <translation>Voleu restablir la imatge de l'usuari a la predeterminada del sistema?</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="219"/> <source>Valid Time Codes:</source> - <translation>Codis d'hora vàlids:</translation> + <translation>Codis d'hora vàlids:</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="220"/> @@ -1728,12 +1728,12 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_session_options.cpp" line="228"/> <source>Time Codes</source> - <translation>Codis d'hora</translation> + <translation>Codis d'hora</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="242"/> <source>Valid Date Codes:</source> - <translation>Codis d'hora vàlids:</translation> + <translation>Codis d'hora vàlids:</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="243"/> @@ -1806,7 +1806,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_theme.ui" line="36"/> <source>Desktop Theme</source> - <translation>Tema de l'escriptori</translation> + <translation>Tema de l'escriptori</translation> </message> <message> <location filename="../pages/page_theme.ui" line="42"/> @@ -1852,7 +1852,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_theme.ui" line="138"/> <source>Icon Pack:</source> - <translation>Paquet d'icones:</translation> + <translation>Paquet d'icones:</translation> </message> <message> <location filename="../pages/page_theme.ui" line="148"/> @@ -1862,7 +1862,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_theme.ui" line="192"/> <source>Application Themes</source> - <translation>Temes de l'aplicació</translation> + <translation>Temes de l'aplicació</translation> </message> <message> <location filename="../pages/page_theme.ui" line="198"/> @@ -1911,7 +1911,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_wallpaper.ui" line="90"/> <source>Single Background</source> - <translation>Fons d'escriptori únic</translation> + <translation>Fons d'escriptori únic</translation> </message> <message> <location filename="../pages/page_wallpaper.ui" line="100"/> @@ -2008,7 +2008,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_wallpaper.cpp" line="131"/> <source>Top Left</source> - <translation>Dalt a l'esquerra</translation> + <translation>Dalt a l'esquerra</translation> </message> <message> <location filename="../pages/page_wallpaper.cpp" line="132"/> @@ -2018,7 +2018,7 @@ Voleu sobreescriure'l?</translation> <message> <location filename="../pages/page_wallpaper.cpp" line="133"/> <source>Bottom Left</source> - <translation>A baix a l'esquerra</translation> + <translation>A baix a l'esquerra</translation> </message> <message> <location filename="../pages/page_wallpaper.cpp" line="134"/> @@ -2049,7 +2049,7 @@ Voleu sobreescriure'l?</translation> <location filename="../pages/page_wallpaper.cpp" line="233"/> <location filename="../pages/page_wallpaper.cpp" line="258"/> <source>Find Background Image Directory</source> - <translation>Troba el directori d'imatges de fons</translation> + <translation>Troba el directori d'imatges de fons</translation> </message> </context> </TS> diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_cs.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_cs.ts index 9a43613c..0349162b 100644 --- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_cs.ts +++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_cs.ts @@ -345,7 +345,7 @@ Přepsat?</translation> </message> <message> <location filename="../LPlugins.cpp" line="67"/> - <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> + <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> <translation>Alternativa ke spouštěcí nabídce se zaměřením na uživatelovy soubory, adresáře a oblíbené položky.</translation> </message> <message> @@ -1234,12 +1234,12 @@ Přepsat?</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.ui" line="244"/> - <source>"Mod1": Alt key -"Mod4": Windows/Mac key -"Control": Ctrl key</source> - <translation>"Mod1": Alt key -"Mod4": klávesa Windows/Mac -"Control": klávesa Ctrl</translation> + <source>"Mod1": Alt key +"Mod4": Windows/Mac key +"Control": Ctrl key</source> + <translation>"Mod1": Alt key +"Mod4": klávesa Windows/Mac +"Control": klávesa Ctrl</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="70"/> @@ -1422,7 +1422,7 @@ Přepsat?</translation> <message> <location filename="../pages/page_interface_panels.ui" line="46"/> <source>Panel</source> - <translation type="unfinished"></translation> + <translation>Panel</translation> </message> <message> <location filename="../pages/page_interface_panels.ui" line="96"/> @@ -1613,7 +1613,7 @@ Přepsat?</translation> <message> <location filename="../pages/page_session_options.ui" line="220"/> <source>Window Manager</source> - <translation type="unfinished">Správce oken</translation> + <translation>Správce oken</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="248"/> @@ -1653,7 +1653,7 @@ Přepsat?</translation> <message> <location filename="../pages/page_session_options.cpp" line="61"/> <source>Window manager</source> - <translation type="unfinished"></translation> + <translation>Správce oken</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="94"/> diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts index 3d6a3bb7..fcf40c23 100644 --- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts +++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts @@ -345,7 +345,7 @@ </message> <message> <location filename="../LPlugins.cpp" line="67"/> - <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> + <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> <translation>Alternativ startmenu som fokuserer på brugerens filer, mapper og favoritter.</translation> </message> <message> @@ -1234,12 +1234,12 @@ </message> <message> <location filename="../pages/page_fluxbox_keys.ui" line="244"/> - <source>"Mod1": Alt key -"Mod4": Windows/Mac key -"Control": Ctrl key</source> - <translation>"Mod1": Alt-tast -"Mod4": Windows-/Mac-tast -"Control": Ctrl-tast</translation> + <source>"Mod1": Alt key +"Mod4": Windows/Mac key +"Control": Ctrl key</source> + <translation>"Mod1": Alt-tast +"Mod4": Windows-/Mac-tast +"Control": Ctrl-tast</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="70"/> @@ -1422,7 +1422,7 @@ <message> <location filename="../pages/page_interface_panels.ui" line="46"/> <source>Panel</source> - <translation type="unfinished"></translation> + <translation>Panel</translation> </message> <message> <location filename="../pages/page_interface_panels.ui" line="96"/> @@ -1613,7 +1613,7 @@ <message> <location filename="../pages/page_session_options.ui" line="220"/> <source>Window Manager</source> - <translation type="unfinished">Vindueshåndtering</translation> + <translation>Vindueshåndtering</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="248"/> @@ -1653,7 +1653,7 @@ <message> <location filename="../pages/page_session_options.cpp" line="61"/> <source>Window manager</source> - <translation type="unfinished"></translation> + <translation>Vindueshåndtering</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="94"/> diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_es.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_es.ts index ef899209..95d3610b 100644 --- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_es.ts +++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_es.ts @@ -55,7 +55,7 @@ <message> <location filename="../ColorDialog.ui" line="105"/> <source>Sample</source> - <translation>Ejemplo</translation> + <translation>Muestra</translation> </message> <message> <location filename="../ColorDialog.ui" line="115"/> @@ -289,7 +289,7 @@ <message> <location filename="../LPlugins.cpp" line="123"/> <source>View or change system settings (audio volume, screen brightness, battery life, virtual desktops).</source> - <translation>Ver o cambiar las opciones del sistema (volúmen, brillo, batería, escritorios virtuales)</translation> + <translation>Ver o cambiar las opciones del sistema (volúmen, brillo, batería, escritorios virtuales).</translation> </message> <message> <location filename="../LPlugins.cpp" line="129"/> @@ -463,7 +463,7 @@ <message> <location filename="../LPlugins.cpp" line="264"/> <source>Browse the system with the default file manager.</source> - <translation>Navegue el sisterma con el administrador de archivos predeterminado</translation> + <translation>Navegue el sisterma con el administrador de archivos predeterminado.</translation> </message> <message> <location filename="../LPlugins.cpp" line="270"/> @@ -536,12 +536,12 @@ <message> <location filename="../LPlugins.cpp" line="312"/> <source>Lock Session</source> - <translation type="unfinished"></translation> + <translation>Bloquear sesión</translation> </message> <message> <location filename="../LPlugins.cpp" line="313"/> <source>Lock the current desktop session</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Bloquear la sesión actual del desktop</translation> </message> <message> <location filename="../LPlugins.cpp" line="323"/> @@ -716,17 +716,17 @@ <message> <location filename="../pages/getPage.cpp" line="42"/> <source>Wallpaper</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Fondo de pantalla</translation> </message> <message> <location filename="../pages/getPage.cpp" line="43"/> <source>Theme</source> - <translation type="unfinished"></translation> + <translation>Tema</translation> </message> <message> <location filename="../pages/getPage.cpp" line="45"/> <source>Autostart</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Auto Iniciar</translation> </message> <message> <location filename="../pages/getPage.cpp" line="46"/> @@ -766,17 +766,17 @@ <message> <location filename="../pages/getPage.cpp" line="49"/> <source>Desktop</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Fondo</translation> </message> <message> <location filename="../pages/getPage.cpp" line="50"/> <source>Panels</source> - <translation type="unfinished"></translation> + <translation>Paneles</translation> </message> <message> <location filename="../pages/getPage.cpp" line="51"/> <source>Menu</source> - <translation type="unfinished"></translation> + <translation>Menú</translation> </message> <message> <location filename="../pages/getPage.cpp" line="49"/> @@ -821,7 +821,7 @@ <message> <location filename="../pages/getPage.cpp" line="52"/> <source>Localization</source> - <translation type="unfinished"></translation> + <translation>Localización</translation> </message> <message> <location filename="../pages/getPage.cpp" line="53"/> @@ -1058,7 +1058,7 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_compton.ui" line="39"/> <source>Only use compositing with GPU acceleration </source> - <translation type="unfinished"></translation> + <translation type="unfinished">Solo use composición con aceleración de GPU </translation> </message> <message> <location filename="../pages/page_compton.cpp" line="37"/> @@ -1386,7 +1386,7 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_interface_desktop.ui" line="86"/> <source>Display Removable Media Icons</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Mostrar Iconos de Media Removible</translation> </message> <message> <location filename="../pages/page_interface_desktop.cpp" line="56"/> @@ -1422,17 +1422,17 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_interface_panels.ui" line="46"/> <source>Panel</source> - <translation type="unfinished"></translation> + <translation>Panel</translation> </message> <message> <location filename="../pages/page_interface_panels.ui" line="96"/> <source>Profile</source> - <translation type="unfinished"></translation> + <translation>Perfil</translation> </message> <message> <location filename="../pages/page_interface_panels.ui" line="130"/> <source>Import</source> - <translation type="unfinished"></translation> + <translation>Importar</translation> </message> <message> <location filename="../pages/page_interface_panels.cpp" line="58"/> @@ -1475,7 +1475,7 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_main.cpp" line="72"/> <source>System Settings</source> - <translation type="unfinished"></translation> + <translation>Configuraciones de Sistema</translation> </message> <message> <location filename="../pages/page_main.cpp" line="158"/> @@ -1576,7 +1576,7 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_session_options.ui" line="65"/> <source>Show application crash data</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Mostrar dato del fallo de la aplicación</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="74"/> @@ -1653,7 +1653,7 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_session_options.cpp" line="61"/> <source>Window manager</source> - <translation type="unfinished"></translation> + <translation>Gestor de ventanas</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="94"/> @@ -1857,7 +1857,7 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_theme.ui" line="148"/> <source>Mouse Cursors:</source> - <translation>Cursores del ratón</translation> + <translation>Cursores del ratón:</translation> </message> <message> <location filename="../pages/page_theme.ui" line="192"/> @@ -1931,7 +1931,7 @@ Sobrescribirlo?</translation> <message> <location filename="../pages/page_wallpaper.ui" line="133"/> <source>Layout:</source> - <translation> Disposición:</translation> + <translation>Disposición:</translation> </message> <message> <location filename="../pages/page_wallpaper.cpp" line="55"/> diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_fr.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_fr.ts index 20206190..bc18eff2 100644 --- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_fr.ts +++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_fr.ts @@ -55,7 +55,7 @@ <message> <location filename="../ColorDialog.ui" line="105"/> <source>Sample</source> - <translation>Exemple</translation> + <translation>Échantillon</translation> </message> <message> <location filename="../ColorDialog.ui" line="115"/> @@ -77,13 +77,13 @@ <source>This color scheme already exists. Overwrite it?</source> <translation>Ce jeu de couleurs existe déjà. -Voulez-vous l'écraser ?</translation> +Voulez-vous l'écraser ?</translation> </message> <message> <location filename="../ColorDialog.cpp" line="121"/> <location filename="../ColorDialog.cpp" line="122"/> <source>Select Color</source> - <translation>Sélection de couleur</translation> + <translation>Sélectionner une Couleur</translation> </message> <message> <location filename="../ColorDialog.cpp" line="142"/> @@ -254,7 +254,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="88"/> <source>Invisible spacer to separate plugins.</source> - <translation>Élément d'espacement invisible pour séparer les éléments.</translation> + <translation>Élément d'espacement invisible pour séparer les éléments.</translation> </message> <message> <location filename="../LPlugins.cpp" line="102"/> @@ -269,7 +269,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="109"/> <source>Keep track of your battery status.</source> - <translation>Suivre le status de votre batterie</translation> + <translation>Suivre le status de votre batterie.</translation> </message> <message> <location filename="../LPlugins.cpp" line="115"/> @@ -279,7 +279,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="116"/> <source>View the current time and date.</source> - <translation>Affiche l'heure et la date actuelle.</translation> + <translation>Affiche l'heure et la date actuelle.</translation> </message> <message> <location filename="../LPlugins.cpp" line="122"/> @@ -310,7 +310,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="144"/> <source>Display area for dockable system applications</source> - <translation>Zone d'affichage pour les applications systèmes attachables</translation> + <translation>Zone d'affichage pour les applications systèmes attachables</translation> </message> <message> <location filename="../LPlugins.cpp" line="151"/> @@ -336,7 +336,7 @@ Voulez-vous l'écraser ?</translation> <location filename="../LPlugins.cpp" line="164"/> <location filename="../LPlugins.cpp" line="197"/> <source>Application Launcher</source> - <translation>Lanceur d'applications</translation> + <translation>Lanceur d'applications</translation> </message> <message> <location filename="../LPlugins.cpp" line="66"/> @@ -345,18 +345,18 @@ Voulez-vous l'écraser ?</translation> </message> <message> <location filename="../LPlugins.cpp" line="67"/> - <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> - <translation type="unfinished">Menu de démarrage alternatif qui se concentre sur les fichiers d'utilisateurs, les répertoires d'utilisateurs, et les favoris d'utilisateurs.</translation> + <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> + <translation type="unfinished">Menu de démarrage alternatif qui se concentre sur les fichiers d'utilisateurs, les répertoires d'utilisateurs, et les favoris d'utilisateurs.</translation> </message> <message> <location filename="../LPlugins.cpp" line="73"/> <source>Application Menu</source> - <translation>Menu de l'application</translation> + <translation>Menu de l'application</translation> </message> <message> <location filename="../LPlugins.cpp" line="74"/> <source>Start menu alternative which focuses on launching applications.</source> - <translation>Menu de démarrage alternatif qui se concentre sur le lancement d'applications.</translation> + <translation>Menu de démarrage alternatif qui se concentre sur le lancement d'applications.</translation> </message> <message> <location filename="../LPlugins.cpp" line="94"/> @@ -366,12 +366,12 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="95"/> <source>Simple line to provide visual separation between items.</source> - <translation>Ligne simple indiquant la séparation des items</translation> + <translation>Ligne simple indiquant la séparation des items.</translation> </message> <message> <location filename="../LPlugins.cpp" line="101"/> <source>Workspace Switcher</source> - <translation>Sélecteur d'espace de travail</translation> + <translation>Sélecteur d'espace de travail</translation> </message> <message> <location filename="../LPlugins.cpp" line="130"/> @@ -391,7 +391,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="158"/> <source>Unified system access and application launch menu.</source> - <translation>Accès simplifié au serveur et Menu de lancement d'application</translation> + <translation>Accès simplifié au serveur et Menu de lancement d'application.</translation> </message> <message> <location filename="../LPlugins.cpp" line="165"/> @@ -438,7 +438,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="226"/> <source>Keep track of system statistics such as CPU/Memory usage and CPU temperatures.</source> - <translation>Suivre les statistiques système comme l'utilisation CPU/Mémoire et les températures CPU.</translation> + <translation>Suivre les statistiques système comme l'utilisation CPU/Mémoire et les températures CPU.</translation> </message> <message> <location filename="../LPlugins.cpp" line="232"/> @@ -561,7 +561,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="330"/> <source>Text color for disabled or inactive items.</source> - <translation>Couleur de texte pour éléments inactifs ou désactivés</translation> + <translation>Couleur de texte pour éléments inactifs ou désactivés.</translation> </message> <message> <location filename="../LPlugins.cpp" line="335"/> @@ -581,7 +581,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="342"/> <source>Main background color for the window/dialog.</source> - <translation>Couleur d'arrière plan principale pour les fenêtres / dialogues.</translation> + <translation>Couleur d'arrière plan principale pour les fenêtres / dialogues.</translation> </message> <message> <location filename="../LPlugins.cpp" line="347"/> @@ -591,7 +591,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="348"/> <source>Main background color for widgets that list or display collections of items.</source> - <translation>Couleur principale de fond pour les widgets qui liste ou affiche les collections d'objets.</translation> + <translation>Couleur principale de fond pour les widgets qui liste ou affiche les collections d'objets.</translation> </message> <message> <location filename="../LPlugins.cpp" line="353"/> @@ -621,7 +621,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="366"/> <source>Alternate color for the theme.</source> - <translation>Couleur alternative pour le thème</translation> + <translation>Couleur alternative pour le thème.</translation> </message> <message> <location filename="../LPlugins.cpp" line="371"/> @@ -636,7 +636,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="377"/> <source>Accent Color</source> - <translation>Couleur d'Accent</translation> + <translation>Couleur d'Accent</translation> </message> <message> <location filename="../LPlugins.cpp" line="378"/> @@ -646,12 +646,12 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="383"/> <source>Accent Color (Disabled)</source> - <translation>Couleur d'Accent (Désactivée)</translation> + <translation>Couleur d'Accent (Désactivée)</translation> </message> <message> <location filename="../LPlugins.cpp" line="384"/> <source>Color used for borders or other accents (more subdued).</source> - <translation>Couleur utilisée pour les bordures et autres accents (plus tamisé)</translation> + <translation>Couleur utilisée pour les bordures et autres accents (plus tamisé).</translation> </message> <message> <location filename="../LPlugins.cpp" line="389"/> @@ -661,7 +661,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../LPlugins.cpp" line="390"/> <source>Color used for highlighting an item.</source> - <translation>Couleur utilisée pour la surbrillance d'un élément.</translation> + <translation>Couleur utilisée pour la surbrillance d'un élément.</translation> </message> <message> <location filename="../LPlugins.cpp" line="395"/> @@ -932,7 +932,7 @@ Voulez-vous l'écraser ?</translation> <source>This theme already exists. Overwrite it?</source> <translation>Ce thème existe déjà. - Voulez-vous l'écraser ?</translation> + Voulez-vous l'écraser ?</translation> </message> </context> <context> @@ -1020,7 +1020,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_autostart.cpp" line="133"/> <source>Application Binaries (*)</source> - <translation type="unfinished">Exécutables de L'Application (*)</translation> + <translation type="unfinished">Exécutables de L'Application (*)</translation> </message> <message> <location filename="../pages/page_autostart.cpp" line="136"/> @@ -1030,7 +1030,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_autostart.cpp" line="136"/> <source>The selected file is not executable!</source> - <translation type="unfinished">Le fichier sélectionné n'est pas exécutable !</translation> + <translation type="unfinished">Le fichier sélectionné n'est pas exécutable !</translation> </message> <message> <location filename="../pages/page_autostart.cpp" line="150"/> @@ -1172,7 +1172,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_defaultapps.cpp" line="279"/> <source>The selected binary is not executable!</source> - <translation type="unfinished">Le fichier sélectionné n'est pas exécutable.</translation> + <translation type="unfinished">Le fichier sélectionné n'est pas exécutable.</translation> </message> </context> <context> @@ -1220,7 +1220,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_fluxbox_keys.ui" line="161"/> <source>Change Key Binding:</source> - <translation type="unfinished">Changer l'Affectation de Touche</translation> + <translation type="unfinished">Changer l'Affectation de Touche</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.ui" line="184"/> @@ -1234,9 +1234,9 @@ Voulez-vous l'écraser ?</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.ui" line="244"/> - <source>"Mod1": Alt key -"Mod4": Windows/Mac key -"Control": Ctrl key</source> + <source>"Mod1": Alt key +"Mod4": Windows/Mac key +"Control": Ctrl key</source> <translation type="unfinished"></translation> </message> <message> @@ -1257,12 +1257,12 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="80"/> <source>Screen Brightness Up</source> - <translation type="unfinished">Luminosité de l'écran +</translation> + <translation type="unfinished">Luminosité de l'écran +</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="81"/> <source>Screen Brightness Down</source> - <translation type="unfinished">Diminuer la Luminosité de l'Écran</translation> + <translation type="unfinished">Diminuer la Luminosité de l'Écran</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="82"/> @@ -1272,7 +1272,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="83"/> <source>Lock Screen</source> - <translation type="unfinished">Verrouiller l'écran</translation> + <translation type="unfinished">Verrouiller l'écran</translation> </message> </context> <context> @@ -1295,7 +1295,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_fluxbox_settings.ui" line="81"/> <source>Number of Workspaces</source> - <translation type="unfinished">Nombre d'Espaces de Travail</translation> + <translation type="unfinished">Nombre d'Espaces de Travail</translation> </message> <message> <location filename="../pages/page_fluxbox_settings.ui" line="98"/> @@ -1453,7 +1453,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_main.cpp" line="56"/> <source>Interface Configuration</source> - <translation type="unfinished">Configuration de l'interface</translation> + <translation type="unfinished">Configuration de l'interface</translation> </message> <message> <location filename="../pages/page_main.cpp" line="60"/> @@ -1579,12 +1579,12 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_session_options.ui" line="74"/> <source>Change User Icon</source> - <translation type="unfinished">Modifier l'Icône Utilisateur</translation> + <translation type="unfinished">Modifier l'Icône Utilisateur</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="112"/> <source>Time Format:</source> - <translation type="unfinished">Format d'Heure:</translation> + <translation type="unfinished">Format d'Heure:</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="124"/> @@ -1606,7 +1606,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_session_options.ui" line="203"/> <source>Display Format</source> - <translation type="unfinished">Format d'Affichage</translation> + <translation type="unfinished">Format d'Affichage</translation> </message> <message> <location filename="../pages/page_session_options.ui" line="220"/> @@ -1646,7 +1646,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_session_options.cpp" line="21"/> <source>Date first then Time</source> - <translation type="unfinished">Date avant l'heure</translation> + <translation type="unfinished">Date avant l'heure</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="61"/> @@ -1671,12 +1671,12 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_session_options.cpp" line="180"/> <source>Reset User Image</source> - <translation type="unfinished">Réinitialiser l'image de l'utilisateur</translation> + <translation type="unfinished">Réinitialiser l'image de l'utilisateur</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="180"/> <source>Would you like to reset the user image to the system default?</source> - <translation type="unfinished">Voulez-vous réinitialiser l'image de l'utilisateur aux paramètres par défaut du système ?</translation> + <translation type="unfinished">Voulez-vous réinitialiser l'image de l'utilisateur aux paramètres par défaut du système ?</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="219"/> @@ -1786,7 +1786,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_session_options.cpp" line="253"/> <source>Text may be contained within single-quotes to ignore replacements</source> - <translation type="unfinished">Le texte peut être inclus dans des apostrophes afin d'ignorer les substitutions</translation> + <translation type="unfinished">Le texte peut être inclus dans des apostrophes afin d'ignorer les substitutions</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="254"/> @@ -1850,7 +1850,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_theme.ui" line="138"/> <source>Icon Pack:</source> - <translation type="unfinished">Pack d'icônes:</translation> + <translation type="unfinished">Pack d'icônes:</translation> </message> <message> <location filename="../pages/page_theme.ui" line="148"/> @@ -1914,7 +1914,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_wallpaper.ui" line="100"/> <source>Rotate Background</source> - <translation type="unfinished">Tourner l'arrière-plan</translation> + <translation type="unfinished">Tourner l'arrière-plan</translation> </message> <message> <location filename="../pages/page_wallpaper.ui" line="107"/> @@ -2026,7 +2026,7 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_wallpaper.cpp" line="142"/> <source>No Background</source> - <translation type="unfinished">Pas d'arrière-plan</translation> + <translation type="unfinished">Pas d'arrière-plan</translation> </message> <message> <location filename="../pages/page_wallpaper.cpp" line="142"/> @@ -2036,18 +2036,18 @@ Voulez-vous l'écraser ?</translation> <message> <location filename="../pages/page_wallpaper.cpp" line="162"/> <source>File does not exist</source> - <translation type="unfinished">Le fichier n'existe pas</translation> + <translation type="unfinished">Le fichier n'existe pas</translation> </message> <message> <location filename="../pages/page_wallpaper.cpp" line="202"/> <source>Find Background Image(s)</source> - <translation type="unfinished">Recherche d'image(s) pour l'arrière plan</translation> + <translation type="unfinished">Recherche d'image(s) pour l'arrière plan</translation> </message> <message> <location filename="../pages/page_wallpaper.cpp" line="233"/> <location filename="../pages/page_wallpaper.cpp" line="258"/> <source>Find Background Image Directory</source> - <translation type="unfinished">Trouver le Répertoire d'Image des Arrière-Plans</translation> + <translation type="unfinished">Trouver le Répertoire d'Image des Arrière-Plans</translation> </message> </context> </TS> diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_ja.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_ja.ts index bbd9f730..30cfab6e 100644 --- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_ja.ts +++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_ja.ts @@ -317,8 +317,8 @@ <message> <location filename="../LPlugins.cpp" line="151"/> <source>Hide all open windows and show the desktop</source> - <translatorcomment>"Home Button"の説明文</translatorcomment> - <translation>すべての開いているウィンドウを隠してデスクトップを表示します。</translation> + <translatorcomment>"Home Button"の説明文</translatorcomment> + <translation>すべての開いているウィンドウを隠してデスクトップを表示します</translation> </message> <message> <location filename="../LPlugins.cpp" line="157"/> @@ -348,7 +348,7 @@ </message> <message> <location filename="../LPlugins.cpp" line="67"/> - <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> + <source>Start menu alternative focusing on the user's files, directories, and favorites.</source> <translation>ユーザーのファイル・ディレクトリーやお気に入りに特化した別の種類のスタートメニューです。</translation> </message> <message> @@ -369,7 +369,7 @@ <message> <location filename="../LPlugins.cpp" line="95"/> <source>Simple line to provide visual separation between items.</source> - <translation>アイテムの間を分割する線を表示します</translation> + <translation>アイテムの間を分割する線を表示します。</translation> </message> <message> <location filename="../LPlugins.cpp" line="101"/> @@ -384,7 +384,7 @@ <message> <location filename="../LPlugins.cpp" line="137"/> <source>View and control any running application windows (every individual window has a button)</source> - <translation>実行中のアプリケーションウインドウを表示し、制御します (すべてのウインドウがそれぞれひとつのボタンを持ちます)。</translation> + <translation>実行中のアプリケーションウインドウを表示し、制御します (すべてのウインドウがそれぞれひとつのボタンを持ちます)</translation> </message> <message> <location filename="../LPlugins.cpp" line="150"/> @@ -399,12 +399,12 @@ <message> <location filename="../LPlugins.cpp" line="165"/> <source>Pin an application shortcut directly to the panel</source> - <translation>アプリケーションへのショートカットをデスクトップに貼り付けます。</translation> + <translation>アプリケーションへのショートカットをデスクトップに貼り付けます</translation> </message> <message> <location filename="../LPlugins.cpp" line="198"/> <source>Desktop button for launching an application</source> - <translatorcomment>もう一つの"Application Launcher"の説明</translatorcomment> + <translatorcomment>もう一つの"Application Launcher"の説明</translatorcomment> <translation>アプリケーションを起動するデスクトップボタン</translation> </message> <message> @@ -1038,7 +1038,7 @@ <message> <location filename="../pages/page_autostart.cpp" line="136"/> <source>The selected file is not executable!</source> - <translation>選択されたファイルは実行可能ファイルではありません。</translation> + <translation>選択されたファイルは実行可能ファイルではありません!</translation> </message> <message> <location filename="../pages/page_autostart.cpp" line="150"/> @@ -1129,7 +1129,7 @@ <message> <location filename="../pages/page_defaultapps.ui" line="58"/> <source>Web Browser:</source> - <translation>Webブラウザー</translation> + <translation>Webブラウザー:</translation> </message> <message> <location filename="../pages/page_defaultapps.ui" line="81"/> @@ -1180,7 +1180,7 @@ <message> <location filename="../pages/page_defaultapps.cpp" line="279"/> <source>The selected binary is not executable!</source> - <translation>選択したプログラムは実行可能ではありません。</translation> + <translation>選択したプログラムは実行可能ではありません!</translation> </message> </context> <context> @@ -1244,12 +1244,12 @@ </message> <message> <location filename="../pages/page_fluxbox_keys.ui" line="244"/> - <source>"Mod1": Alt key -"Mod4": Windows/Mac key -"Control": Ctrl key</source> - <translation>"Mod1": Alt キー -"Mod4": Windows/Mac キー -"Control": Ctrl キー</translation> + <source>"Mod1": Alt key +"Mod4": Windows/Mac key +"Control": Ctrl key</source> + <translation>"Mod1": Alt キー +"Mod4": Windows/Mac キー +"Control": Ctrl キー</translation> </message> <message> <location filename="../pages/page_fluxbox_keys.cpp" line="70"/> @@ -1396,7 +1396,7 @@ <message> <location filename="../pages/page_interface_desktop.ui" line="86"/> <source>Display Removable Media Icons</source> - <translation type="unfinished"></translation> + <translation type="unfinished">着脱可能なメディアアイコンを表示</translation> </message> <message> <location filename="../pages/page_interface_desktop.cpp" line="56"/> @@ -1432,7 +1432,7 @@ <message> <location filename="../pages/page_interface_panels.ui" line="46"/> <source>Panel</source> - <translation type="unfinished"></translation> + <translation type="unfinished">パネル</translation> </message> <message> <location filename="../pages/page_interface_panels.ui" line="96"/> @@ -1485,7 +1485,7 @@ <message> <location filename="../pages/page_main.cpp" line="72"/> <source>System Settings</source> - <translation type="unfinished"></translation> + <translation type="unfinished">系統設定</translation> </message> <message> <location filename="../pages/page_main.cpp" line="158"/> @@ -1663,7 +1663,7 @@ <message> <location filename="../pages/page_session_options.cpp" line="61"/> <source>Window manager</source> - <translation type="unfinished"></translation> + <translation>ウィンドウマネージャ</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="94"/> @@ -1798,7 +1798,7 @@ <message> <location filename="../pages/page_session_options.cpp" line="253"/> <source>Text may be contained within single-quotes to ignore replacements</source> - <translation>シングルクォートで囲まれた文字は日付への置き換え対象から外れます。</translation> + <translation>シングルクォートで囲まれた文字は日付への置き換え対象から外れます</translation> </message> <message> <location filename="../pages/page_session_options.cpp" line="254"/> diff --git a/src-qt5/core/core.pro b/src-qt5/core/core.pro index 4878b1f3..0f635960 100644 --- a/src-qt5/core/core.pro +++ b/src-qt5/core/core.pro @@ -8,9 +8,10 @@ SUBDIRS+= lumina-desktop \ lumina-session \ lumina-open \ lumina-info \ - $${PWD}/../../icon-theme -# lumina-wm-INCOMPLETE \ + $${PWD}/../../icon-theme \ + lumina-theme-engine # lumina-checkpass +# lumina-desktop-unified #Also install any special menu scripts scripts.path = $${L_SHAREDIR}/lumina-desktop/menu-scripts diff --git a/src-qt5/core/libLumina/LIconCache.cpp b/src-qt5/core/libLumina/LIconCache.cpp index 38367cef..bb81bc47 100644 --- a/src-qt5/core/libLumina/LIconCache.cpp +++ b/src-qt5/core/libLumina/LIconCache.cpp @@ -55,9 +55,9 @@ QString LIconCache::findFile(QString icon){ if(icon.isEmpty()){ return ""; } //Get the currently-set theme QString cTheme = QIcon::themeName(); - if(cTheme.isEmpty()){ - QIcon::setThemeName("material-design-light"); - cTheme = "material-design-light"; + if(cTheme.isEmpty()){ + QIcon::setThemeName("material-design-light"); + cTheme = "material-design-light"; } //Make sure the current search paths correspond to this theme if( QDir::searchPaths("icontheme").filter("/"+cTheme+"/").isEmpty() ){ @@ -80,7 +80,7 @@ QString LIconCache::findFile(QString icon){ fall << getChildIconDirs(paths[i]+"hicolor"); //XDG fallback (apps add to this) } //Now load all the icon theme dependencies in order (Theme1 -> Theme2 -> Theme3 -> Fallback) - + //fall << LOS::AppPrefix()+"share/pixmaps"; //always use this as well as a final fallback QDir::setSearchPaths("icontheme", theme); QDir::setSearchPaths("default", oxy); @@ -121,6 +121,10 @@ QString LIconCache::findFile(QString icon){ void LIconCache::loadIcon(QAbstractButton *button, QString icon, bool noThumb){ if(icon.isEmpty()){ return; } + if(isThemeIcon(icon)){ + button->setIcon( iconFromTheme(icon)); + return ; + } //See if the icon has already been loaded into the HASH bool needload = !HASH.contains(icon); if(!needload){ @@ -138,6 +142,10 @@ void LIconCache::loadIcon(QAbstractButton *button, QString icon, bool noThumb){ void LIconCache::loadIcon(QAction *action, QString icon, bool noThumb){ if(icon.isEmpty()){ return; } + if(isThemeIcon(icon)){ + action->setIcon( iconFromTheme(icon)); + return ; + } //See if the icon has already been loaded into the HASH bool needload = !HASH.contains(icon); if(!needload){ @@ -155,6 +163,10 @@ void LIconCache::loadIcon(QAction *action, QString icon, bool noThumb){ void LIconCache::loadIcon(QLabel *label, QString icon, bool noThumb){ if(icon.isEmpty()){ return; } + if(isThemeIcon(icon)){ + label->setPixmap( iconFromTheme(icon).pixmap(label->sizeHint()) ); + return ; + } //See if the icon has already been loaded into the HASH bool needload = !HASH.contains(icon); if(!needload){ @@ -164,7 +176,7 @@ void LIconCache::loadIcon(QLabel *label, QString icon, bool noThumb){ //Need to load the icon icon_data idata; if(HASH.contains(icon)){ idata = HASH.value(icon); } - else { idata = createData(icon); + else { idata = createData(icon); if(idata.fullpath.isEmpty()){ return; } //nothing to do } idata.pendingLabels << QPointer<QLabel>(label); //save this QLabel for later @@ -183,6 +195,8 @@ void LIconCache::clearIconTheme(){ QIcon LIconCache::loadIcon(QString icon, bool noThumb){ if(icon.isEmpty()){ return QIcon(); } + if(isThemeIcon(icon)){ return iconFromTheme(icon); } + if(HASH.contains(icon)){ if(!HASH[icon].icon.isNull()){ return HASH[icon].icon; } else if(!HASH[icon].thumbnail.isNull() && !noThumb){ return HASH[icon].thumbnail; } @@ -290,6 +304,19 @@ void LIconCache::ReadFile(LIconCache *obj, QString id, QString path){ obj->emit InternalIconLoaded(id, cdt, BA); } +bool LIconCache::isThemeIcon(QString id){ + return (!id.contains("/") && !id.contains(".") ); +} + +QIcon LIconCache::iconFromTheme(QString id){ + QIcon ico = QIcon::fromTheme(id); + if(ico.isNull()){ + //icon missing in theme? run the old icon-finder system + ico = QIcon(findFile(id)); + } + return ico; +} + // === PRIVATE SLOTS === void LIconCache::IconLoaded(QString id, QDateTime sync, QByteArray *data){ //qDebug() << "Icon Loaded:" << id << HASH.contains(id); diff --git a/src-qt5/core/libLumina/LIconCache.h b/src-qt5/core/libLumina/LIconCache.h index f58a5510..428ffcab 100644 --- a/src-qt5/core/libLumina/LIconCache.h +++ b/src-qt5/core/libLumina/LIconCache.h @@ -67,6 +67,9 @@ private: void startReadFile(QString id, QString path); void ReadFile(LIconCache *obj, QString id, QString path); + bool isThemeIcon(QString id); + QIcon iconFromTheme(QString id); + private slots: void IconLoaded(QString id, QDateTime sync, QByteArray *data); diff --git a/src-qt5/core/libLumina/LuminaXDG.cpp b/src-qt5/core/libLumina/LuminaXDG.cpp index 8da39564..01b3305e 100644 --- a/src-qt5/core/libLumina/LuminaXDG.cpp +++ b/src-qt5/core/libLumina/LuminaXDG.cpp @@ -723,7 +723,7 @@ QList<XDGDesktop*> LXDG::sortDesktopNames(QList<XDGDesktop*> apps){ //Sort the list by name of the application QHash<QString, XDGDesktop*> sorter; for(int i=0; i<apps.length(); i++){ - sorter.insert(apps[i]->name.toLower(), apps[i]); + sorter.insert(apps[i]->name.toLower(), apps[i]); } QStringList keys = sorter.keys(); keys.sort(); @@ -746,16 +746,25 @@ void LXDG::setEnvironmentVars(){ } QIcon LXDG::findIcon(QString iconName, QString fallback){ + //With the addition of the Lumina theme engine (8/3/17), switch back to using the Qt icon from theme method for apps + QIcon tmp; + if(!iconName.contains("libreoffice")){ //libreoffice is stupid - their svg icons are un-renderable with Qt + tmp = QIcon::fromTheme(iconName); + if(tmp.isNull()){ tmp = QIcon::fromTheme(fallback); } + } + if(!tmp.isNull()){ return tmp; } //found one in the theme + + //NOTE: This was re-written on 11/10/15 to avoid using the QIcon::fromTheme() framework // -- Too many issues with SVG files and/or search paths with the built-in system - + //Check if the icon is an absolute path and exists bool DEBUG =false; if(DEBUG){ qDebug() << "[LXDG] Find icon for:" << iconName; } if(QFile::exists(iconName) && iconName.startsWith("/")){ return QIcon(iconName); } else if(iconName.startsWith("/")){ iconName.section("/",-1); } //Invalid absolute path, just look for the icon //Check if the icon is actually given - if(iconName.isEmpty()){ + if(iconName.isEmpty()){ if(fallback.isEmpty()){ return QIcon(); } else{ return LXDG::findIcon(fallback, ""); } } @@ -763,9 +772,9 @@ QIcon LXDG::findIcon(QString iconName, QString fallback){ if(DEBUG){ qDebug() << "[LXDG] Start search for icon"; } //Get the currently-set theme QString cTheme = QIcon::themeName(); - if(cTheme.isEmpty()){ - QIcon::setThemeName("material-design-light"); - cTheme = "material-design-light"; + if(cTheme.isEmpty()){ + QIcon::setThemeName("material-design-light"); + cTheme = "material-design-light"; } //Make sure the current search paths correspond to this theme if( QDir::searchPaths("icontheme").filter("/"+cTheme+"/").isEmpty() ){ diff --git a/src-qt5/core/lumina-desktop-unified/global-includes.h b/src-qt5/core/lumina-desktop-unified/global-includes.h index 92f895c2..8b8cd16c 100644 --- a/src-qt5/core/lumina-desktop-unified/global-includes.h +++ b/src-qt5/core/lumina-desktop-unified/global-includes.h @@ -34,6 +34,7 @@ #include <QAnimationGroup> #include <QParallelAnimationGroup> #include <QSequentialAnimationGroup> +#include <QGraphicsOpacityEffect> #include <QWindow> #include <QWidget> #include <QWidgetAction> @@ -47,6 +48,8 @@ #include <QThread> #include <QMediaObject> #include <QMediaPlayer> +#include <QVideoWidget> +#include <QMediaPlaylist> // libLumina includes #include <LuminaX11.h> diff --git a/src-qt5/core/lumina-desktop-unified/main.cpp b/src-qt5/core/lumina-desktop-unified/main.cpp index 8e40f7eb..ef15cfcd 100644 --- a/src-qt5/core/lumina-desktop-unified/main.cpp +++ b/src-qt5/core/lumina-desktop-unified/main.cpp @@ -29,7 +29,7 @@ int main(int argc, char ** argv) setenv("DESKTOP_SESSION","Lumina",1); setenv("XDG_CURRENT_DESKTOP","Lumina",1); setenv("QT_NO_GLIB", "1", 1); //Disable the glib event loop within Qt at runtime (performance hit + bugs) - unsetenv("QT_QPA_PLATFORMTHEME"); //causes issues with Lumina themes - not many people have this by default... + //unsetenv("QT_QPA_PLATFORMTHEME"); //causes issues with Lumina themes - not many people have this by default... unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR"); //need exact-pixel measurements (no fake scaling) //Startup the session diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.cpp index aaae8b41..7fc4eb50 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.cpp @@ -12,6 +12,8 @@ #include "Grav.h" #include "SampleAnimation.h" #include "Text.h" +#include "ImageSlideshow.h" +#include "VideoSlideshow.h" //============================== // PLUGIN LOADING/LISTING @@ -24,6 +26,10 @@ BaseAnimGroup* BaseAnimGroup::NewAnimation(QString type, QWidget *parent, QSetti return (new GravAnimation(parent, set)); }else if(type == "text") { return (new TextAnimation(parent, set)); + }else if(type == "imageSlideshow") { + return (new ImageAnimation(parent, set)); + }else if(type == "videoSlideshow") { + return (new VideoAnimation(parent, set)); }else { //Unknown screensaver, return a blank animation group return (new BaseAnimGroup(parent, set)); @@ -31,5 +37,5 @@ BaseAnimGroup* BaseAnimGroup::NewAnimation(QString type, QWidget *parent, QSetti } QStringList BaseAnimGroup::KnownAnimations(){ - return (QStringList() << "grav"); + return (QStringList() << "videoSlideshow" /*<< "grav" << "text" << "imageSlideshow" << "fireflies"*/); } diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Grav.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Grav.h index ec1de914..50d733e9 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Grav.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Grav.h @@ -9,10 +9,8 @@ //PI is equal to 2*pi #define PI 6.2832 - #include "global-includes.h" #include "BaseAnimGroup.h" -#include <QParallelAnimationGroup> #include <QtMath> #include <QMatrix> @@ -32,44 +30,53 @@ private: radius = qSqrt( (qPow(start.x()-ref->x(),2) + qPow(start.y()-ref->y(),2) )); //Number of frames in animation. Increase for smother motion - double step = 1000.0; + double step = 300.0; //Random values that give the eliptical pattern to the orbit. Between 0.4 and 2.3 - double xrand = (qrand()%20+4)/10.0; - double yrand = (qrand()%20+4)/10.0; - - QPoint firstP = QPoint(ref->x() + xrand*start.x()*(qCos(0/step) -qSin(0/step)), ref->y() + yrand*start.y()*(qCos(0/step) -qSin(0/step))); - QPoint lastP = QPoint(ref->x() + xrand*start.x()*(qCos(PI/step) -qSin(PI/step)), ref->y() + yrand*start.y()*(qCos(PI/step) -qSin(PI/step))); - orbit->setKeyValueAt(0, firstP); - orbit->setKeyValueAt(1, lastP); + double xrand = 0.4; //(qrand()%10+4)/10.0; + double yrand = 0.4; //(qrand()%10+4)/10.0; + + double theta = 1.5707963; + //double theta = aTan((start.x() - ref->x())/(start.y() - ref->y())); + QMatrix rotation = QMatrix(qCos(theta), qSin(theta), -qSin(theta), qCos(theta), -ref->x(), -ref->y()); + qDebug() << rotation; + //qDebug() << "Starting Point" << start; + //qDebug() << "Angle" << theta; + //qDebug() << "Distance" << radius; + //qDebug() << "Center" << *ref; + + QPoint firstP = (QPoint(ref->x() + xrand*start.x()*(qCos(0/step) -qSin(0/step)), ref->y() + yrand*start.y()*(qCos(0/step) -qSin(0/step)))); + QPoint rotFP = rotation.map(firstP); + qDebug() << "First Point" << firstP; + qDebug() << "Rotation by Matrix" << rotFP; + QPoint lastP = (QPoint(ref->x() + xrand*start.x()*(qCos(PI/step) -qSin(PI/step)), ref->y() + yrand*start.y()*(qCos(PI/step) -qSin(PI/step)))); + orbit->setKeyValueAt(0, firstP); + orbit->setKeyValueAt(1, lastP); //path.push_back(firstP); //Loops through all steps and creates all the points of the orbit for(int i=1; i<step; i++) { //Calculates the new point, including gravitational pull and eccentricity. Goes from 0 to 2PI in steps. - double newX = ref->x() + xrand*start.x()*(qCos((PI*i)/step) -qSin((PI*i)/step)); - double newY = ref->y() + yrand*start.y()*(qSin((PI*i)/step) + qCos((PI*i)/step)); - - //Calculates the radius from the sun as the distance between the points - radius = (qSqrt( (qPow(newX-ref->x(),2) + qPow(newY-ref->y(),2) ))); + double newX = ref->x() + xrand*start.x()*(qCos((PI*i)/step) - qSin((PI*i)/step)); + double newY = ref->y() + yrand*start.y()*(qSin((PI*i)/step) + qCos((PI*i)/step)); //Creates a new point and creates a key as part of the animation - QPoint newLoc = QPoint(newX, newY); - orbit->setKeyValueAt(i/step, newLoc); + QPoint newLoc = (QPoint(newX, newY)); + orbit->setKeyValueAt(i/step, newLoc); //path.push_back(newLoc); } //Sets the time for a full orbit. Increasing makes the orbit slower. //path.push_back(lastP); } private slots: - void LoopChanged(int loop){ + /*void LoopChanged(int loop){ //Adjust the orbit animation a bit - /*if(loop >= 0) { + if(loop >= 0) { orbit->setStartValue(orbit->endValue()); //start at the previous end point orbit->setEndValue(path.at(loop%1000)); orbit->setDuration(10); - }*/ - } + } + }*/ void stopped(){ qDebug() << "Planet stopped"; planet->hide();} public: @@ -96,22 +103,18 @@ public: QRect invalid = QRect(center+QPoint(-50,-50), center+QPoint(50,50)); QPoint tmp = center; while(invalid.contains(tmp)){ - int randwidth = qrand()%(range.width() - 2*planet_radius) + planet_radius; - int randheight= qrand()%(range.height()- 2*planet_radius) + planet_radius; + int randwidth = qrand()%(range.width() - 2*planet_radius) + planet_radius; + int randheight = qrand()%(range.height()- 2*planet_radius) + planet_radius; tmp = QPoint(randwidth, randheight); } - /*double tmpDistance = qSqrt((qPow((tmp.x()-center.x()), 2) + qPow((tmp.y()-center.y()), 2))); - double theta = qAsin(qAbs(tmp.y()-center.y())/tmpDistance); - QMatrix rotation = QMatrix(qCos(theta), qSin(theta), -qSin(theta), qCos(theta), -center.x(), -center.y());*/ - //Creates all frames for the animation setupLoop(tmp, ¢er); this->addAnimation(orbit); planet->show(); //Ensures the screensaver will not stop until the user wishes to login or it times out - this->setLoopCount(5); //number of orbits + this->setLoopCount(1); //number of orbits orbit->setDuration( qrand() %1000 + 19000); //20 second orbits //orbit->setEndValue(path.at(0)); //LoopChanged(0); //load initial values @@ -138,13 +141,14 @@ private slots: for(int i=0; i<this->animationCount(); i++){ if(this->animationAt(i)->state()==QAbstractAnimation::Running){ running++; } } - if(running<=1){ wobble->stop(); emit wobble->finished();} + if(running<=1){ wobble->stop(); emit wobble->finished();} } public: GravAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} ~GravAnimation(){ - //this->stop(); + sun->deleteLater(); + while(planets.length()>0){ planets.takeAt(0)->deleteLater(); } } void LoadAnimations(){ @@ -152,8 +156,8 @@ public: sun = new QWidget(canvas); QPoint center = canvas->geometry().center(); QString sunstyle = QStringLiteral("background-color:qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, ") + - QStringLiteral("stop:0 rgba(0, 0, 0, 0), stop:0.38 rgba(0, 0, 0, 0), stop:0.4 rgba(82, 121, 76, 33), stop:0.5 rgba(159, 235, 148, 64), ") + - QStringLiteral("stop:0.6 rgba(255, 238, 150, 129), stop:0.7 rgba(0, 0, 0, 0));"); + QStringLiteral("stop:0 rgba(0, 0, 0, 0), stop:0.38 rgba(0, 0, 0, 0), stop:0.4 rgba(82, 121, 76, 33), stop:0.5 rgba(159, 235, 148, 64), ") + + QStringLiteral("stop:0.6 rgba(255, 238, 150, 129), stop:0.7 rgba(0, 0, 0, 0));"); sun->setStyleSheet(sunstyle); //Creates the sun's pulsing animation @@ -170,7 +174,6 @@ public: this->addAnimation(wobble); sun->show(); sun->setGeometry(initgeom); - while(planets.length()>0){ planets.takeAt(0)->deleteLater(); } //Gives the screensaver a black background canvas->setStyleSheet("background: black;"); diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/ImageSlideshow.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/ImageSlideshow.h new file mode 100644 index 00000000..4abc3ae7 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/ImageSlideshow.h @@ -0,0 +1,140 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#ifndef _LUMINA_DESKTOP_SCREEN_SAVER_IMAGESLIDESHOW_ANIMATION_H +#define _LUMINA_DESKTOP_SCREEN_SAVER_IMAGESLIDESHOW_ANIMATION_H + +#include "global-includes.h" +#include "BaseAnimGroup.h" + +class ImageSlideshow: public QParallelAnimationGroup{ + Q_OBJECT +private: + QLabel *image; + QPropertyAnimation *bounce, *fading; + QPixmap pixmap; + QStringList imageFiles; + QString imagePath; + QSize screenSize; + bool animate; + +private: + void setupAnimation() { + //Choose between starting from top or bottom at random + if(qrand() % 2) { + bounce->setKeyValueAt(0, QPoint(0,screenSize.height()-image->height())); + bounce->setKeyValueAt(0.25, QPoint((screenSize.width()-image->width())/2,0)); + bounce->setKeyValueAt(0.5, QPoint(screenSize.width()-image->width(),screenSize.height()-image->height())); + bounce->setKeyValueAt(0.75, QPoint((screenSize.width()-image->width())/2,0)); + bounce->setKeyValueAt(1, QPoint(0,screenSize.height()-image->height())); + }else{ + bounce->setKeyValueAt(0, QPoint(0,0)); + bounce->setKeyValueAt(0.25, QPoint((screenSize.width()-image->width())/2,screenSize.height()-image->height())); + bounce->setKeyValueAt(0.5, QPoint(screenSize.width()-image->width(),0)); + bounce->setKeyValueAt(0.75, QPoint((screenSize.width()-image->width())/2,screenSize.height()-image->height())); + bounce->setKeyValueAt(1, QPoint(0,0)); + } + } + + void chooseImage() { + QString randomFile = imagePath+imageFiles[qrand() % imageFiles.size()]; + + //Choose a new file if the chosen one is not an image + while(QImageReader::imageFormat(randomFile).isEmpty()) + randomFile = imagePath+imageFiles[qrand() % imageFiles.size()]; + pixmap.load(imagePath+imageFiles[qrand() % imageFiles.size()]); + + //If the image is larger than the screen, then shrink the image down to 3/4 it's size (so there's still some bounce) + //Scale the pixmap to keep the aspect ratio instead of resizing the label itself + if(pixmap.width() > screenSize.width() or pixmap.height() > screenSize.height()) + pixmap = pixmap.scaled(screenSize*(3.0/4.0), Qt::KeepAspectRatio); + + //Set pixmap to the image label + image->setPixmap(pixmap); + image->resize(pixmap.size()); + } + +private slots: + void LoopChanged(){ + //Load a new random image. Resize the label based on the image's size + chooseImage(); + setupAnimation(); + } + void stopped(){ qDebug() << "Image Stopped"; image->hide();} + +public: + ImageSlideshow(QWidget *parent, QString path, bool animate) : QParallelAnimationGroup(parent){ + imagePath = path; + image = new QLabel(parent); + screenSize = parent->size(); + this->animate = animate; + + //Generate the list of files in the directory + imageFiles = QDir(imagePath).entryList(QDir::Files); + if(imageFiles.empty()) + qDebug() << "Current image file path has no files."; + + //Change some default settings for the image. If scaledContents is false, the image will be cut off if resized + image->setScaledContents(true); + image->setAlignment(Qt::AlignHCenter); + + //Load a random initial image + chooseImage(); + + //Create the animation that moves the image across the screen + bounce = new QPropertyAnimation(image, "pos", parent); + + //Add the animation that fades the image in and out + QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(parent); + image->setGraphicsEffect(eff); + fading = new QPropertyAnimation(eff,"opacity"); + fading->setKeyValueAt(0, 0); + fading->setKeyValueAt(0.20, 1); + fading->setKeyValueAt(0.80, 1); + fading->setKeyValueAt(1, 0); + this->addAnimation(fading); + + setupAnimation(); + image->show(); + //Only add the animation if set in the configuration file + if(animate) + this->addAnimation(bounce); + else + //If no animation, center the image in the middle of the screen + image->move(QPoint((parent->width()-image->width())/2,(parent->height()-image->height())/2)); + + //Loop through 30 times for a total for 4 minutes + this->setLoopCount(30); + bounce->setDuration(8000); + fading->setDuration(8000); + + connect(this, SIGNAL(currentLoopChanged(int)), this, SLOT(LoopChanged()) ); + connect(this, SIGNAL(finished()), this, SLOT(stopped()) ); + } + ~ImageSlideshow(){} + +}; + +class ImageAnimation: public BaseAnimGroup{ + Q_OBJECT +public: + ImageAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + ~ImageAnimation(){ + this->stop(); + } + + void LoadAnimations(){ + canvas->setStyleSheet("background: black;"); + //Load the path of the images from the configuration file (default /usr/local/backgrounds/) + QString imagePath = settings->value("imageSlideshow/path","/usr/local/backgrounds/").toString(); + //Load whether to animate the image (default true) + bool animate = settings->value("imageSlideshow/animate", true).toBool(); + ImageSlideshow *tmp = new ImageSlideshow(canvas, imagePath, animate); + this->addAnimation(tmp); + } + +}; +#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Text.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Text.h index a4c49692..3ec0af82 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Text.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Text.h @@ -4,11 +4,8 @@ // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== -#ifndef _LUMINA_DESKTOP_SCREEN_SAVER_Text_ANIMATION_H -#define _LUMINA_DESKTOP_SCREEN_SAVER_Text_ANIMATION_H - -//PI is equal to 2*pi -#define PI 6.2832 +#ifndef _LUMINA_DESKTOP_SCREEN_SAVER_TEXT_ANIMATION_H +#define _LUMINA_DESKTOP_SCREEN_SAVER_TEXT_ANIMATION_H #include "global-includes.h" #include "BaseAnimGroup.h" @@ -38,7 +35,7 @@ private slots: currLoc.setY(currLoc.y() + v.y()); movement->setEndValue(currLoc); } - void stopped(){ qDebug() << "text stopped"; text->hide();} + void stopped(){ qDebug() << "Text Stopped"; text->hide();} public: Text(QWidget *parent) : QParallelAnimationGroup(parent){ diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/VideoSlideshow.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/VideoSlideshow.h new file mode 100644 index 00000000..fdddaf93 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/VideoSlideshow.h @@ -0,0 +1,102 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#ifndef _LUMINA_DESKTOP_SCREEN_SAVER_VIDEOSLIDESHOW_ANIMATION_H +#define _LUMINA_DESKTOP_SCREEN_SAVER_VIDEOSLIDESHOW_ANIMATION_H + +#include "global-includes.h" +#include "BaseAnimGroup.h" + +class VideoSlideshow: public QPropertyAnimation{ + Q_OBJECT +public: + VideoSlideshow(QWidget *parent, QVideoWidget *videoWidget) : QPropertyAnimation(videoWidget, "pos", parent){ + this->setKeyValueAt(0,QPoint(0,0)); + this->setKeyValueAt(1,QPoint(0,0)); + } + ~VideoSlideshow(){} + +}; + +class VideoAnimation: public BaseAnimGroup{ + Q_OBJECT +private: + QString videoPath; + VideoSlideshow *tmp; + QVideoWidget *videoWidget; + QMediaPlayer *video; + QStringList videoFiles; + QMediaPlaylist *playlist; + bool multimonitor, random; + +private slots: + void startVideo() { + this->addAnimation(tmp); + tmp->setDuration(video->duration()); + qDebug() << "Status: " << video->mediaStatus(); + video->setPlaylist(playlist); + video->setVolume(100); + video->play(); + } + + void LoopChanged(){ + qDebug() << "New Video"; + if(random) + playlist->setCurrentIndex(qrand() % videoFiles.size()); + else + playlist->setCurrentIndex(playlist->currentIndex()+1); + } + + void stopped(){qDebug() << "Video Stopped"; videoWidget->hide();} + +public: + VideoAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + + ~VideoAnimation(){ + this->stop(); + } + + void LoadAnimations(){ + canvas->setStyleSheet("background: black;"); + + //Load the path of the videos from the configuration file (default /usr/local/videos/) + videoPath = settings->value("videoSlideshow/path","/usr/local/videos/").toString(); + + //Set whether to copy videos on two monitors or play different videos + multimonitor = settings->value("videoSlideshow/multimonitor",true).toBool(); + + //Set whether to play random videos or in order + random = settings->value("videoSlideshow/random",false).toBool(); + + video = new QMediaPlayer(canvas, QMediaPlayer::VideoSurface); + videoWidget = new QVideoWidget(canvas); + + tmp = new VideoSlideshow(canvas, videoWidget); + + //Generate the list of files in the directory + videoFiles = QDir(videoPath).entryList(QDir::Files); + if(videoFiles.empty()) + qDebug() << "Current video file path has no files."; + + this->setLoopCount(videoFiles.size()); + + //Load a random initial video + playlist = new QMediaPlaylist(); + for(int i = 0; i < videoFiles.size(); i++) + playlist->addMedia(QUrl::fromLocalFile(videoFiles[i])); + if(random) + playlist->setCurrentIndex(qrand() % videoFiles.size()); + + video->setVideoOutput(videoWidget); + videoWidget->show(); + qDebug() << "VideoWidget Displayed"; + connect(video, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(startVideo())); + connect(this, SIGNAL(currentLoopChanged(int)), this, SLOT(LoopChanged()) ); + connect(this, SIGNAL(finished()), this, SLOT(stopped()) ); + } + +}; +#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/animations.pri b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/animations.pri index 35141a0e..fdc75717 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/animations.pri +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/animations.pri @@ -4,5 +4,7 @@ HEADERS += $$PWD/BaseAnimGroup.h \ $$PWD/SampleAnimation.h \ $${PWD}/Fireflies.h \ $${PWD}/Grav.h \ + $${PWD}/ImageSlideshow.h \ + $${PWD}/VideoSlideshow.h \ $${PWD}/Text.h #FORMS += diff --git a/src-qt5/core/lumina-desktop/LSession.cpp b/src-qt5/core/lumina-desktop/LSession.cpp index 93318b0f..777affd1 100644 --- a/src-qt5/core/lumina-desktop/LSession.cpp +++ b/src-qt5/core/lumina-desktop/LSession.cpp @@ -191,7 +191,10 @@ void LSession::CleanupSession(){ int vol = LOS::audioVolume(); if(vol>=0){ sessionsettings->setValue("last_session_state/audio_volume", vol); } bool playaudio = sessionsettings->value("PlayLogoutAudio",true).toBool(); - if( playaudio ){ playAudioFile(LOS::LuminaShare()+"Logout.ogg"); } + if( playaudio ){ + QString sfile = sessionsettings->value("audiofiles/logout", LOS::LuminaShare()+"Logout.ogg").toString(); + playAudioFile(sfile); + } //Stop the background system tray (detaching/closing apps as necessary) stopSystemTray(!cleansession); //Now perform any other cleanup @@ -296,7 +299,8 @@ void LSession::launchStartupApps(){ //Now play the login music since we are finished if(sessionsettings->value("PlayStartupAudio",true).toBool()){ - LSession::playAudioFile(LOS::LuminaShare()+"Login.ogg"); + QString sfile = sessionsettings->value("audiofiles/login", LOS::LuminaShare()+"Login.ogg").toString(); + playAudioFile(sfile); } qDebug() << "[DESKTOP INIT FINISHED]"; } diff --git a/src-qt5/core/lumina-desktop/main.cpp b/src-qt5/core/lumina-desktop/main.cpp index 1b0e5e4d..6017cad7 100644 --- a/src-qt5/core/lumina-desktop/main.cpp +++ b/src-qt5/core/lumina-desktop/main.cpp @@ -72,8 +72,8 @@ int main(int argc, char ** argv) LXDG::setEnvironmentVars(); setenv("DESKTOP_SESSION","Lumina",1); setenv("XDG_CURRENT_DESKTOP","Lumina",1); - unsetenv("QT_QPA_PLATFORMTHEME"); //causes issues with Lumina themes - not many people have this by default... - //setenv("QT_QPA_PLATFORMTHEME", "lthemeengine"); + //unsetenv("QT_QPA_PLATFORMTHEME"); //causes issues with Lumina themes - not many people have this by default... + setenv("QT_QPA_PLATFORMTHEME", "lthemeengine", 1); unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR"); //causes pixel-specific scaling issues with the desktop - turn this on after-the-fact for other apps //Startup the session LSession a(argc, argv); diff --git a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp index 5e9d7a7f..be5b8488 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp @@ -78,8 +78,10 @@ void LBattery::updateBattery(bool force){ } if(icon<iconOld && icon==0){ //Play some audio warning chime when - LSession::handle()->playAudioFile(LOS::LuminaShare()+"low-battery.ogg"); - } + QString sfile = LSession::handle()->sessionSettings()->value("audiofiles/batterylow", LOS::LuminaShare()+"low-battery.ogg").toString(); + LSession::handle()->playAudioFile(sfile); + } + if(icon==0){ label->setStyleSheet("QLabel{ background: red;}"); } else if(icon==14 && charge>98){ label->setStyleSheet("QLabel{ background: green;}"); } else{ label->setStyleSheet("QLabel{ background: transparent;}"); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/clock/LClock.cpp b/src-qt5/core/lumina-desktop/panel-plugins/clock/LClock.cpp index bdf9b27e..db661841 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/clock/LClock.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/clock/LClock.cpp @@ -102,7 +102,7 @@ void LClock::updateTime(bool adjustformat){ lwid = metrics.width(lines[i]); if(lwid>wid){ wid = lwid; } } - this->setMinimumWidth( wid - (4*metrics.width("O")) ); + this->setMinimumWidth(wid); this->setMaximumWidth(wid + (4*metrics.width("O"))); }else{ //vertical layout diff --git a/src-qt5/core/lumina-session/main.cpp b/src-qt5/core/lumina-session/main.cpp index 3696ed20..71244a8b 100644 --- a/src-qt5/core/lumina-session/main.cpp +++ b/src-qt5/core/lumina-session/main.cpp @@ -21,6 +21,11 @@ #include <unistd.h> #define DEBUG 0 +int findAvailableSession(){ + int num = 0; + while(QFile::exists("/tmp/.X11-unix/X"+QString::number(num))){ num++; } + return num; +} int main(int argc, char ** argv) { @@ -45,7 +50,7 @@ int main(int argc, char ** argv) QString prog = QString(argv[0]).section("/",-1); LUtils::isValidBinary(prog); //will adjust the path to be absolute if(unified){ prog = prog+" --unified"; } - QStringList args; args << prog; + QStringList args; args << prog << "--" << ":"+QString::number(findAvailableSession()); //if(LUtils::isValidBinary("x11vnc")){ args << "--" << "-listen" << "tcp"; } //need to be able to VNC into this session return QProcess::execute("xinit", args); } diff --git a/src-qt5/core/lumina-session/session.cpp b/src-qt5/core/lumina-session/session.cpp index 48a25a8f..f9c8060a 100644 --- a/src-qt5/core/lumina-session/session.cpp +++ b/src-qt5/core/lumina-session/session.cpp @@ -85,6 +85,12 @@ void LSession::start(bool unified){ if(!LUtils::isValidBinary("lumina-desktop") ){ exit(1); } + setenv("DESKTOP_SESSION","Lumina",1); + setenv("XDG_CURRENT_DESKTOP","Lumina",1); + setenv("QT_QPA_PLATFORMTHEME","lthemeengine", true); + setenv("QT_NO_GLIB", "1", 1); //Disable the glib event loop within Qt at runtime (performance hit + bugs) + unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR"); //need exact-pixel measurements (no fake scaling) + if(!unified){ QSettings sessionsettings("lumina-desktop","sessionsettings"); QString WM = sessionsettings.value("WindowManager", "fluxbox").toString(); diff --git a/src-qt5/core/lumina-theme-engine/colors/airy.conf b/src-qt5/core/lumina-theme-engine/colors/airy.conf new file mode 100644 index 00000000..94008b7a --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/colors/airy.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#000000, #dcdcdc, #dcdcdc, #5e5c5b, #646464, #e1e1e1, #000000, #0a0a0a, #0a0a0a, #c8c8c8, #ffffff, #e7e4e0, #0986d3, #0a0a0a, #0986d3, #a70b06, #5c5b5a, #ffffff, #646464, #050505 +disabled_colors=#ffffff, #424245, #dcdcdc, #5e5c5b, #646464, #e1e1e1, #808080, #ffffff, #808080, #969696, #c8c8c8, #e7e4e0, #0986d3, #808080, #0986d3, #a70b06, #5c5b5a, #ffffff, #646464, #ffffff +inactive_colors=#323232, #b4b4b4, #dcdcdc, #5e5c5b, #646464, #e1e1e1, #323232, #323232, #323232, #969696, #c8c8c8, #e7e4e0, #0986d3, #323232, #0986d3, #a70b06, #5c5b5a, #ffffff, #646464, #323232 diff --git a/src-qt5/core/lumina-theme-engine/colors/darker.conf b/src-qt5/core/lumina-theme-engine/colors/darker.conf new file mode 100644 index 00000000..9c822b60 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/colors/darker.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ffffff, #424245, #979797, #5e5c5b, #302f2e, #4a4947, #ffffff, #ffffff, #ffffff, #3d3d3d, #222020, #e7e4e0, #12608a, #f9f9f9, #0986d3, #a70b06, #5c5b5a, #ffffff, #3f3f36, #ffffff +disabled_colors=#808080, #424245, #979797, #5e5c5b, #302f2e, #4a4947, #808080, #ffffff, #808080, #3d3d3d, #222020, #e7e4e0, #12608a, #808080, #0986d3, #a70b06, #5c5b5a, #ffffff, #3f3f36, #ffffff +inactive_colors=#ffffff, #424245, #979797, #5e5c5b, #302f2e, #4a4947, #ffffff, #ffffff, #ffffff, #3d3d3d, #222020, #e7e4e0, #12608a, #f9f9f9, #0986d3, #a70b06, #5c5b5a, #ffffff, #3f3f36, #ffffff diff --git a/src-qt5/core/lumina-theme-engine/colors/dusk.conf b/src-qt5/core/lumina-theme-engine/colors/dusk.conf new file mode 100644 index 00000000..5186ecef --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/colors/dusk.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#000000, #7f7f7f, #ffffff, #cbc7c4, #7f7f7f, #b8b5b2, #000000, #ffffff, #000000, #7f7f7f, #7f7f7f, #707070, #308cc6, #ffffff, #0000ff, #ff00ff, #7f7f7f, #000000, #7f7f7f, #000000 +disabled_colors=#bebebe, #7f7f7f, #ffffff, #cbc7c4, #7f7f7f, #b8b5b2, #bebebe, #ffffff, #bebebe, #7f7f7f, #7f7f7f, #b1aeab, #7f7f7f, #ffffff, #0000ff, #ff00ff, #7f7f7f, #000000, #7f7f7f, #000000 +inactive_colors=#000000, #7f7f7f, #ffffff, #cbc7c4, #7f7f7f, #b8b5b2, #000000, #ffffff, #000000, #7f7f7f, #7f7f7f, #707070, #308cc6, #ffffff, #0000ff, #ff00ff, #7f7f7f, #000000, #7f7f7f, #000000 diff --git a/src-qt5/core/lumina-theme-engine/colors/sand.conf b/src-qt5/core/lumina-theme-engine/colors/sand.conf new file mode 100644 index 00000000..92349195 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/colors/sand.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#000000, #ffffdc, #979797, #5e5c5b, #302f2e, #4a4947, #000000, #000000, #000000, #ffffdc, #ffffdc, #e7e4e0, #5f5b5d, #f9f9f9, #0986d3, #a70b06, #ffffdc, #000000, #3f3f36, #000000 +disabled_colors=#4a4947, #ffffdc, #979797, #5e5c5b, #302f2e, #4a4947, #4a4947, #4a4947, #4a4947, #ffffdc, #ffffdc, #e7e4e0, #5f5b5d, #f9f9f9, #0986d3, #a70b06, #ffffdc, #000000, #3f3f36, #000000 +inactive_colors=#000000, #ffffdc, #979797, #5e5c5b, #302f2e, #4a4947, #000000, #000000, #000000, #ffffdc, #ffffdc, #e7e4e0, #5f5b5d, #f9f9f9, #0986d3, #a70b06, #ffffdc, #000000, #3f3f36, #000000 diff --git a/src-qt5/core/lumina-theme-engine/colors/simple.conf b/src-qt5/core/lumina-theme-engine/colors/simple.conf new file mode 100644 index 00000000..8db9d75b --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/colors/simple.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#000000, #efebe7, #ffffff, #cbc7c4, #9f9d9a, #b8b5b2, #000000, #ffffff, #000000, #ffffff, #efebe7, #b1aeab, #308cc6, #ffffff, #0000ff, #ff0000, #f7f5f3, #000000, #ffffdc, #000000 +disabled_colors=#bebebe, #efebe7, #ffffff, #cbc7c4, #9f9d9a, #b8b5b2, #bebebe, #ffffff, #bebebe, #efebe7, #efebe7, #b1aeab, #9f9d9a, #ffffff, #0000ff, #ff0000, #f7f5f3, #000000, #ffffdc, #000000 +inactive_colors=#000000, #efebe7, #ffffff, #cbc7c4, #9f9d9a, #b8b5b2, #000000, #ffffff, #000000, #ffffff, #efebe7, #b1aeab, #308cc6, #ffffff, #0000ff, #ff0000, #f7f5f3, #000000, #ffffdc, #000000 diff --git a/src-qt5/core/lumina-theme-engine/colors/waves.conf b/src-qt5/core/lumina-theme-engine/colors/waves.conf new file mode 100644 index 00000000..7c7b4530 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/colors/waves.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#b0b0b0, #010b2c, #979797, #5e5c5b, #302f2e, #4a4947, #b0b0b0, #b0b0b0, #b0b0b0, #010b2c, #010b2c, #b0b0b0, #302f2e, #b0b0b0, #0986d3, #a70b06, #5c5b5a, #ffffff, #0a0a0a, #ffffff +disabled_colors=#808080, #010b2c, #979797, #5e5c5b, #302f2e, #4a4947, #808080, #808080, #808080, #00071d, #00071d, #b0b0b0, #00071d, #808080, #0986d3, #a70b06, #5c5b5a, #ffffff, #0a0a0a, #ffffff +inactive_colors=#b0b0b0, #010b2c, #979797, #5e5c5b, #302f2e, #4a4947, #b0b0b0, #b0b0b0, #b0b0b0, #010b2c, #010b2c, #b0b0b0, #302f2e, #b0b0b0, #0986d3, #a70b06, #5c5b5a, #ffffff, #0a0a0a, #ffffff diff --git a/src-qt5/core/lumina-theme-engine/lthemeengine.pri b/src-qt5/core/lumina-theme-engine/lthemeengine.pri index aa8a58bb..40202045 100644 --- a/src-qt5/core/lumina-theme-engine/lthemeengine.pri +++ b/src-qt5/core/lumina-theme-engine/lthemeengine.pri @@ -1,24 +1,11 @@ -#Some conf to redirect intermediate stuff in separate dirs -UI_DIR=./.build/ui/ -MOC_DIR=./.build/moc/ -OBJECTS_DIR=./.build/obj -RCC_DIR=./.build/rcc - -QMAKE_DISTCLEAN += -r .build +QT *= core gui widgets x11extras network +!isEqual (QT_MAJOR_VERSION, 5) { + error("Use Qt 5.4.0 or higher.") +} +include(../../OS-detect.pri) -CONFIG += c++11 +CONFIG *= c++11 #Install paths -unix { - isEmpty(PREFIX) { - PREFIX = /usr/local/ - } - isEmpty(PLUGINDIR) { - PLUGINDIR = $$[QT_INSTALL_PLUGINS] - } - - BINDIR = $$PREFIX/bin - DATADIR = $$PREFIX/share - - DEFINES += LTHEMEENGINE_DATADIR=\\\"$$DATADIR\\\" -} + PLUGINDIR = $${DISTDIR}$$[QT_INSTALL_PLUGINS] + DEFINES += LTHEMEENGINE_DATADIR=\\\"$$L_SHAREDIR\\\" diff --git a/src-qt5/core/lumina-theme-engine/lthemeengine.pro b/src-qt5/core/lumina-theme-engine/lthemeengine.pro deleted file mode 100644 index e3cb47b1..00000000 --- a/src-qt5/core/lumina-theme-engine/lthemeengine.pro +++ /dev/null @@ -1,59 +0,0 @@ -QT += core gui widgets x11extras network -!isEqual (QT_MAJOR_VERSION, 5) { - error("Use Qt 5.4.0 or higher.") -} - -QMAKE_DISTCLEAN += -r .build - -CONFIG += c++11 - -desktop.files=src/lthemeengine/ltheme.desktop -desktop.path=$${L_SHAREDIR}/applications/ - -#Install paths -unix { - isEmpty(PREFIX) { - PREFIX = /usr/local - } - isEmpty(PLUGINDIR) { - PLUGINDIR = $$[QT_INSTALL_PLUGINS] - } - - BINDIR = $$PREFIX/bin - DATADIR = $$PREFIX/share - - DEFINES += LTHEMEENGINE_DATADIR=\\\"$$DATADIR\\\" -} - -TEMPLATE = subdirs - -SUBDIRS += src/lthemeengine-qtplugin src/lthemeengine-style src/lthemeengine - -unix:exists($$[QT_INSTALL_BINS]/lrelease){ -LRELEASE_EXECUTABLE = $$[QT_INSTALL_BINS]/lrelease -} - -unix:exists($$[QT_INSTALL_BINS]/lrelease-qt5){ -LRELEASE_EXECUTABLE = $$[QT_INSTALL_BINS]/lrelease-qt5 -} - - -isEmpty(LRELEASE_EXECUTABLE){ -error(Could not find lrelease executable) -} -else { -message(Found lrelease executable: $$LRELEASE_EXECUTABLE) -} - -message (PREFIX=$$PREFIX) -message (BINDIR=$$BINDIR) -message (DATADIR=$$DATADIR) -message (PLUGINDIR=$$PLUGINDIR) -equals (DISABLE_WIDGETS,1):message ("QtWidgets are disabled!") - -#Some conf to redirect intermediate stuff in separate dirs -UI_DIR=./.build/ui/ -MOC_DIR=./.build/moc/ -OBJECTS_DIR=./.build/obj -RCC_DIR=./.build/rcc - diff --git a/src-qt5/core/lumina-theme-engine/lumina-theme-engine.pro b/src-qt5/core/lumina-theme-engine/lumina-theme-engine.pro new file mode 100644 index 00000000..d91091d3 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/lumina-theme-engine.pro @@ -0,0 +1,11 @@ +include(../../OS-detect.pri) + +TEMPLATE = subdirs +SUBDIRS += src/lthemeengine-qtplugin \ + src/lthemeengine-style \ + src/lthemeengine + +colors.files = colors/*.conf +colors.path = $${L_SHAREDIR}/lthemeengine/colors + +INSTALLS += colors diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengine-qtplugin.pro b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengine-qtplugin.pro index a186cd49..3dca4fd1 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengine-qtplugin.pro +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengine-qtplugin.pro @@ -2,7 +2,7 @@ include(../../lthemeengine.pri) TEMPLATE = lib TARGET = lthemeengine -CONFIG += plugin +CONFIG *= plugin greaterThan(QT_MINOR_VERSION, 7) { QT += gui-private theme_support-private diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp index 9d6c9bea..453bde1d 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp @@ -70,7 +70,7 @@ QPlatformSystemTrayIcon *lthemeenginePlatformTheme::createPlatformSystemTrayIcon QDBusMenuConnection conn; m_dbusTrayAvailable = conn.isStatusNotifierHostRegistered(); m_checkDBusTray = false; - qCDebug(llthemeengine) << "D-Bus system tray:" << (m_dbusTrayAvailable ? "yes" : "no"); + //qCDebug(llthemeengine) << "D-Bus system tray:" << (m_dbusTrayAvailable ? "yes" : "no"); } return (m_dbusTrayAvailable ? new QDBusTrayIcon() : nullptr); } @@ -177,10 +177,10 @@ void lthemeenginePlatformTheme::readSettings(){ settings.beginGroup("Appearance"); m_style = settings.value("style", "Fusion").toString(); if(settings.value("custom_palette", false).toBool()){ - QString schemePath = settings.value("color_scheme_path").toString(); + QString schemePath = settings.value("color_scheme_path","airy").toString(); m_customPalette = new QPalette(loadColorScheme(schemePath)); } - m_iconTheme = settings.value("icon_theme").toString(); + m_iconTheme = settings.value("icon_theme", "material-design-light").toString(); settings.endGroup(); settings.beginGroup("Fonts"); m_generalFont = settings.value("general", QPlatformTheme::font(QPlatformTheme::SystemFont)).value<QFont>(); @@ -237,7 +237,20 @@ QString lthemeenginePlatformTheme::loadStyleSheets(const QStringList &paths){ return content; } -QPalette lthemeenginePlatformTheme::loadColorScheme(const QString &filePath){ +QPalette lthemeenginePlatformTheme::loadColorScheme(QString filePath){ + if(!filePath.contains("/") && !filePath.endsWith(".conf") && !filePath.isEmpty()){ + //relative theme name, auto-complete it + QStringList dirs; + dirs << getenv("XDG_CONFIG_HOME"); + dirs << QString(getenv("XDG_CONFIG_DIRS")).split(":"); + dirs << QString(getenv("XDG_DATA_DIRS")).split(":"); + QString relpath = "/lthemeengine/colors/%1.conf"; + relpath = relpath.arg(filePath); + for(int i=0; i<dirs.length(); i++){ + if(QFile::exists(dirs[i]+relpath)){ filePath = dirs[i]+relpath; break; } + } + } + QPalette customPalette; QSettings settings(filePath, QSettings::IniFormat); settings.beginGroup("ColorScheme"); diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h index 5313b73e..17323328 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h @@ -65,7 +65,7 @@ private: bool hasWidgets(); #endif QString loadStyleSheets(const QStringList &paths); - QPalette loadColorScheme(const QString &filePath); + QPalette loadColorScheme(QString filePath); QString m_style, m_iconTheme, m_userStyleSheet, m_prevStyleSheet; QPalette *m_customPalette = nullptr; QFont m_generalFont, m_fixedFont; diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengine-style.pro b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengine-style.pro index 0b40de64..0f68e7e4 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengine-style.pro +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengine-style.pro @@ -2,11 +2,11 @@ include(../../lthemeengine.pri) TEMPLATE = lib TARGET = lthemeengine-style -QT += widgets +QT *= widgets # Input -CONFIG += plugin +CONFIG *= plugin target.path = $$PLUGINDIR/styles INSTALLS += target diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp index 4d585409..04ca6a0b 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp @@ -190,8 +190,7 @@ void AppearancePage::readSettings(){ m_ui->customPaletteButton->setChecked(settings.value("custom_palette", false).toBool()); QString colorSchemePath = settings.value("color_scheme_path").toString(); QDir("/").mkpath(lthemeengine::userColorSchemePath()); - findColorSchemes(lthemeengine::userColorSchemePath()); - findColorSchemes(lthemeengine::sharedColorSchemePath().join(", ")); + findColorSchemes( QStringList() << lthemeengine::userColorSchemePath() << lthemeengine::sharedColorSchemePath()); if(m_ui->colorSchemeComboBox->count() == 0){ m_customPalette = palette(); //load fallback palette } @@ -223,12 +222,16 @@ void AppearancePage::setPalette(QWidget *w, QPalette p){ w->setPalette(p); } -void AppearancePage::findColorSchemes(const QString &path){ - QDir dir(path); - dir.setFilter(QDir::Files); - dir.setNameFilters(QStringList() << "*.conf"); - foreach (QFileInfo info, dir.entryInfoList()){ - m_ui->colorSchemeComboBox->addItem(info.baseName(), info.filePath()); +void AppearancePage::findColorSchemes(QStringList paths){ + paths.removeDuplicates(); + for(int i=0; i<paths.length(); i++){ + if( !QFile::exists(paths[i])){ continue; } + QDir dir(paths[i]); + dir.setFilter(QDir::Files); + dir.setNameFilters(QStringList() << "*.conf"); + foreach (QFileInfo info, dir.entryInfoList()){ + m_ui->colorSchemeComboBox->addItem(info.baseName(), info.filePath()); + } } } diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h index 23bab52f..3f0fa427 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h @@ -35,7 +35,7 @@ private: void readSettings(); void setStyle(QWidget *w, QStyle *s); void setPalette(QWidget *w, QPalette p); - void findColorSchemes(const QString &path); + void findColorSchemes(QStringList paths); QPalette loadColorScheme(const QString &filePath); void createColorScheme(const QString &name, const QPalette &palette); Ui::AppearancePage *m_ui; diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp index 36b0c2fa..fdeb8966 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp @@ -6,6 +6,7 @@ #define LTHEMEENGINE_DATADIR "/usr/local/share" #endif +#include <QDebug> QString lthemeengine::configPath(){ return QDir::homePath() + "/.config/lthemeengine/"; @@ -46,7 +47,8 @@ QStringList lthemeengine::sharedStyleSheetPath(){ QStringList dirs; dirs << QString(getenv("XDG_CONFIG_HOME")); dirs << QString(getenv("XDG_CONFIG_DIRS")).split(":"); - for(int i=0; i<dirs.length(); i++){ dirs[i].append("/lthemeengine/colors/"); } + dirs << QString(getenv("XDG_DATA_DIRS")).split(":"); + for(int i=0; i<dirs.length(); i++){ dirs[i].append("/lthemeengine/qss/"); } if(dirs.isEmpty()){ dirs << LTHEMEENGINE_DATADIR"/lthemeengine/qss/"; } //no XDG settings - use the hardcoded path return dirs; } @@ -59,8 +61,10 @@ QStringList lthemeengine::sharedColorSchemePath(){ QStringList dirs; dirs << QString(getenv("XDG_CONFIG_HOME")); dirs << QString(getenv("XDG_CONFIG_DIRS")).split(":"); + dirs << QString(getenv("XDG_DATA_DIRS")).split(":"); for(int i=0; i<dirs.length(); i++){ dirs[i].append("/lthemeengine/colors/"); } if(dirs.isEmpty()){ dirs << LTHEMEENGINE_DATADIR"/lthemeengine/colors/"; } //no XDG settings - use the hardcoded path + qDebug() << "Got Color Dirs:" << dirs; return dirs; } diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h index 93a1d433..8a466ed9 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h @@ -8,7 +8,7 @@ #define LTHEMEENGINE_STRINGIFY(s) LTHEMEENGINE_TOSTRING(s) #define LTHEMEENGINE_VERSION_INT (LTHEMEENGINE_VERSION_MAJOR<<8 | LTHEMEENGINE_VERSION_MINOR) -#define LTHEMEENGINE_VERSION_STR LTHEMEENGINE_STRINGIFY(LTHEMEENGINE_VERSION_MAJOR.QT5CT_VERSION_MINOR) +#define LTHEMEENGINE_VERSION_STR LTHEMEENGINE_STRINGIFY(LTHEMEENGINE_VERSION_MAJOR.LTHEMEENGINE_VERSION_MINOR) #include <QString> #include <QStringList> diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.pro b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.pro index cc36ee5b..721b8888 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.pro +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.pro @@ -2,7 +2,7 @@ include(../../lthemeengine.pri) TEMPLATE = app -QT += widgets +QT *= widgets SOURCES += \ main.cpp \ @@ -43,13 +43,12 @@ HEADERS += \ qsspage.h \ qsseditordialog.h -!equals (DISABLE_WIDGETS,1) { DEFINES += USE_WIDGETS -} -target.path = $$BINDIR +TARGET = lthemeengine +target.path = $${L_BINDIR} desktop.files = lthemeengine.desktop -desktop.path = $$DATADIR/applications +desktop.path = $${L_SHAREDIR}/applications INSTALLS += target desktop diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp index 4c1b89fa..b0d5fe08 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp @@ -23,7 +23,7 @@ int main(int argc, char **argv){ QStringList errorMessages; QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); if(env.contains("QT_STYLE_OVERRIDE")){ errorMessages << app.translate("main", "Please remove the <b>QT_STYLE_OVERRIDE</b> environment variable"); } - if(env.value("QT_QPA_PLATFORMTHEME") != "lthemeengine"){ errorMessages << app.translate("main", "The <b>QT_QPA_PLATFORMTHEME</b> environment variable is not set correctly"); } + //if(env.value("QT_QPA_PLATFORMTHEME") != "lthemeengine"){ errorMessages << app.translate("main", "The <b>QT_QPA_PLATFORMTHEME</b> environment variable is not set correctly"); } if(!QStyleFactory::keys().contains("lthemeengine-style")){ errorMessages << app.translate("main", "Unable to find <b>liblthemeengine-style.so</b>"); } if(!errorMessages.isEmpty()){ QMessageBox::critical(0, app.translate("main", "Error"), errorMessages.join("<br><br>")); diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp index 97d4ea1a..ac891a80 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp @@ -13,6 +13,30 @@ QSSEditorDialog::QSSEditorDialog(const QString &filePath, QWidget *parent) : QDi setWindowTitle(tr("%1 - Style Sheet Editor").arg(file.fileName())); QSettings settings(lthemeengine::configFile(), QSettings::IniFormat); restoreGeometry(settings.value("QSSEditor/geometry").toByteArray()); + //Generate the list of standard colors for the user to pick + QStringList colors; + colors << tr("base (alternate)")+"::::alternate-base" + << tr("base")+"::::base" + << tr("text (bright)")+"::::bright-text" + << tr("button")+"::::button" + << tr("text (button)")+"::::button-text" + << tr("dark")+"::::dark" + << tr("highlight")+"::::highlight" + << tr("text (highlight)")+"::::highlighted-text" + << tr("light")+"::::light" + << tr("link")+"::::link" + << tr("link (visited)")+"::::link-visited" + << tr("mid")+"::::mid" + << tr("midlight")+"::::midlight" + << tr("shadow")+"::::shadow" + << tr("text")+"::::text" + << tr("window")+"::::window" + << tr("text (window)")+"::::window-text"; + colors.sort(); //sort by translated display name + colorMenu = new QMenu(m_ui->tool_color); + for(int i=0; i<colors.length(); i++){ colorMenu->addAction( colors[i].section("::::",0,0) )->setWhatsThis(colors[i].section("::::",1,1) ); } + m_ui->tool_color->setMenu(colorMenu); + connect(colorMenu, SIGNAL(triggered(QAction*)), this, SLOT(colorPicked(QAction*)) ); } QSSEditorDialog::~QSSEditorDialog(){ @@ -39,3 +63,9 @@ void QSSEditorDialog::on_buttonBox_clicked(QAbstractButton *button){ else if(id == QDialogButtonBox::Save){ save(); } else{ reject(); } } + +void QSSEditorDialog::colorPicked(QAction* act){ + QString id = act->whatsThis(); + if(id.isEmpty()){ return; } + m_ui->textEdit->insertPlainText( QString("palette(%1)").arg(id) ); +} diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h index ea615e81..114611fe 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h @@ -3,6 +3,8 @@ #include <QDialog> #include <QString> +#include <QMenu> +#include <QAction> namespace Ui { class QSSEditorDialog; @@ -20,12 +22,15 @@ public: private slots: void on_buttonBox_clicked(QAbstractButton *button); + void colorPicked(QAction*); private: void save(); void hideEvent(QHideEvent *); Ui::QSSEditorDialog *m_ui; QString m_filePath; + QMenu *colorMenu; + }; #endif // QSSEDITORDIALOG_H diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.ui b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.ui index 7627b4d4..f75a21c6 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.ui +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.ui @@ -31,14 +31,38 @@ </widget> </item> <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Save</set> - </property> - </widget> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QToolButton" name="tool_color"> + <property name="text"> + <string>Palette</string> + </property> + <property name="icon"> + <iconset theme="preferences-desktop-color"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="popupMode"> + <enum>QToolButton::InstantPopup</enum> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Save</set> + </property> + </widget> + </item> + </layout> </item> </layout> </widget> diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp index d690ef5d..2cf0f221 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp @@ -95,8 +95,7 @@ void QSSPage::on_removeButton_clicked(){ void QSSPage::readSettings(){ //load stylesheets m_ui->qssListWidget->clear(); - findStyleSheets(lthemeengine::userStyleSheetPath()); - findStyleSheets(lthemeengine::sharedStyleSheetPath().join(", ")); + findStyleSheets(QStringList() << lthemeengine::userStyleSheetPath() << lthemeengine::sharedStyleSheetPath()); QSettings settings(lthemeengine::configFile(), QSettings::IniFormat); QStringList styleSheets = settings.value("Interface/stylesheets").toStringList(); for(int i = 0; i < m_ui->qssListWidget->count(); ++i){ @@ -106,16 +105,20 @@ void QSSPage::readSettings(){ } } -void QSSPage::findStyleSheets(const QString &path){ - QDir dir(path); - dir.setFilter(QDir::Files); - dir.setNameFilters(QStringList() << "*.qss"); - foreach (QFileInfo info, dir.entryInfoList()){ - QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget); - item->setToolTip(info.filePath()); - item->setData(QSS_FULL_PATH_ROLE, info.filePath()); - item->setData(QSS_WRITABLE_ROLE, info.isWritable()); +void QSSPage::findStyleSheets(QStringList paths){ + paths.removeDuplicates(); + for(int i=0; i<paths.length(); i++){ + if(!QFile::exists(paths[i])){ continue; } + QDir dir(paths[i]); + dir.setFilter(QDir::Files); + dir.setNameFilters(QStringList() << "*.qss"); + foreach (QFileInfo info, dir.entryInfoList()){ + QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget); + item->setToolTip(info.filePath()); + item->setData(QSS_FULL_PATH_ROLE, info.filePath()); + item->setData(QSS_WRITABLE_ROLE, info.isWritable()); } + } } void QSSPage::on_renameButton_clicked(){ diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h index 1fe0ed73..5e924ad9 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h @@ -30,7 +30,7 @@ private slots: private: void readSettings(); - void findStyleSheets(const QString &path); + void findStyleSheets(QStringList paths); Ui::QSSPage *m_ui; QMenu *m_menu; }; diff --git a/src-qt5/desktop-utils/lumina-fm/Browser.cpp b/src-qt5/desktop-utils/lumina-fm/Browser.cpp index adfe6162..f2bdc178 100644 --- a/src-qt5/desktop-utils/lumina-fm/Browser.cpp +++ b/src-qt5/desktop-utils/lumina-fm/Browser.cpp @@ -97,13 +97,13 @@ void Browser::futureFinished(QString name, QImage icon){ QIcon ico; //LFileInfo info(name); LFileInfo *info = new LFileInfo(name); - if(!icon.isNull()){ + if(!icon.isNull() && showThumbs){ //qDebug() << " -- Data:"; QPixmap pix = QPixmap::fromImage(icon); ico.addPixmap(pix); - }else if(info->isDir()){ + //}else if(info->isDir()){ //qDebug() << " -- Folder:"; - ico = loadIcon("folder"); + //ico = loadIcon("folder"); } if(ico.isNull()){ //qDebug() << " -- MimeType:" << info.fileName() << info.mimetype(); @@ -141,12 +141,12 @@ void Browser::loadDirectory(QString dir){ QString path = directory.absoluteFilePath(files[i]); if(old.contains(path)){ old.removeAll(path); } oldFiles << path; //add to list for next time - if(showThumbs && imageFormats.contains(path.section(".",-1).toLower())){ + //if(showThumbs && imageFormats.contains(path.section(".",-1).toLower())){ QtConcurrent::run(this, &Browser::loadItem, path, this); - }else{ + /*}else{ //No special icon loading - just skip the file read step futureFinished(path, QImage()); //loadItem(path, this); - } + }*/ } watcher->addPath(directory.absolutePath()); if(!old.isEmpty()){ |