diff options
Diffstat (limited to 'src-qt5/core')
22 files changed, 334 insertions, 252 deletions
diff --git a/src-qt5/core/lumina-desktop-unified/global-objects.h b/src-qt5/core/lumina-desktop-unified/global-objects.h index 84133563..043bc46c 100644 --- a/src-qt5/core/lumina-desktop-unified/global-objects.h +++ b/src-qt5/core/lumina-desktop-unified/global-objects.h @@ -18,11 +18,11 @@ #include "global-includes.h" //Load the appropriate "EventFilter" class for the graphics subsystem -#ifndef USE_WAYLAND -#include "src-WM/LXcbEventFilter.h" -#endif +//#ifndef USE_WAYLAND +#include <LXcbEventFilter.h> +//#endif -#include "src-WM/LScreenSaver.h" +#include "<LScreenSaver.h>" #include "src-WM/LWindowManager.h" //Any special defines for settings/testing @@ -34,12 +34,11 @@ namespace Lumina{ enum WindowAction{MoveResize, Show, Hide, TryClose, Closed, WA_NONE}; //Data structures and objects - extern LXCB *SYSTEM; //Native graphic system interface - EventFilter *EFILTER; //Native Event Watcher + extern EventFilter *EFILTER; //Native Event Watcher //ScreenSaver - LScreenSaver *SS; + extern LScreenSaver *SS; //Window Manager - LWindowManager *WM; + //LWindowManager *WM; QThread *EVThread; //X Event thread diff --git a/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro b/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro index 4b725288..8c72541c 100644 --- a/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro +++ b/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro @@ -5,7 +5,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets x11extras multimedia concurrent -TARGET = lumina-desktop +TARGET = lumina-desktop-unified target.path = $${L_BINDIR} #include all the special classes from the Lumina tree @@ -16,106 +16,30 @@ include(../libLumina/LuminaX11.pri) include(../libLumina/LuminaSingleApplication.pri) include(../libLumina/LuminaThemes.pri) -#LIBS += -lLuminaUtils -lxcb -lxcb-damage -#DEPENDPATH += ../libLumina - TEMPLATE = app SOURCES += main.cpp \ - WMProcess.cpp \ - LXcbEventFilter.cpp \ LSession.cpp \ - LDesktop.cpp \ - LDesktopBackground.cpp \ - LDesktopPluginSpace.cpp \ - LPanel.cpp \ - LWinInfo.cpp \ - AppMenu.cpp \ - SettingsMenu.cpp \ - SystemWindow.cpp \ - BootSplash.cpp \ - desktop-plugins/LDPlugin.cpp - - -HEADERS += Globals.h \ - WMProcess.h \ - LXcbEventFilter.h \ + BootSplash.cpp + +HEADERS += global-includes.h \ + global-objects.h \ LSession.h \ - LDesktop.h \ - LDesktopBackground.h \ - LDesktopPluginSpace.h \ - LPanel.h \ - LWinInfo.h \ - AppMenu.h \ - SettingsMenu.h \ - SystemWindow.h \ - BootSplash.h \ - panel-plugins/LPPlugin.h \ - panel-plugins/NewPP.h \ - panel-plugins/LTBWidget.h \ - desktop-plugins/LDPlugin.h \ - desktop-plugins/NewDP.h \ - JsonMenu.h - -FORMS += SystemWindow.ui \ - BootSplash.ui + BootSplash.h + +FORMS += BootSplash.ui + +include(src-screensaver/screensaver.pri) #Now include all the files for the various plugins -include(panel-plugins/panel-plugins.pri) -include(desktop-plugins/desktop-plugins.pri) +#include(panel-plugins/panel-plugins.pri) +#include(desktop-plugins/desktop-plugins.pri) -RESOURCES+= Lumina-DE.qrc desktop.path = $${L_SESSDIR} -desktop.files = Lumina-DE.desktop - -icons.files = Lumina-DE.png \ - Insight-FileManager.png -icons.path = $${L_SHAREDIR}/pixmaps - -fluxconf.files = fluxboxconf/fluxbox-init-rc \ - fluxboxconf/fluxbox-keys -fluxconf.path = $${L_SHAREDIR}/lumina-desktop/ - -wallpapers.files = wallpapers/Lumina_Wispy_gold.jpg \ - wallpapers/Lumina_Wispy_green.jpg \ - wallpapers/Lumina_Wispy_purple.jpg \ - wallpapers/Lumina_Wispy_red.jpg \ - wallpapers/Lumina_Wispy_blue-grey.jpg \ - wallpapers/Lumina_Wispy_blue-grey-zoom.jpg \ - wallpapers/Lumina_Wispy_grey-blue.jpg \ - wallpapers/Lumina_Wispy_grey-blue-zoom.jpg -wallpapers.path = $${L_SHAREDIR}/wallpapers/Lumina-DE - - -defaults.files = defaults/luminaDesktop.conf \ - defaults/compton.conf \ - audiofiles/Logout.ogg \ - audiofiles/Login.ogg \ - audiofiles/low-battery.ogg -defaults.path = $${L_SHAREDIR}/lumina-desktop/ - -conf.path = $${L_ETCDIR} - -#Now do any OS-specific defaults (if available) -#First see if there is a known OS override first -!isEmpty(DEFAULT_SETTINGS){ - message("Installing defaults settings for OS: $${DEFAULT_SETTINGS}") - OS=$${DEFAULT_SETTINGS} -} -exists("defaults/luminaDesktop-$${OS}.conf"){ - message(" -- Found OS-specific system config file: $${OS}"); - conf.extra = cp defaults/luminaDesktop-$${OS}.conf $(INSTALL_ROOT)$${L_ETCDIR}/luminaDesktop.conf.dist -}else{ - conf.extra = cp defaults/luminaDesktop.conf $(INSTALL_ROOT)$${L_ETCDIR}/luminaDesktop.conf.dist -} -exists("defaults/desktop-background-$${OS}.jpg"){ - message(" -- Found OS-specific background image: $${OS}"); - defaults.extra = cp defaults/desktop-background-$${OS}.jpg $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/desktop-background.jpg -}else{ - defaults.extra = cp defaults/desktop-background.jpg $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/desktop-background.jpg -} +desktop.files = lumina-desktop.desktop + TRANSLATIONS = i18n/lumina-desktop_af.ts \ i18n/lumina-desktop_ar.ts \ @@ -183,7 +107,7 @@ TRANSLATIONS = i18n/lumina-desktop_af.ts \ dotrans.path=$${L_SHAREDIR}/lumina-desktop/i18n/ dotrans.extra=cd i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ -INSTALLS += target desktop icons wallpapers defaults conf fluxconf +INSTALLS += target desktop WITH_I18N{ INSTALLS += dotrans diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/LXcbEventFilter.cpp b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.cpp index 0a7ca536..e2b1cb2c 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/LXcbEventFilter.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.cpp @@ -8,13 +8,19 @@ //================================================== // NOTE: All the XCB interactions and atoms are accessed via: -// Lumina::SYSTEM->EWMH.(atom name) -// Lumina::SYSTEM->(do something) -// (Lumina::SYSTEM is the global XCB structure) +// obj->XCB->EWMH.(atom name) +// obj->XCB->(do something) //================================================== #include "global-objects.h" +//SYSTEM TRAY STANDARD DEFINITIONS +#define SYSTEM_TRAY_REQUEST_DOCK 0 +#define SYSTEM_TRAY_BEGIN_MESSAGE 1 +#define SYSTEM_TRAY_CANCEL_MESSAGE 2 + + #define DEBUG 1 + // Also keep the root window/screen around for use in the filters namespace L_XCB{ xcb_screen_t *root_screen; @@ -23,10 +29,10 @@ namespace L_XCB{ //Constructor for the Event Filter wrapper EventFilter::EventFilter() : QObject(){ + XCB = new LXCB(); EF = new XCBEventFilter(this); L_XCB::root_screen = xcb_aux_get_screen(QX11Info::connection(), QX11Info::appScreen()); L_XCB::root = L_XCB::root_screen->root; - SSLocked = false; WMFlag = 0; } @@ -34,23 +40,69 @@ void EventFilter::start(){ if(DEBUG){ qDebug() << " - Install event filter..."; } QCoreApplication::instance()->installNativeEventFilter(EF); if(DEBUG){ qDebug() << " - Run request check..."; } - if(!Lumina::SYSTEM->setupEventsForRoot()){ + if(!XCB->setupEventsForRoot()){ qCritical() << "[ERROR] Unable to setup WM event retrieval. Is another WM running?"; exit(1); } if(DEBUG){ qDebug() << " - Create WM ID Window"; } - WMFlag = Lumina::SYSTEM->WM_CreateWindow(); - Lumina::SYSTEM->setupEventsForRoot(WMFlag); - Lumina::SYSTEM->WM_Set_Supporting_WM(WMFlag); + WMFlag = XCB->WM_CreateWindow(); + XCB->setupEventsForRoot(WMFlag); + XCB->WM_Set_Supporting_WM(WMFlag); + + EF->startSystemTray(); + QCoreApplication::instance()->flush(); } - + +void EventFilter::stop(){ + EF->stopSystemTray(); +} + +QList<WId> EventFilter::currentTrayApps(){ + return EF->trayApps(); +} + +//============================= +// XCBEventFilter Class +//============================= + //Constructor for the XCB event filter XCBEventFilter::XCBEventFilter(EventFilter *parent) : QAbstractNativeEventFilter(){ obj = parent; + SystemTrayID = 0; + TrayDmgID = 0; InitAtoms(); } +void XCBEventFilter::InitAtoms(){ + //Initialize any special atoms that we need to save/use regularly + //NOTE: All the EWMH atoms are already saved globally in obj->XCB->EWMH + WinNotifyAtoms.clear(); + WinNotifyAtoms << obj->XCB->EWMH._NET_WM_NAME \ + << obj->XCB->EWMH._NET_WM_VISIBLE_NAME \ + << obj->XCB->EWMH._NET_WM_ICON_NAME \ + << obj->XCB->EWMH._NET_WM_VISIBLE_ICON_NAME \ + << obj->XCB->EWMH._NET_WM_ICON \ + << obj->XCB->EWMH._NET_WM_ICON_GEOMETRY; + + SysNotifyAtoms.clear(); + SysNotifyAtoms << obj->XCB->EWMH._NET_CLIENT_LIST \ + << obj->XCB->EWMH._NET_CLIENT_LIST_STACKING \ + << obj->XCB->EWMH._NET_CURRENT_DESKTOP \ + << obj->XCB->EWMH._NET_WM_STATE \ + << obj->XCB->EWMH._NET_ACTIVE_WINDOW \ + << obj->XCB->EWMH._NET_WM_ICON \ + << obj->XCB->EWMH._NET_WM_ICON_GEOMETRY; +} + +bool XCBEventFilter::startSystemTray(){ + +} + +bool XCBEventFilter::stopSystemTray(){ + +} + //This function format taken directly from the Qt5.3 documentation bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *) Q_DECL_OVERRIDE { @@ -84,8 +136,8 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag stopevent = BlockInputEvent( ((xcb_button_press_event_t *) ev)->root ); //use the main "root" window - not the child widget if(!stopevent){ //Activate the window right now if needed - if(LWM::SYSTEM->WM_Get_Active_Window()!=((xcb_button_press_event_t *) ev)->root){ - LWM::SYSTEM->WM_Set_Active_Window( ((xcb_button_press_event_t *) ev)->root); + if(obj->XCB->WM_Get_Active_Window()!=((xcb_button_press_event_t *) ev)->root){ + obj->XCB->WM_Set_Active_Window( ((xcb_button_press_event_t *) ev)->root); } } break; @@ -137,7 +189,9 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag //============================== case XCB_DESTROY_NOTIFY: qDebug() << "Window Closed Event"; - obj->emit WindowClosed( ((xcb_destroy_notify_event_t *) ev)->window ); + if( !rmTrayApp( ((xcb_destroy_notify_event_t *) ev)->window ) ){ + obj->emit WindowClosed( ((xcb_destroy_notify_event_t *) ev)->window ); + } break; //============================== case XCB_FOCUS_IN: @@ -156,6 +210,14 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag case XCB_CLIENT_MESSAGE: //qDebug() << "Client Message Event"; //qDebug() << " - Given Window:" << ((xcb_client_message_event_t*)ev)->window; + if( ((xcb_client_message_event_t*)ev)->type == _NET_SYSTEM_TRAY_OPCODE && ((xcb_client_message_event_t*)ev)->format == 32){ + //data32[0] is timestamp, [1] is opcode, [2] is window handle + if(SYSTEM_TRAY_REQUEST_DOCK == ((xcb_client_message_event_t*)ev)->data.data32[1]){ + addTrayApp( ((xcb_client_message_event_t*)ev)->data.data32[2] ); + } + //Ignore the System Tray messages at the moment + + } break; //============================== case XCB_CONFIGURE_NOTIFY: @@ -175,7 +237,11 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag case XCB_GE_GENERIC: break; //generic event - don't do anything special default: - qDebug() << "Default Event:" << (ev->response_type & ~0x80); + //if( (ev->response_type & ~0x80)==TrayDmgID){ + checkDamageID( ((xcb_damage_notify_event_t*)ev)->drawable ); + //}else{ + qDebug() << "Default Event:" << (ev->response_type & ~0x80); + //} //============================== } } @@ -183,18 +249,97 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag //never stop event handling (this will not impact the X events themselves - just the internal screensaver/WM/widgets) } +//System Tray Functions +QList<WId> XCBEventFilter::trayApps(){ + //return the list of all current tray apps + //Check the validity of all the current tray apps (make sure nothing closed erratically) + for(int i=0; i<RunningTrayApps.length(); i++){ + if(obj->XCB->WindowClass(RunningTrayApps[i]).isEmpty()){ + obj->emit Tray_AppClosed(RunningTrayApps.takeAt(i) ); + i--; + } + } + return RunningTrayApps; +} + +bool XCBEventFilter::startSystemTray(){ + if(SystemTrayID != 0){ return; } //already started + RunningTrayApps.clear(); //nothing running yet + SystemTrayID = obj->XCB->startSystemTray(0); + if(SystemTrayID!=0){ + obj->XCB->SelectInput(SystemTrayID); //make sure TrayID events get forwarded here + TrayDmgID = obj->XCB->GenerateDamageID(SystemTrayID); + qDebug() << "System Tray Started Successfully"; + if(DEBUG){ qDebug() << " - System Tray Flags:" << TrayDmgID; } + } + return (SystemTrayID!=0); +} + +bool XCBEventFilter::stopSystemTray(){ + if(SystemTrayID==0){ return; } //already stopped + qDebug() << "Stopping system tray..."; + //Close all the running Tray Apps + QList<WId> tmpApps = RunningTrayApps; + //RunningTrayApps.clear(); //clear this ahead of time so tray's do not attempt to re-access the apps + //Close all the running tray apps + for(int i=0; i<tmpApps.length(); i++){ + qDebug() << " - Stopping tray app:" << obj->XCB->WindowClass(tmpApps[i]); + //Tray apps are special and closing the window does not close the app + obj->XCB->KillClient(tmpApps[i]); + } + //Now close down the tray backend + obj->XCB->closeSystemTray(SystemTrayID); + SystemTrayID = 0; + TrayDmgID = 0; +} + +//========= +// PRIVATE +//========= bool XCBEventFilter::BlockInputEvent(WId win){ //Checks the current state of the WM and sets the stop flag as needed // - Always let the screensaver know about the event first (need to reset timers and such) obj->emit NewInputEvent(); // - Check the state of the screensaver - if(obj->SSLocked){ qDebug() << "SS Locked"; return true; } + if(SS->isLocked()){ qDebug() << "SS Locked"; return true; } // - Check the state of any fullscreen apps - else if( win!=0 && !obj->FS_WINS.isEmpty()){ + /*else if( win!=0 && !obj->FS_WINS.isEmpty()){ if(!obj->FS_WINS.contains(win) ){ //If this event is for an app underneath a fullscreen window - stop it if(obj->FS_WINS.length() == QApplication::desktop()->screenCount()){ qDebug() << "Screens Covered"; return true; } //all screens covered right now } + }*/ + return false; +} + +//System Tray functions +void XCBEventFilter::addTrayApp(WId win){ + if(SystemTrayID==0){ return; } + if(RunningTrayApps.contains(win)){ return; } //already managed + qDebug() << "Session Tray: Window Added" << obj->XCB->windowClass(win); + RunningTrayApps << win; + if(DEBUG){ qDebug() << "Tray List Changed"; } + obj->emit Tray_AppAdded(win); +} + +bool XCBEventFilter::rmTrayApp(WId win){ + //returns "true" if the tray app was found and removed + if(SystemTrayID==0){ return false; } + for(int i=0; i<RunningTrayApps.length(); i++){ + if(win==RunningTrayApps[i]){ + qDebug() << "Session Tray: Window Removed"; + RunningTrayApps.removeAt(i); + obj->emit Tray_AppClosed(win); + return true; + } } return false; } + +void XCBEventFilter::checkDamageID(WId id){ + if(runningTrayApps.contains(id)){ + obj->emit Tray_AppUpdated(id); + }else{ + //Could check for window damage ID's - but we should not need this + } +} diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/LXcbEventFilter.h b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.h index b68eedf5..6726ef8b 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/LXcbEventFilter.h +++ b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.h @@ -1,10 +1,10 @@ //=========================================== // Lumina-DE source code -// Copyright (c) 2012, Ken Moore +// Copyright (c) 2012-2017, Ken Moore // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== -// This class provides the XCB ->Xlib conversion necessary for Qt5 usage +// This class provides the XCB event handling/registrations that are needed //=========================================== #ifndef _LUMINA_DESKTOP_XCB_FILTER_H #define _LUMINA_DESKTOP_XCB_FILTER_H @@ -41,12 +41,7 @@ XCB_COLORMAP_NOTIFY XCB_CLIENT_MESSAGE */ -//SYSTEM TRAY STANDARD DEFINITIONS -//#define SYSTEM_TRAY_REQUEST_DOCK 0 -//#define SYSTEM_TRAY_BEGIN_MESSAGE 1 -//#define SYSTEM_TRAY_CANCEL_MESSAGE 2 - - + class EventFilter : public QObject{ Q_OBJECT private: @@ -58,21 +53,26 @@ public: ~EventFilter(){} void start(); - - //Public variables for the event filter to use/check - QList<WId> FS_WINS; //Full-screen windows (1 per monitor) - used for hiding non-app events as needed - bool SSLocked; - + void stop(); + + //Public System Tray Functions + QList<WId> currentTrayApps(); + + //Variables/Functions needed by the XCBEventFilter class only (not really needed by anything else) + LXCB *XCB; //used to interact with the X11 graphics subsystem + public slots: - void StartedSS(){ SSLocked = true; } - void StoppedSS(){ SSLocked = false; } - void FullScreenChanged(QList<WId> fslist){ FS_WINS = fslist; } signals: void NewInputEvent(); void NewManagedWindow(WId); void WindowClosed(WId); void ModifyWindow(WId win, LWM::WindowAction); + + //System Tray Signals + void Tray_AppAdded(WId); //new tray app registered + void Tray_AppClosed(WId); //tray app de-registered + void Tray_AppUpdated(WId); //tray app appearance changed (damage event) }; class XCBEventFilter : public QAbstractNativeEventFilter{ @@ -82,34 +82,27 @@ public: virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *); + //System Tray Functions + QList<WId> trayApps(); //return the list of all current tray apps + bool startSystemTray(); + bool stopSystemTray(); + private: EventFilter *obj; QList<xcb_atom_t> WinNotifyAtoms, SysNotifyAtoms; + void InitAtoms(); + + bool BlockInputEvent(WId win = 0); //Checks the current state of the system to see if the event should be stopped + + //System Tray Variables + WId SystemTrayID; + int TrayDmgID; + QList<WId> RunningTrayApps; + //System Tray functions + void addTrayApp(WId); + bool rmTrayApp(WId); //returns "true" if the tray app was found and removed + void checkDamageID(WId); - void InitAtoms(){ - //Initialize any special atoms that we need to save/use regularly - //NOTE: All the EWMH atoms are already saved globally in LWM::SYSTEM->EWMH - WinNotifyAtoms.clear(); - WinNotifyAtoms << LWM::SYSTEM->EWMH._NET_WM_NAME \ - << LWM::SYSTEM->EWMH._NET_WM_VISIBLE_NAME \ - << LWM::SYSTEM->EWMH._NET_WM_ICON_NAME \ - << LWM::SYSTEM->EWMH._NET_WM_VISIBLE_ICON_NAME \ - << LWM::SYSTEM->EWMH._NET_WM_ICON \ - << LWM::SYSTEM->EWMH._NET_WM_ICON_GEOMETRY; - - SysNotifyAtoms.clear(); - SysNotifyAtoms << LWM::SYSTEM->EWMH._NET_CLIENT_LIST \ - << LWM::SYSTEM->EWMH._NET_CLIENT_LIST_STACKING \ - << LWM::SYSTEM->EWMH._NET_CURRENT_DESKTOP \ - << LWM::SYSTEM->EWMH._NET_WM_STATE \ - << LWM::SYSTEM->EWMH._NET_ACTIVE_WINDOW \ - << LWM::SYSTEM->EWMH._NET_WM_ICON \ - << LWM::SYSTEM->EWMH._NET_WM_ICON_GEOMETRY; - - } - - bool BlockInputEvent(WId win = 0); //Checks the current state of the WM and sets the stop flag as needed - //Longer Event handling functions //bool ParseKeyPressEvent(); //bool ParseKeyReleaseEvent(); diff --git a/src-qt5/core/lumina-desktop-unified/src-events/events.pri b/src-qt5/core/lumina-desktop-unified/src-events/events.pri new file mode 100644 index 00000000..38225d7f --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-events/events.pri @@ -0,0 +1,6 @@ +SOURCES *= $${PWD}/LXCBEventFilter.cpp + +HEADERS *= $${PWD}/LXCBEventFilter.h + +#update the includepath so we can just (#include <LXCBEventFilter.h>) as needed without paths +INCLUDEPATH *= ${PWD} diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/LLockScreen.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.cpp index 4cc6d68b..4cc6d68b 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/LLockScreen.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.cpp diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/LLockScreen.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.h index 040499c1..040499c1 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/LLockScreen.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.h diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/LLockScreen.ui b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.ui index 7f0b45b8..7f0b45b8 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/LLockScreen.ui +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.ui diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/LScreenSaver.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.cpp index 0c92784e..0c92784e 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/LScreenSaver.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.cpp diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/LScreenSaver.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.h index 5119d8b1..5119d8b1 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/LScreenSaver.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.h diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/SSBaseWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp index 83b82ff8..83b82ff8 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/SSBaseWidget.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/SSBaseWidget.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.h index a6574679..a6574679 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/SSBaseWidget.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.h diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/animations/BaseAnimGroup.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.cpp index 1e55dc76..1e55dc76 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/animations/BaseAnimGroup.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.cpp diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/animations/BaseAnimGroup.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.h index dd7269d4..dd7269d4 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/animations/BaseAnimGroup.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.h diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/animations/SampleAnimation.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/SampleAnimation.h index e0f11ba5..e0f11ba5 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/animations/SampleAnimation.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/SampleAnimation.h diff --git a/src-qt5/core/lumina-desktop-unified/src-WM/animations/animations.pri b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/animations.pri index 5473d4e1..adb1ed6c 100644 --- a/src-qt5/core/lumina-desktop-unified/src-WM/animations/animations.pri +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/animations.pri @@ -3,4 +3,4 @@ SOURCES += $$PWD/BaseAnimGroup.cpp HEADERS += $$PWD/BaseAnimGroup.h \ $$PWD/SampleAnimation.h -FORMS +=
\ No newline at end of file +#FORMS += diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/screensaver.pri b/src-qt5/core/lumina-desktop-unified/src-screensaver/screensaver.pri new file mode 100644 index 00000000..f95891c1 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/screensaver.pri @@ -0,0 +1,15 @@ +SOURCES *= $${PWD}/LLockScreen.cpp \ + $${PWD}/LScreenSaver.cpp \ + $${PWD}/SSBaseWidget.cpp + +HEADERS *= $${PWD}/LLockScreen.h \ + $${PWD}/LScreenSaver.h \ + $${PWD}/SSBaseWidget.h + +FORMS *= $${PWD}/LLockScreen.ui + +#update the includepath so we can just (#include <LScreenSaver.h>) as needed without paths +INCLUDEPATH *= ${PWD} + +#Now include all the screensaver animations/options +include(animations/animations.pri) diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ca.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ca.ts index f1811bba..ba9c5848 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ca.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ca.ts @@ -346,42 +346,42 @@ <message> <location filename="../BootSplash.cpp" line="115"/> <source>Success usually comes to those who are too busy to be looking for it.</source> - <translation type="unfinished"></translation> + <translation>L'èxit normalment arriba als que estan massa enfeinats per buscar-lo.</translation> </message> <message> <location filename="../BootSplash.cpp" line="117"/> <source>Well-timed silence hath more eloquence than speech.</source> - <translation type="unfinished"></translation> + <translation>Un silenci al moment oportú té més eloqüència que un discurs.</translation> </message> <message> <location filename="../BootSplash.cpp" line="119"/> <source>I have never let my schooling interfere with my education.</source> - <translation type="unfinished"></translation> + <translation>Mai he deixat que els meus estudis interfereixin en la meva educació.</translation> </message> <message> <location filename="../BootSplash.cpp" line="121"/> <source>The best way to predict the future is to invent it.</source> - <translation type="unfinished"></translation> + <translation>La millor manera de predir el futur és inventar-lo.</translation> </message> <message> <location filename="../BootSplash.cpp" line="123"/> <source>Well done is better than well said.</source> - <translation type="unfinished"></translation> + <translation>Ben fet és millor que ben dit.</translation> </message> <message> <location filename="../BootSplash.cpp" line="125"/> <source>Sometimes it is not enough that we do our best; we must do what is required.</source> - <translation type="unfinished"></translation> + <translation>Algunes vegades no n'hi ha prou amb fer-ho el millor que podem, hem de fer el que cal.</translation> </message> <message> <location filename="../BootSplash.cpp" line="127"/> <source>The truth is more important than the facts.</source> - <translation type="unfinished"></translation> + <translation>La veritat és més important que els fets.</translation> </message> <message> <location filename="../BootSplash.cpp" line="129"/> <source>Better to remain silent and be thought a fool than to speak out and remove all doubt.</source> - <translation type="unfinished"></translation> + <translation>És millor romandre en silenci i ser pres per ximple que parlar i eliminar-ne tots els dubtes.</translation> </message> <message> <location filename="../BootSplash.cpp" line="140"/> @@ -738,7 +738,7 @@ <message> <location filename="../LDesktop.cpp" line="292"/> <source>Lock Session</source> - <translation type="unfinished"></translation> + <translation>Bloqueja la sessió</translation> </message> <message> <location filename="../LDesktop.cpp" line="293"/> @@ -982,57 +982,57 @@ <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.ui" line="14"/> <source>Form</source> - <translation type="unfinished">Formulari</translation> + <translation>Formulari</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="69"/> <source>Clear Playlist</source> - <translation type="unfinished">Neteja la llista de reproducció</translation> + <translation>Neteja la llista de reproducció</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="70"/> <source>Shuffle Playlist</source> - <translation type="unfinished">Ordena aleatòriament la llista de reproducció</translation> + <translation>Llista de reproducció aleatòria</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="72"/> <source>Add Files</source> - <translation type="unfinished">Afegeix fitxers</translation> + <translation>Afegeix fitxers</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="73"/> <source>Add Directory</source> - <translation type="unfinished">Afegeix un directori</translation> + <translation>Afegeix un directori</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="74"/> <source>Add URL</source> - <translation type="unfinished">Afegeix URL</translation> + <translation>Afegeix un URL</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="102"/> <source>Multimedia Files</source> - <translation type="unfinished">Fitxers multimèdia</translation> + <translation>Fitxers multimèdia</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="103"/> <source>Select Multimedia Files</source> - <translation type="unfinished">Seleccioneu fitxers multimèdia</translation> + <translation>Seleccioneu fitxers multimèdia</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="130"/> <source>Select Multimedia Directory</source> - <translation type="unfinished">Selecció del directori multimèdia</translation> + <translation>Seleccioneu un directori multimèdia</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="159"/> <source>Enter a valid URL for a multimedia file or stream:</source> - <translation type="unfinished">Introduïu un URL vàlid per a un fitxer multimèdia o reproducció en línia:</translation> + <translation>Escriviu un URL vàlid per a un fitxer multimèdia o reproducció en línia:</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="161"/> <source>Multimedia URL</source> - <translation type="unfinished">URL multimèdia</translation> + <translation>URL multimèdia</translation> </message> </context> <context> @@ -1264,7 +1264,7 @@ <message> <location filename="../SettingsMenu.cpp" line="33"/> <source>Wallpaper</source> - <translation type="unfinished"></translation> + <translation>Fons de pantalla</translation> </message> <message> <location filename="../SettingsMenu.cpp" line="36"/> @@ -1274,7 +1274,7 @@ <message> <location filename="../SettingsMenu.cpp" line="39"/> <source>All Desktop Settings</source> - <translation type="unfinished"></translation> + <translation>Tots els paràmetres de l'escriptori</translation> </message> <message> <location filename="../SettingsMenu.cpp" line="54"/> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cs.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cs.ts index 3436167d..0d2872b2 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cs.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cs.ts @@ -146,207 +146,207 @@ <message> <location filename="../BootSplash.ui" line="94"/> <source>Starting the Lumina Desktop...</source> - <translation type="unfinished"></translation> + <translation>Spouští se prostředí Lumina...</translation> </message> <message> <location filename="../BootSplash.cpp" line="15"/> <source>Version %1</source> - <translation type="unfinished"></translation> + <translation>Verze %1</translation> </message> <message> <location filename="../BootSplash.cpp" line="39"/> <source>This desktop is powered by coffee, coffee, and more coffee.</source> - <translation type="unfinished"></translation> + <translation>Toto prostředí pohání cukr, káva a další káva.</translation> </message> <message> <location filename="../BootSplash.cpp" line="41"/> <source>Keep up with desktop news!</source> - <translation type="unfinished"></translation> + <translation>Posílejte nám zprávy o prostředí!</translation> </message> <message> <location filename="../BootSplash.cpp" line="43"/> <source>There is a full handbook of information about the desktop available online.</source> - <translation type="unfinished"></translation> + <translation>Na internetu je úplná příručka se spoustou údajů o prostředí.</translation> </message> <message> <location filename="../BootSplash.cpp" line="45"/> <source>Want to change the interface? Everything is customizable in the desktop configuration!</source> - <translation type="unfinished"></translation> + <translation>Chcete změnit rozhraní? Všechno se dá přizpůsobit v nastavení prostředí!</translation> </message> <message> <location filename="../BootSplash.cpp" line="47"/> <source>Lumina can easily reproduce the interface from most other desktop environments.</source> - <translation type="unfinished"></translation> + <translation>Lumina lehce dokáže napodobit vzhled rozhraní většiny jiných prostředí pracovní plochy.</translation> </message> <message> <location filename="../BootSplash.cpp" line="49"/> <source>This desktop is generously sponsored by iXsystems</source> - <translation type="unfinished"></translation> + <translation>Toto prostředí je laskavě podporováno a penězi zaštiťováno podnikem iXsystems</translation> </message> <message> <location filename="../BootSplash.cpp" line="51"/> <source>I have never been hurt by what I have not said</source> - <translation type="unfinished"></translation> + <translation>Nikdy jsem se netrápil tím, co jsem neřekl</translation> </message> <message> <location filename="../BootSplash.cpp" line="53"/> <source>Gotta have more cowbell!</source> - <translation type="unfinished"></translation> + <translation>Musím si pořídit více zvonečků!</translation> </message> <message> <location filename="../BootSplash.cpp" line="55"/> <source>Everything has its beauty but not everyone sees it.</source> - <translation type="unfinished"></translation> + <translation>Vše je dobré, ale ne každý vidí tu krásu.</translation> </message> <message> <location filename="../BootSplash.cpp" line="57"/> <source>Before God we are all equally wise - and equally foolish.</source> - <translation type="unfinished"></translation> + <translation>Před Bohem jsme všichni rozumní stejně - a stejně nerozumní.</translation> </message> <message> <location filename="../BootSplash.cpp" line="59"/> <source>We cannot do everything at once, but we can do something at once.</source> - <translation type="unfinished"></translation> + <translation>Nemůžeme všechno udělat zaráz, něco však můžeme provést najednou.</translation> </message> <message> <location filename="../BootSplash.cpp" line="61"/> <source>One with the law is a majority.</source> - <translation type="unfinished"></translation> + <translation>Zákony vytváří většina.</translation> </message> <message> <location filename="../BootSplash.cpp" line="63"/> - <source>Don't expect to build up the weak by pulling down the strong.</source> - <translation type="unfinished"></translation> + <source>Don't expect to build up the weak by pulling down the strong.</source> + <translation>Neočekávej, že povzbudíš slabé, tím že dolů stáhneš silné.</translation> </message> <message> <location filename="../BootSplash.cpp" line="65"/> - <source>You can't know too much, but you can say too much.</source> - <translation type="unfinished"></translation> + <source>You can't know too much, but you can say too much.</source> + <translation>Nemůžeš vědět příliš mnoho, ale můžeš toho říct přespříliš.</translation> </message> <message> <location filename="../BootSplash.cpp" line="67"/> <source>Duty is not collective; it is personal.</source> - <translation type="unfinished"></translation> + <translation>Povinnost není společná, je osobní.</translation> </message> <message> <location filename="../BootSplash.cpp" line="69"/> <source>Any society that would give up a little liberty to gain a little security will deserve neither and lose both.</source> - <translation type="unfinished"></translation> + <translation>Jakákoli společnost, která se vzdá kousku svobody, aby získala trošku bezpečnosti, si nezaslouží ani jedno a ztratí obojí.</translation> </message> <message> <location filename="../BootSplash.cpp" line="71"/> <source>Never trust a computer you can’t throw out a window.</source> - <translation type="unfinished"></translation> + <translation>Počítačníku, nikdy nevěř počítači, který nemůžeš vyhodit z okna.</translation> </message> <message> <location filename="../BootSplash.cpp" line="73"/> <source>Study the past if you would define the future.</source> - <translation type="unfinished"></translation> + <translation>Uč se z minulosti, jestli chceš určit, jak bude vypadat budoucnost.</translation> </message> <message> <location filename="../BootSplash.cpp" line="75"/> <source>The way to get started is to quit talking and begin doing.</source> - <translation type="unfinished"></translation> + <translation>Cestou, jak začít, je přestat mluvit a začít dělat.</translation> </message> <message> <location filename="../BootSplash.cpp" line="77"/> <source>Ask and it will be given to you; search, and you will find; knock and the door will be opened for you.</source> - <translation type="unfinished"></translation> + <translation>Požádej a bude ti dáno; hledej a nalezneš; klepej a dveře ti budou otevřeny.</translation> </message> <message> <location filename="../BootSplash.cpp" line="79"/> <source>Start where you are. Use what you have. Do what you can.</source> - <translation type="unfinished"></translation> + <translation>Začni tam, kde jsi. Používej to, co máš. Udělej, co můžeš.</translation> </message> <message> <location filename="../BootSplash.cpp" line="81"/> <source>A person who never made a mistake never tried anything new.</source> - <translation type="unfinished"></translation> + <translation>Osoba, která se nikdy nezmýlila, nikdy nezkusila něco nového.</translation> </message> <message> <location filename="../BootSplash.cpp" line="83"/> <source>It does not matter how slowly you go as long as you do not stop.</source> - <translation type="unfinished"></translation> + <translation>Nezáleží na tom, jak pomalu jdeš, dokud nezastavíš.</translation> </message> <message> <location filename="../BootSplash.cpp" line="85"/> <source>Do what you can, where you are, with what you have.</source> - <translation type="unfinished"></translation> + <translation>Dělej, co můžeš, tam kde jsi, s tím, co máš.</translation> </message> <message> <location filename="../BootSplash.cpp" line="87"/> <source>Remember no one can make you feel inferior without your consent.</source> - <translation type="unfinished"></translation> + <translation>Pamatuj si, že nikomu se nepodaří, aby ses cítil být menším, bez tvého souhlasu.</translation> </message> <message> <location filename="../BootSplash.cpp" line="89"/> <source>It’s not the years in your life that count. It’s the life in your years.</source> - <translation type="unfinished"></translation> + <translation>Nejsou to roky tvého života, co se počítá. Je to život v tvých letech.</translation> </message> <message> <location filename="../BootSplash.cpp" line="91"/> <source>Either write something worth reading or do something worth writing.</source> - <translation type="unfinished"></translation> + <translation>Buď napiš něco, co stojí za přečtení, nebo udělej něco, o čem má smysl napsat.</translation> </message> <message> <location filename="../BootSplash.cpp" line="93"/> <source>The only way to do great work is to love what you do.</source> - <translation type="unfinished"></translation> + <translation>Jediným způsobem, jak dělat práci skvěle, je milovat to, co děláš.</translation> </message> <message> <location filename="../BootSplash.cpp" line="95"/> <source>Political correctness is tyranny with manners.</source> - <translation type="unfinished"></translation> + <translation>Politická správnost je útlak, který si našel své způsoby.</translation> </message> <message> <location filename="../BootSplash.cpp" line="97"/> - <source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source> - <translation type="unfinished"></translation> + <source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source> + <translation>Jen dvě věci jsou nekonečné, vesmír a lidská hloupost. A nejsem si jist, jak si mám vykládat to první.</translation> </message> <message> <location filename="../BootSplash.cpp" line="99"/> <source>I find that the harder I work, the more luck I seem to have.</source> - <translation type="unfinished"></translation> + <translation>Zjistil jsem, že čím jsem pilnější, tím více mám štěstí.</translation> </message> <message> <location filename="../BootSplash.cpp" line="101"/> - <source>Do, or do not. There is no 'try'.</source> - <translation type="unfinished"></translation> + <source>Do, or do not. There is no 'try'.</source> + <translation>Udělej to, nebo to nedělej vůbec. Nejde o to to jen zkoušet.</translation> </message> <message> <location filename="../BootSplash.cpp" line="103"/> <source>A mathematician is a device for turning coffee into theorems.</source> - <translation type="unfinished"></translation> + <translation>Matematik je prostředek, kterým se proměňuje káva na poučky.</translation> </message> <message> <location filename="../BootSplash.cpp" line="105"/> <source>Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws.</source> - <translation type="unfinished"></translation> + <translation>Dobří lidé nepotřebují zákony k tomu, aby jim říkaly, aby jednali zodpovědně, zatímco špatní lidé si najdou cestičku okolo zákonů.</translation> </message> <message> <location filename="../BootSplash.cpp" line="107"/> <source>Black holes are where God divided by zero.</source> - <translation type="unfinished"></translation> + <translation>Černé díry jsou prý místem, kde Bůh dělil nulou.</translation> </message> <message> <location filename="../BootSplash.cpp" line="109"/> - <source>It's kind of fun to do the impossible.</source> - <translation type="unfinished"></translation> + <source>It's kind of fun to do the impossible.</source> + <translation>Dělat nemožné je zábava.</translation> </message> <message> <location filename="../BootSplash.cpp" line="111"/> <source>Knowledge speaks, but wisdom listens.</source> - <translation type="unfinished"></translation> + <translation>Vědomost hovoří, ale moudrost poslouchá.</translation> </message> <message> <location filename="../BootSplash.cpp" line="113"/> <source>A witty saying proves nothing.</source> - <translation type="unfinished"></translation> + <translation>Vtipné pořekadlo ještě nic nedokazuje.</translation> </message> <message> <location filename="../BootSplash.cpp" line="115"/> <source>Success usually comes to those who are too busy to be looking for it.</source> - <translation type="unfinished"></translation> + <translation>Úspěch obyčejně přijde k těm, kdož jsou příliš zaneprázdněni na to, aby jej hledali.</translation> </message> <message> <location filename="../BootSplash.cpp" line="117"/> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts index 0c1e41d6..8ce06739 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts @@ -146,87 +146,87 @@ <message> <location filename="../BootSplash.ui" line="94"/> <source>Starting the Lumina Desktop...</source> - <translation type="unfinished"></translation> + <translation>Uruchamianie pulpitu Lumina...</translation> </message> <message> <location filename="../BootSplash.cpp" line="15"/> <source>Version %1</source> - <translation type="unfinished"></translation> + <translation>Wersja %1</translation> </message> <message> <location filename="../BootSplash.cpp" line="39"/> <source>This desktop is powered by coffee, coffee, and more coffee.</source> - <translation type="unfinished"></translation> + <translation>Ten pulpit zasilany jest przez kawę , kawę, i jeszcze raz kawę.</translation> </message> <message> <location filename="../BootSplash.cpp" line="41"/> <source>Keep up with desktop news!</source> - <translation type="unfinished"></translation> + <translation>Bądź na bieżącą z wiadomościami!</translation> </message> <message> <location filename="../BootSplash.cpp" line="43"/> <source>There is a full handbook of information about the desktop available online.</source> - <translation type="unfinished"></translation> + <translation>Podręcznik użytkownika pulpitu jest dostępny online.</translation> </message> <message> <location filename="../BootSplash.cpp" line="45"/> <source>Want to change the interface? Everything is customizable in the desktop configuration!</source> - <translation type="unfinished"></translation> + <translation>Chcesz zmienić interfejs? Wszystkie konfigurowalne elementy znajdują się w konfiguracji pulpitu!</translation> </message> <message> <location filename="../BootSplash.cpp" line="47"/> <source>Lumina can easily reproduce the interface from most other desktop environments.</source> - <translation type="unfinished"></translation> + <translation>Lumina potrafi w łatwy sposób odtworzyć interfejsy innych środowisk graficznych.</translation> </message> <message> <location filename="../BootSplash.cpp" line="49"/> <source>This desktop is generously sponsored by iXsystems</source> - <translation type="unfinished"></translation> + <translation>Ten pulpit jest szczodrze sponsorowany przez iXsystems</translation> </message> <message> <location filename="../BootSplash.cpp" line="51"/> <source>I have never been hurt by what I have not said</source> - <translation type="unfinished"></translation> + <translation>Nigdy nie zostałem zraniony przez to, czego nie wypowiedziałem</translation> </message> <message> <location filename="../BootSplash.cpp" line="53"/> <source>Gotta have more cowbell!</source> - <translation type="unfinished"></translation> + <translation>Gotta have more cowbell!</translation> </message> <message> <location filename="../BootSplash.cpp" line="55"/> <source>Everything has its beauty but not everyone sees it.</source> - <translation type="unfinished"></translation> + <translation>Wszystko ma swoje piękno, ale nie każdy jest w stanie to piękno dostrzec.</translation> </message> <message> <location filename="../BootSplash.cpp" line="57"/> <source>Before God we are all equally wise - and equally foolish.</source> - <translation type="unfinished"></translation> + <translation>Przed Bogiem wszyscy jesteśmy równie mądrzy, co równie głupi.</translation> </message> <message> <location filename="../BootSplash.cpp" line="59"/> <source>We cannot do everything at once, but we can do something at once.</source> - <translation type="unfinished"></translation> + <translation>Nie możemy robić wszystkiego naraz, ale możemy robić coś na raz.</translation> </message> <message> <location filename="../BootSplash.cpp" line="61"/> <source>One with the law is a majority.</source> - <translation type="unfinished"></translation> + <translation>Ten po którego stronie stoi prawo, ten jest większością.</translation> </message> <message> <location filename="../BootSplash.cpp" line="63"/> - <source>Don't expect to build up the weak by pulling down the strong.</source> - <translation type="unfinished"></translation> + <source>Don't expect to build up the weak by pulling down the strong.</source> + <translation>Nie oczekuje wzmacniania słabych osłabianiem silnych.</translation> </message> <message> <location filename="../BootSplash.cpp" line="65"/> - <source>You can't know too much, but you can say too much.</source> - <translation type="unfinished"></translation> + <source>You can't know too much, but you can say too much.</source> + <translation>Nie możesz wiedzieć za dużo, ale możesz powiedzieć za dużo.</translation> </message> <message> <location filename="../BootSplash.cpp" line="67"/> <source>Duty is not collective; it is personal.</source> - <translation type="unfinished"></translation> + <translation>Obowiązek to nie kolektyw, to sprawa osobista.</translation> </message> <message> <location filename="../BootSplash.cpp" line="69"/> @@ -300,7 +300,7 @@ </message> <message> <location filename="../BootSplash.cpp" line="97"/> - <source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source> + <source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source> <translation type="unfinished"></translation> </message> <message> @@ -310,7 +310,7 @@ </message> <message> <location filename="../BootSplash.cpp" line="101"/> - <source>Do, or do not. There is no 'try'.</source> + <source>Do, or do not. There is no 'try'.</source> <translation type="unfinished"></translation> </message> <message> @@ -330,7 +330,7 @@ </message> <message> <location filename="../BootSplash.cpp" line="109"/> - <source>It's kind of fun to do the impossible.</source> + <source>It's kind of fun to do the impossible.</source> <translation type="unfinished"></translation> </message> <message> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_cs.ts b/src-qt5/core/lumina-open/i18n/lumina-open_cs.ts index 3240a733..99816ed5 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_cs.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_cs.ts @@ -161,7 +161,7 @@ <message> <location filename="../main.cpp" line="264"/> <source>Application entry is invalid: %1</source> - <translation type="unfinished"></translation> + <translation>Záznam programu je neplatný: %1</translation> </message> <message> <location filename="../main.cpp" line="273"/> @@ -190,8 +190,8 @@ </message> <message> <location filename="../main.cpp" line="363"/> - <source>Could not find "%1". Please ensure it is installed first.</source> - <translation>Nepodařilo se najít "%1". Nejprve, prosím, zajistěte, aby byl nainstalován.</translation> + <source>Could not find "%1". Please ensure it is installed first.</source> + <translation>Nepodařilo se najít "%1". Nejprve, prosím, zajistěte, aby byl nainstalován.</translation> </message> <message> <location filename="../main.cpp" line="413"/> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_pl.ts b/src-qt5/core/lumina-open/i18n/lumina-open_pl.ts index ffa08d9c..ab23731d 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_pl.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_pl.ts @@ -161,7 +161,7 @@ <message> <location filename="../main.cpp" line="264"/> <source>Application entry is invalid: %1</source> - <translation type="unfinished"></translation> + <translation>Ścieżka aplikacji jest błędna: %1</translation> </message> <message> <location filename="../main.cpp" line="273"/> @@ -186,12 +186,12 @@ <message> <location filename="../main.cpp" line="363"/> <source>Binary Missing</source> - <translation type="unfinished"></translation> + <translation>Brak pliku binarnego</translation> </message> <message> <location filename="../main.cpp" line="363"/> - <source>Could not find "%1". Please ensure it is installed first.</source> - <translation>Nie można znaleźć "%1". Upewnij się, że jest zainstalowany.</translation> + <source>Could not find "%1". Please ensure it is installed first.</source> + <translation>Nie można znaleźć "%1". Upewnij się, że jest zainstalowany.</translation> </message> <message> <location filename="../main.cpp" line="413"/> |