diff options
Diffstat (limited to 'src-qt5/core')
499 files changed, 23448 insertions, 24402 deletions
diff --git a/src-qt5/core/README.md b/src-qt5/core/README.md index 6a17d900..83d8b0b5 100644 --- a/src-qt5/core/README.md +++ b/src-qt5/core/README.md @@ -17,7 +17,7 @@ Other Files that get installed if "core" is built directly: ### Library Dependencies -1. Qt 5.2+ (specific modules listed below) +1. Qt 5.4+ (specific modules listed below) * concurrent * core * gui @@ -27,6 +27,7 @@ Other Files that get installed if "core" is built directly: * svg * widgets * x11extras + * NOTE: Qt5 platform theme and developer libraries are also required to build the Lumina theme engine plugin ("qtbase5-*" on Ubuntu 17.10) 2. X11 Libraries * libXdamage 3. XCB Libraries diff --git a/src-qt5/core/core.pro b/src-qt5/core/core.pro index 0f635960..1ae58167 100644 --- a/src-qt5/core/core.pro +++ b/src-qt5/core/core.pro @@ -17,9 +17,9 @@ SUBDIRS+= lumina-desktop \ scripts.path = $${L_SHAREDIR}/lumina-desktop/menu-scripts scripts.files = menu-scripts/* -#Color themes -colors.path=$${L_SHAREDIR}/lumina-desktop/colors -colors.files=colors/*.qss.colors +#Color themes (pre-theme-engine files - not used any more) +#colors.path=$${L_SHAREDIR}/lumina-desktop/colors +#colors.files=colors/*.qss.colors #Theme templates themes.path=$${L_SHAREDIR}/lumina-desktop/themes/ @@ -33,4 +33,4 @@ themes.files=themes/*.qss.template globs.path=$${L_SHAREDIR}/lumina-desktop globs.files=xtrafiles/globs2 -INSTALLS+=scripts colors themes globs +INSTALLS+=scripts themes globs diff --git a/src-qt5/core/libLumina/DesktopSettings.cpp b/src-qt5/core/libLumina/DesktopSettings.cpp index 8bda1ac5..f1c74bc5 100644 --- a/src-qt5/core/libLumina/DesktopSettings.cpp +++ b/src-qt5/core/libLumina/DesktopSettings.cpp @@ -56,11 +56,19 @@ void DesktopSettings::stop(){ } //Main Read/Write functions +QList< DesktopSettings::File > DesktopSettings::writableFiles(){ + QList< DesktopSettings::File > tmp; + if(runmode!=DesktopSettings::SystemFull){ tmp = filesForRunMode(runmode); } + return tmp; +} + QVariant DesktopSettings::value(DesktopSettings::File file, QString variable, QVariant defaultvalue){ if(!files.contains(file)){ return defaultvalue; } for(int i=0; i<files[file].length(); i++){ + //qDebug() << "Look for Settings value:" << variable << files[file]; if( settings.contains(files[file][i])){ //make sure this file is in the settings hash if(settings[files[file][i]]->contains(variable)){ //if this file does not have the variable - go to the next one + //qDebug() << " - Found Setting in File:" << files[file][i]; return settings[files[file][i]]->value(variable, defaultvalue); } } @@ -118,7 +126,7 @@ void DesktopSettings::parseSystemSettings(){ QString defMode = settings[path]->value("default_mode","fulluser").toString().toLower(); if(defMode=="fullsystem"){ runmode= DesktopSettings::SystemFull; } else if(defMode=="staticinterface"){ runmode = DesktopSettings::SystemInterface; } - + else{ runmode = DesktopSettings::UserFull; } //Now determine the runmode for this user struct passwd *pw = getpwuid(getuid()); if(pw!=0){ @@ -178,25 +186,29 @@ void DesktopSettings::locateFiles(){ systemdirs << QString(getenv("XDG_CONFIG_DIRS")).split(":") << QString(getenv("XDG_DATA_DIRS")).split(":"); //Load all the user-level files for this run mode QList< DesktopSettings::File > tmp; - if(runmode == DesktopSettings::UserFull){ tmp << DesktopSettings::Favorites << DesktopSettings::Environment << DesktopSettings::Session << DesktopSettings::Desktop << DesktopSettings::Keys << DesktopSettings::Theme; } - else if(runmode == DesktopSettings::SystemInterface){ tmp << DesktopSettings::Favorites << DesktopSettings::Environment << DesktopSettings::Session << DesktopSettings::Desktop << DesktopSettings::Keys << DesktopSettings::Theme; } - for(int i=0; i<tmp.length(); i++){ - QString path = userdir+rel_path(tmp[i]); - touchFile(path); - files.insert(tmp[i], QStringList() << path); - settings.insert(path, new QSettings(path, QSettings::IniFormat, this) ); - watcher->addPath(path); + if(runmode!=DesktopSettings::SystemFull){ + //Load the user-level files + tmp= filesForRunMode(runmode); + for(int i=0; i<tmp.length(); i++){ + QString path = userdir+rel_path(tmp[i]); + touchFile(path); + files.insert(tmp[i], QStringList() << path); + settings.insert(path, new QSettings(path, QSettings::IniFormat, this) ); + watcher->addPath(path); + } } //Now load all the system-level files - tmp.clear(); - tmp << DesktopSettings::Favorites << DesktopSettings::Environment << DesktopSettings::Session << DesktopSettings::Desktop << DesktopSettings::Keys << DesktopSettings::Theme; + tmp = filesForRunMode(DesktopSettings::SystemFull); for(int i=0; i<systemdirs.length(); i++){ if(systemdirs[i].endsWith("/xdg")){ systemdirs[i] = systemdirs[i].section("/",0,-2); } if( !QFile::exists(systemdirs[i]+"/lumina-desktop") ){ continue; } for(int j=0; j<tmp.length(); j++){ QString path = systemdirs[i]+rel_path(tmp[j]); if(QFile::exists(path)){ - files.insert(tmp[j], QStringList() << path); + QStringList filepaths; + if(files.contains(tmp[j])){ filepaths = files[tmp[j]]; } + filepaths << path; //add this file to the end of the list for this type of settings file + files.insert(tmp[j], filepaths); settings.insert(path, new QSettings(path, QSettings::IniFormat, this) ); watcher->addPath(path); } @@ -219,6 +231,17 @@ void DesktopSettings::touchFile(QString path){ } } +QList< DesktopSettings::File > DesktopSettings::filesForRunMode(RunMode mode){ + // Note that the "System" file is always ignored here - that is specially loaded + QList< DesktopSettings::File > tmp; + if(mode == DesktopSettings::UserFull || mode == DesktopSettings::SystemFull){ + tmp << DesktopSettings::Favorites << DesktopSettings::Environment << DesktopSettings::Session << DesktopSettings::Desktop << DesktopSettings::Panels << DesktopSettings::Plugins << DesktopSettings::Keys << DesktopSettings::ContextMenu << DesktopSettings::Animation << DesktopSettings::ScreenSaver << DesktopSettings::WM; + }else if(runmode == DesktopSettings::SystemInterface){ + tmp << DesktopSettings::Favorites << DesktopSettings::Environment << DesktopSettings::Session; + } + return tmp; +} + QString DesktopSettings::rel_path(DesktopSettings::File file){ QString name; switch(file){ @@ -236,10 +259,16 @@ QString DesktopSettings::rel_path(DesktopSettings::File file){ name="contextmenu"; break; case DesktopSettings::Keys: name="keys"; break; - case DesktopSettings::Theme: - name="theme"; break; case DesktopSettings::Animation: name="animations"; break; + case DesktopSettings::Panels: + name="panels"; break; + case DesktopSettings::Plugins: + name="plugins"; break; + case DesktopSettings::ScreenSaver: + name="screensaver"; break; + case DesktopSettings::WM: + name="windows"; break; } return FILEPREFIX+name+".conf"; } diff --git a/src-qt5/core/libLumina/DesktopSettings.h b/src-qt5/core/libLumina/DesktopSettings.h index dcb10bb6..efb3776e 100644 --- a/src-qt5/core/libLumina/DesktopSettings.h +++ b/src-qt5/core/libLumina/DesktopSettings.h @@ -25,7 +25,8 @@ class DesktopSettings : public QObject{ Q_OBJECT public: - enum File{ System, Favorites, Environment, Session, Desktop, ContextMenu, Keys, Theme, Animation }; + enum File{ System, Favorites, Environment, Session, Desktop, Panels, Plugins, ContextMenu, Keys, Animation, ScreenSaver, WM}; + //Changes to this enum need to be added to the "filesForRunMode()" and "rel_path()" functions as well DesktopSettings(QObject *parent = 0); ~DesktopSettings(); @@ -37,6 +38,7 @@ public: void stop(); //Main Read/Write functions + QList< DesktopSettings::File > writableFiles(); //return the list of all writable files QVariant value(DesktopSettings::File, QString variable, QVariant defaultvalue); bool setValue(DesktopSettings::File, QString variable, QVariant value); QStringList keys(DesktopSettings::File); //return a list of all variables which are available in this file @@ -51,9 +53,13 @@ private: QHash< DesktopSettings::File, QStringList > files; //location hash for where files are actually located on disk QHash< QString, QSettings*> settings; //location hash for the settings files themselves + //Functions void parseSystemSettings(); //run at start - determine the RunMode for this user/session void locateFiles(); //run at start - finds the locations of the various files (based on RunMode) void touchFile(QString path); //used to create an empty file so it can be watched for changes later + + //The two functions which define the public "File" enumeration (both need updates when the enum changes) + QList< DesktopSettings::File > filesForRunMode(RunMode mode); QString rel_path(DesktopSettings::File); //return the relative file path (starting with "/") private slots: diff --git a/src-qt5/core/libLumina/ExternalProcess.h b/src-qt5/core/libLumina/ExternalProcess.h index b1e56af8..e75d6108 100644 --- a/src-qt5/core/libLumina/ExternalProcess.h +++ b/src-qt5/core/libLumina/ExternalProcess.h @@ -15,26 +15,31 @@ #include <QString> #include <QTimer> #include <QApplication> +#include <QDebug> class ExternalProcess : public QProcess{ Q_OBJECT private: bool cursorRestored; + QString logoutput; private slots: void resetCursor(){ + //qDebug() << "External Process: Reset Mouse Cursor =" << !cursorRestored; if(!cursorRestored){ QApplication::restoreOverrideCursor(); cursorRestored = true; } } void processStarting(){ + //qDebug() << "Starting External Process: Mouse Notification =" << !cursorRestored; if(!cursorRestored){ - QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) ); - QTimer::singleShot(15000, this, SLOT(resetCursor()) ); + QApplication::setOverrideCursor( QCursor(Qt::BusyCursor) ); + QTimer::singleShot(3000, this, SLOT(resetCursor()) ); } } void processFinished(){ + //qDebug() << "External Process Finished: Reset Mouse Cursor =" << !cursorRestored; if(!cursorRestored){ QApplication::restoreOverrideCursor(); cursorRestored = true; @@ -42,6 +47,9 @@ private slots: //Clean up this object this->deleteLater(); } + void updateLog(){ + logoutput.append( QString(this->readAllStandardOutput()) ); + } public: ExternalProcess(QString logfile = "", bool manageCursors = false) : QProcess(){ @@ -49,10 +57,13 @@ public: cursorRestored = !manageCursors; if(logfile.isEmpty()){ this->setStandardOutputFile(QProcess::nullDevice()); + }else if(logfile=="stdout"){ + connect(this, SIGNAL(readyReadStandardOutput()), this, SLOT(updateLog()) ); }else{ this->setStandardOutputFile(logfile); } //Setup the connection for automatic cleanup + connect(this, SIGNAL(started()), this, SLOT(processStarting()) ); connect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished()) ); } @@ -62,7 +73,12 @@ public: }*/ } - static void launch(QString program, QStringList args = QStringList(), bool manageCursors = false){ + QString log(){ + //NOTE: This will only contain output if the "stdout" argument is used as the logfile + return logoutput; + } + + static void launch(QString program, QStringList args = QStringList(), bool manageCursors = true){ //Quick launch of a process with logging disabled and automatic cleanup ExternalProcess *tmp = new ExternalProcess("", manageCursors); if(args.isEmpty()){ tmp->start(program); } diff --git a/src-qt5/core/libLumina/LDesktopUtils.cpp b/src-qt5/core/libLumina/LDesktopUtils.cpp index b79f777d..5595532a 100644 --- a/src-qt5/core/libLumina/LDesktopUtils.cpp +++ b/src-qt5/core/libLumina/LDesktopUtils.cpp @@ -13,10 +13,8 @@ #include "LuminaThemes.h" -static QStringList fav; - QString LDesktopUtils::LuminaDesktopVersion(){ - QString ver = "1.3.2"; + QString ver = "1.4.1"; #ifdef GIT_VERSION ver.append( QString(" (Git Revision: %1)").arg(GIT_VERSION) ); #endif @@ -80,22 +78,23 @@ QStringList LDesktopUtils::infoQuickPlugin(QString ID){ //Returns: [Name, Descri } QStringList LDesktopUtils::listFavorites(){ - static QDateTime lastRead; - QDateTime cur = QDateTime::currentDateTime(); - if(lastRead.isNull() || lastRead<QFileInfo( QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/favorites.list").lastModified()){ + //static QDateTime lastRead; + QStringList fav; + //QDateTime cur = QDateTime::currentDateTime(); + //if(lastRead.isNull() || fav.isEmpty() || lastRead<QFileInfo( QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/favorites.list").lastModified()){ fav = LUtils::readFile(QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/favorites.list"); fav.removeAll(""); //remove any empty lines fav.removeDuplicates(); - lastRead = cur; - } - + //lastRead = cur; + //} return fav; } bool LDesktopUtils::saveFavorites(QStringList list){ list.removeDuplicates(); + //qDebug() << "Save Favorites:" << list; bool ok = LUtils::writeFile(QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/favorites.list", list, true); - if(ok){ fav = list; } //also save internally in case of rapid write/read of the file + //if(ok){ fav = list; } //also save internally in case of rapid write/read of the file return ok; } @@ -116,11 +115,13 @@ bool LDesktopUtils::addFavorite(QString path, QString name){ else{ type = LXDG::findAppMimeForFile(path); } //Assign a name if none given if(name.isEmpty()){ name = info.fileName(); } + //qDebug() << "Add Favorite:" << path << type << name; //Now add it to the list QStringList favs = LDesktopUtils::listFavorites(); + //qDebug() << "Current Favorites:" << favs; bool found = false; for(int i=0; i<favs.length(); i++){ - if(favs[i].endsWith("::::"+path)){ favs[i] = name+"::::"+type+"::::"+path; } + if(favs[i].endsWith("::::"+path)){ favs[i] = name+"::::"+type+"::::"+path; found = true; } } if(!found){ favs << name+"::::"+type+"::::"+path; } return LDesktopUtils::saveFavorites(favs); @@ -143,6 +144,15 @@ void LDesktopUtils::upgradeFavorites(int){ //fromoldversionnumber void LDesktopUtils::LoadSystemDefaults(bool skipOS){ //Will create the Lumina configuration files based on the current system template (if any) qDebug() << "Loading System Defaults"; + //Ensure that the settings directory exists + QString setdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop"; + if(!QFile::exists(setdir)){ + QDir dir; + dir.mkpath(setdir); + } + + bool skipmime = QFile::exists( QString(getenv("XDG_CONFIG_HOME"))+"/lumina-mimapps.list" ); + //qDebug() << " - Skipping mimetype default apps" << skipmime; QStringList sysDefaults; if(!skipOS){ sysDefaults = LUtils::readFile(LOS::AppPrefix()+"etc/luminaDesktop.conf"); } if(sysDefaults.isEmpty() && !skipOS){ sysDefaults = LUtils::readFile(LOS::AppPrefix()+"etc/luminaDesktop.conf.dist"); } @@ -153,8 +163,8 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ if(sysDefaults.isEmpty()){ sysDefaults = LUtils::readFile(LOS::LuminaShare()+"luminaDesktop.conf"); } //Find the number of the left-most desktop screen QString screen = "0"; - QDesktopWidget *desk =QApplication::desktop(); QRect screenGeom; + QDesktopWidget *desk =QApplication::desktop(); for(int i=0; i<desk->screenCount(); i++){ if(desk->screenGeometry(i).x()==0){ screen = QString::number(i); @@ -185,6 +195,8 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ if(var.endsWith("_ifexists") ){ var = var.remove("_ifexists"); //remove this flag from the variable //Check if the value exists (absolute path only) + val = LUtils::AppToAbsolute(val); + //qDebug() << "Checking if favorite app exists:" << val; if(!QFile::exists(val)){ continue; } //skip this line - value/file does not exist } @@ -193,18 +205,18 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ if(var=="session_enablenumlock"){ sset = "EnableNumlock="+ istrue; } else if(var=="session_playloginaudio"){ sset = "PlayStartupAudio="+istrue; } else if(var=="session_playlogoutaudio"){ sset = "PlayLogoutAudio="+istrue; } - else if(var=="session_default_terminal"){ + else if(var=="session_default_terminal" && !skipmime){ LXDG::setDefaultAppForMime("application/terminal", val); //sset = "default-terminal="+val; - }else if(var=="session_default_filemanager"){ + }else if(var=="session_default_filemanager" && !skipmime){ LXDG::setDefaultAppForMime("inode/directory", val); //sset = "default-filemanager="+val; //loset = "directory="+val; - }else if(var=="session_default_webbrowser"){ + }else if(var=="session_default_webbrowser" && !skipmime){ //loset = "webbrowser="+val; LXDG::setDefaultAppForMime("x-scheme-handler/http", val); LXDG::setDefaultAppForMime("x-scheme-handler/https", val); - }else if(var=="session_default_email"){ + }else if(var=="session_default_email" && !skipmime){ LXDG::setDefaultAppForMime("application/email",val); //loset = "email="+val; } @@ -225,24 +237,27 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ // -- MIMETYPE DEFAULTS -- tmp = sysDefaults.filter("mime_default_"); - for(int i=0; i<tmp.length(); i++){ + for(int i=0; i<tmp.length() && !skipmime; i++){ if(tmp[i].startsWith("#") || !tmp[i].contains("=") ){ continue; } QString var = tmp[i].section("=",0,0).toLower().simplified(); QString val = tmp[i].section("=",1,1).section("#",0,0).simplified(); + qDebug() << "Mime entry:" << var << val; if(val.isEmpty()){ continue; } QString istrue = (val.toLower()=="true") ? "true": "false"; //Change in 0.8.5 - use "_" instead of "." within variables names - need backwards compat for a little while if(var.contains(".")){ var.replace(".","_"); } //Now parse the variable and put the value in the proper file - val = LUtils::AppToAbsolute(val); //Special handling for values which need to exist first if(var.endsWith("_ifexists") ){ var = var.remove("_ifexists"); //remove this flag from the variable + val = LUtils::AppToAbsolute(val); + //qDebug() << "Checking if Mime app exists:" << val; //Check if the value exists (absolute path only) if(!QFile::exists(val)){ continue; } //skip this line - value/file does not exist } //Now turn this variable into the mimetype only var = var.section("_default_",1,-1); + //qDebug() << " - Set Default Mime:" << var << val; LXDG::setDefaultAppForMime(var, val); } @@ -324,6 +339,7 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ tmp = sysDefaults.filter("favorites_"); if(tmp.isEmpty()){ tmp = sysDefaults.filter("favorites."); } for(int i=0; i<tmp.length(); i++){ + //qDebug() << "Found Favorite Entry:" << tmp[i]; if(tmp[i].startsWith("#") || !tmp[i].contains("=") ){ continue; } QString var = tmp[i].section("=",0,0).toLower().simplified(); QString val = tmp[i].section("=",1,1).section("#",0,0).simplified(); @@ -332,11 +348,21 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ //Now parse the variable and put the value in the proper file qDebug() << "Favorite entry:" << var << val; val = LUtils::AppToAbsolute(val); //turn any relative files into absolute - if(var=="favorites_add_ifexists" && QFile::exists(val)){ qDebug() << " - Exists/Adding:"; LDesktopUtils::addFavorite(val); } + if(var=="favorites_add_ifexists" && QFile::exists(val)){ qDebug() << " - Exists/Adding:" << val; LDesktopUtils::addFavorite(val); } else if(var=="favorites_add"){ qDebug() << " - Adding:"; LDesktopUtils::addFavorite(val); } else if(var=="favorites_remove"){ qDebug() << " - Removing:"; LDesktopUtils::removeFavorite(val); } } + tmp = sysDefaults.filter("desktoplinks_"); + QString desktopFolder = QDir::homePath()+"/Desktop/"; //need to make this translatable and dynamic later + for(int i=0; i<tmp.length(); i++){ + if(tmp[i].startsWith("#") || !tmp[i].contains("=") ){ continue; } + QString var = tmp[i].section("=",0,0).toLower().simplified(); + QString val = tmp[i].section("=",1,1).section("#",0,0).simplified(); + val = LUtils::AppToAbsolute(val); //turn any relative files into absolute + if(var=="desktoplinks_add" && QFile::exists(val) && !QFile::exists(desktopFolder+val.section("/",-1)) ){ QFile::link(val, desktopFolder+val.section("/",-1)); } + } + // -- QUICKLAUNCH -- tmp = sysDefaults.filter("quicklaunch_"); if(tmp.isEmpty()){ tmp = sysDefaults.filter("quicklaunch."); } @@ -373,6 +399,7 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ if(var.contains(".")){ var.replace(".","_"); } //Now parse the variable and put the value in the proper file if(var=="theme_themefile"){ themesettings[0] = val; } + else if(var=="theme_styles"){ LTHEME::setCurrentStyles( val.split(",",QString::SkipEmptyParts) ); } else if(var=="theme_colorfile"){ themesettings[1] = val; } else if(var=="theme_iconset"){ themesettings[2] = val; } else if(var=="theme_font"){ themesettings[3] = val; } @@ -389,7 +416,7 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ QStringList syscolors = LTHEME::availableSystemColors(); //theme file //qDebug() << "Detected Themes/colors:" << systhemes << syscolors; - if( !themesettings[0].startsWith("/") || !QFile::exists(themesettings[0]) || !themesettings[0].endsWith(".qss.template")){ + if( !themesettings[0].startsWith("/") || !QFile::exists(themesettings[0]) || !themesettings[0].endsWith(".qss")){ themesettings[0] = themesettings[0].section(".qss",0,0).simplified(); for(int i=0; i<systhemes.length(); i++){ if(systhemes[i].startsWith(themesettings[0]+"::::",Qt::CaseInsensitive)){ @@ -399,9 +426,9 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ } } //color file - if( !themesettings[1].startsWith("/") || !QFile::exists(themesettings[1]) || !themesettings[1].endsWith(".qss.colors") ){ + if( !themesettings[1].startsWith("/") || !QFile::exists(themesettings[1]) || !themesettings[1].endsWith(".conf") ){ //Remove any extra/invalid extension - themesettings[1] = themesettings[1].section(".qss",0,0).simplified(); + themesettings[1] = themesettings[1].section(".conf",0,0).simplified(); for(int i=0; i<syscolors.length(); i++){ if(syscolors[i].startsWith(themesettings[1]+"::::",Qt::CaseInsensitive)){ themesettings[1] = syscolors[i].section("::::",1,1); //Replace with the full path @@ -409,17 +436,14 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ } } } + } //qDebug() << " - Final Theme Color:" << themesettings[1]; - //Ensure that the settings directory exists - QString setdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop"; - if(!QFile::exists(setdir)){ - QDir dir; - dir.mkpath(setdir); - } //Now save the settings files - if(setTheme){ LTHEME::setCurrentSettings( themesettings[0], themesettings[1], themesettings[2], themesettings[3], themesettings[4]); } + if(setTheme){ + LTHEME::setCurrentSettings( themesettings[0], themesettings[1], themesettings[2], themesettings[3], themesettings[4]); + } LUtils::writeFile(setdir+"/sessionsettings.conf", sesset, true); LUtils::writeFile(setdir+"/desktopsettings.conf", deskset, true); @@ -441,12 +465,14 @@ void LDesktopUtils::LoadSystemDefaults(bool skipOS){ } -bool LDesktopUtils::checkUserFiles(QString lastversion){ +bool LDesktopUtils::checkUserFiles(QString lastversion, QString currentversion){ + //WARNING: Make sure you create a QApplication instance before calling this function!!! + //internal version conversion examples: // [1.0.0 -> 1000000], [1.2.3 -> 1002003], [0.6.1 -> 6001] //returns true if something changed int oldversion = LDesktopUtils::VersionStringToNumber(lastversion); - int nversion = LDesktopUtils::VersionStringToNumber(QApplication::applicationVersion()); + int nversion = LDesktopUtils::VersionStringToNumber(currentversion); bool newversion = ( oldversion < nversion ); //increasing version number bool newrelease = ( lastversion.contains("-devel", Qt::CaseInsensitive) && QApplication::applicationVersion().contains("-release", Qt::CaseInsensitive) ); //Moving from devel to release @@ -488,6 +514,43 @@ bool LDesktopUtils::checkUserFiles(QString lastversion){ } LUtils::writeFile(dset, DS, true); } + if(oldversion<1003004){ + //Lumina 1.3.4 - Migrate theme settings from old format to the new theme engine format + QString themefile = QString(getenv("XDG_CONFIG_HOME"))+"/lthemeengine/lthemeengine.conf"; + if(!QFile::exists(themefile)){ + QDir dir; + dir.mkpath(themefile.section("/",0,-2)); //make sure the main directory exists first + //Need to migrate theme settings from the old location to the new one + QSettings newtheme(themefile, QSettings::NativeFormat); + qDebug() << "Migrating Theme settings:" << newtheme.fileName(); + QStringList oldtheme = LUtils::readFile( QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/themesettings.cfg" ); + //Find the system install location for the theme engine for use later + QString enginedir = LOS::LuminaShare()+"/../lthemeengine/"; + //Find/match the icon theme + QString tmp = oldtheme.filter("ICONTHEME=").join("\n").section("=",1,-1).section("\n",0,0).simplified(); + if(tmp.isEmpty()){ tmp = "material-design-light"; } //unknown Icon theme - use the default "light" version + newtheme.setValue("Appearance/icon_theme",tmp); + //Quick detect/adjust of the tone of the color theme based on the icons/colors (no 1-to-1 color theme matching between systems) + bool isdarktheme = tmp.contains("dark"); + isdarktheme = isdarktheme || oldtheme.filter("COLORFILE=").join("\n").section("=",1,-1).section("\n",0,0).contains("DarkGlass"); + //Quick adjust for the material-design icon theme to make it match the current dark/light theme + if(tmp.contains("material-design")){ + newtheme.setValue("Appearance/icon_theme", QString("material-design-")+ (isdarktheme ? "dark" : "light") ); + } + if(isdarktheme){ + newtheme.setValue("Appearance/custom_palette", true); + newtheme.setValue("Appearance/color_scheme_path", enginedir+"colors/darker.conf"); + newtheme.setValue("Interface/desktop_stylesheets", QStringList() << enginedir+"desktop_qss/DarkGlass.qss"); + }else{ + newtheme.setValue("Appearance/custom_palette", true); + newtheme.setValue("Appearance/color_scheme_path", enginedir+"colors/airy.conf"); + newtheme.setValue("Interface/desktop_stylesheets", QStringList() << enginedir+"desktop_qss/Glass.qss"); + } + newtheme.setValue("Appearance/style", "Fusion"); + newtheme.setValue("Interface/stylesheets", QStringList() << enginedir+"qss/tooltip-simple.qss" << enginedir+"qss/scrollbar-simple.qss" << enginedir+"qss/sliders-simple.qss" << enginedir+"qss/traynotification-simple.qss"); + newtheme.sync(); //flush this to file right now + } //end check for theme file existance + } //Check the fluxbox configuration files dset = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/"; @@ -515,7 +578,7 @@ bool LDesktopUtils::checkUserFiles(QString lastversion){ } int LDesktopUtils::VersionStringToNumber(QString version){ - version = version.section("-",0,0); //trim any extra labels off the end + version = version.section("_",0,0).section("-",0,0); //trim any extra labels off the end int maj, mid, min; //major/middle/minor version numbers (<Major>.<Middle>.<Minor>) maj = mid = min = 0; bool ok = true; diff --git a/src-qt5/core/libLumina/LDesktopUtils.h b/src-qt5/core/libLumina/LDesktopUtils.h index b21bc78a..b0ce6ba5 100644 --- a/src-qt5/core/libLumina/LDesktopUtils.h +++ b/src-qt5/core/libLumina/LDesktopUtils.h @@ -30,7 +30,7 @@ public: static QString findQuickPluginFile(QString ID); static QStringList listQuickPlugins(); //List of valid ID's static QStringList infoQuickPlugin(QString ID); //Returns: [Name, Description, Icon] - + //Various functions for the favorites sub-system // Formatting Note: "<name>::::[dir/app/<mimetype>]::::<path>" // the <name> field might not be used for "app" flagged entries @@ -40,10 +40,10 @@ public: static bool addFavorite(QString path, QString name = ""); static void removeFavorite(QString path); static void upgradeFavorites(int fromoldversionnumber); - + //Load the default setup for the system static void LoadSystemDefaults(bool skipOS = false); - static bool checkUserFiles(QString lastversion); //returns true if something changed + static bool checkUserFiles(QString lastversion, QString currentversion); //returns true if something changed static int VersionStringToNumber(QString version); //convert the lumina version string to a number for comparisons //Migrating desktop settings from one ID to another diff --git a/src-qt5/core/libLumina/LDesktopUtils.pri b/src-qt5/core/libLumina/LDesktopUtils.pri index 80bbcfa8..ebfa89f4 100644 --- a/src-qt5/core/libLumina/LDesktopUtils.pri +++ b/src-qt5/core/libLumina/LDesktopUtils.pri @@ -5,3 +5,5 @@ INCLUDEPATH *= ${PWD} #Now the other dependendies of it include(LUtils.pri) +include(LuminaThemes.pri) +include(LuminaXDG.pri) diff --git a/src-qt5/core/libLumina/LFileInfo.cpp b/src-qt5/core/libLumina/LFileInfo.cpp new file mode 100644 index 00000000..e7d2b71a --- /dev/null +++ b/src-qt5/core/libLumina/LFileInfo.cpp @@ -0,0 +1,184 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2013-2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "LFileInfo.h" +#include <LUtils.h> + +LFileInfo::LFileInfo() : QFileInfo(){ + desk = 0; +} + +LFileInfo::LFileInfo(QString filepath) : QFileInfo(){ //overloaded contructor + desk = 0; + this->setFile(filepath); + loadExtraInfo(); +} + +LFileInfo::LFileInfo(QFileInfo info) : QFileInfo(){ //overloaded contructor + desk = 0; + this->swap(info); //use the given QFileInfo without re-loading it + loadExtraInfo(); +} +LFileInfo::~LFileInfo(){ + if(desk!=0){ desk->deleteLater(); } +} + +//Need some extra information not usually available by a QFileInfo +void LFileInfo::loadExtraInfo(){ + if(desk!=0){ desk->deleteLater(); } + desk = 0; + //Now load the extra information + if(this->absoluteFilePath().startsWith("/net/") || this->isDir() ){ + mime = "inode/directory"; + //Special directory icons + QString name = this->fileName().toLower(); + if(name=="desktop"){ icon = "user-desktop"; } + else if(name=="tmp"){ icon = "folder-temp"; } + else if(name=="video" || name=="videos"){ icon = "folder-video"; } + else if(name=="music" || name=="audio"){ icon = "folder-sound"; } + else if(name=="projects" || name=="devel"){ icon = "folder-development"; } + else if(name=="notes"){ icon = "folder-txt"; } + else if(name=="downloads"){ icon = "folder-downloads"; } + else if(name=="documents"){ icon = "folder-documents"; } + else if(name=="images" || name=="pictures"){ icon = "folder-image"; } + else if(this->absoluteFilePath().startsWith("/net/")){ icon = "folder-remote"; } + else if( !this->isReadable() ){ icon = "folder-locked"; } + }else if( this->suffix()=="desktop"){ + mime = "application/x-desktop"; + icon = "application-x-desktop"; //default value + desk = new XDGDesktop(this->absoluteFilePath(), 0); + if(desk->type!=XDGDesktop::BAD){ + //use the specific desktop file info (if possible) + if(!desk->icon.isEmpty()){ icon = desk->icon; } + } + }else{ + //Generic file, just determine the mimetype + mime = LXDG::findAppMimeForFile(this->fileName()); + } +} + +bool LFileInfo::zfsAvailable(){ + static unsigned int avail = 2; + if(avail == 2){ avail = (LUtils::isValidBinary("zfs") ? 0 : 1); } + return (avail == 0); +} + +void LFileInfo::getZfsDataset(){ + if(zfs_ds.isEmpty()){ + //First run - need to probe the current directory + bool ok = false; + //Use the "atime" property for this check - been around since the earliest versions of ZFS and should take no time to probe + QString out = LUtils::runCommand(ok, "zfs", QStringList() << "get" << "-H" << "atime" << this->canonicalFilePath() ); + if(!ok){ zfs_ds = "."; } //just something that is not empty - but is clearly not a valid dataset + else{ zfs_ds = out.section("\n",0,0).section("\t",0,0).simplified(); } + //qDebug() << "Found Dataset:" << zfs_ds << out << ok; + } +} + +bool LFileInfo::goodZfsDataset(){ + if(!zfsAvailable()){ return false; } + getZfsDataset(); //ensure this field is populated + if(zfs_ds=="." || zfs_ds.isEmpty()){ return false; } + return true; +} + +//Functions for accessing the extra information +// -- Return the mimetype for the file +QString LFileInfo::mimetype(){ + if(mime=="inode/directory"){ return ""; } + else{ return mime; } +} + +// -- Return the icon to use for this file +QString LFileInfo::iconfile(){ + if(!icon.isEmpty()){ + return icon; + }else if(!mime.isEmpty()){ + QString tmp = mime; + tmp.replace("/","-"); + return tmp; + }else if(this->isExecutable()){ + return "application-x-executable"; + } + return ""; //Fall back to nothing +} + +// -- Check if this is an XDG desktop file +bool LFileInfo::isDesktopFile(){ + if(desk==0){ return false; } + return (!desk->filePath.isEmpty()); +} + +// -- Allow access to the XDG desktop data structure +XDGDesktop* LFileInfo::XDG(){ + return desk; +} + +// -- Check if this is a readable video file (for thumbnail support) +bool LFileInfo::isVideo(){ + if(!mime.startsWith("video/")){ return false; } + //Check the hardcoded list of known supported video formats to see if the thumbnail can be generated + return ( !LUtils::videoExtensions().filter(this->suffix().toLower()).isEmpty() ); +} + +// -- Check if this is a readable image file +bool LFileInfo::isImage(){ + if(!mime.startsWith("image/")){ return false; } //quick return for non-image files + //Check the Qt subsystems to see if this image file can be read + return ( !LUtils::imageExtensions().filter(this->suffix().toLower()).isEmpty() ); +} + +bool LFileInfo::isAVFile(){ + return (mime.startsWith("audio/") || mime.startsWith("video/") ); +} + +bool LFileInfo::isZfsDataset(){ + if(!goodZfsDataset()){ return false; } + return ( ("/"+zfs_ds.section("/",1,-1)) == this->canonicalFilePath()); +} + +QString LFileInfo::zfsPool(){ + if(!goodZfsDataset()){ return ""; } + return zfs_ds.section("/",0,0); +} + +QStringList LFileInfo::zfsSnapshots(){ + if(!goodZfsDataset()){ return QStringList(); } + QString relpath = this->canonicalFilePath().remove(0, QString("/"+zfs_ds.section("/",1,-1)).length() ); + //qDebug() << "Got Relative path:" << zfs_ds << this->canonicalFilePath() << relpath; + QDir dir("/"+zfs_ds.section("/",1,-1)+"/.zfs/snapshot/"); + QStringList snaps = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time); + for(int i=0; i<snaps.length(); i++){ + if( QFile::exists(dir.absoluteFilePath(snaps[i])+relpath) ){ snaps[i].append("::::" + dir.absoluteFilePath(snaps[i])+relpath ); } + else{ snaps.removeAt(i); i--; } + } + return snaps; +} + +QJsonObject LFileInfo::zfsProperties(){ + QJsonObject props; + if(!goodZfsDataset()){ return props; } + bool ok = false; + QStringList out = LUtils::runCommand(ok, "zfs", QStringList() << "get" << "-H" << "all" << zfs_ds).split("\n"); + //Note: Formating of zfs output: tab-delimited, with columns [dataset, property, value, source] + for(int i=0; i<out.length() && ok; i++){ + if(out[i].simplified().isEmpty()){ continue; } + QJsonObject prop; + prop.insert("property", out[i].section("\t",1,1).simplified()); + prop.insert("value", out[i].section("\t",2,2).simplified()); + prop.insert("source", out[i].section("\t",3,-1).simplified()); + props.insert(prop.value("property").toString(), prop); + } + return props; +} + +bool LFileInfo::zfsSetProperty(QString property, QString value){ + if(!goodZfsDataset()){ return false; } + bool ok = false; + QString info = LUtils::runCommand(ok, "zfs", QStringList() << "set" << property+"="+value << zfs_ds); + if(!ok){ qDebug() << "Error Setting ZFS Property:" << property+"="+value << info; } + return ok; +} diff --git a/src-qt5/core/libLumina/LFileInfo.h b/src-qt5/core/libLumina/LFileInfo.h new file mode 100644 index 00000000..df1abb65 --- /dev/null +++ b/src-qt5/core/libLumina/LFileInfo.h @@ -0,0 +1,62 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2013-2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// File Information simplification class (combine QFileInfo with XDGDesktop) +// Need some extra information not usually available by a QFileInfo +// ======================== +#ifndef _LUMINA_LIBRARY_FILE_INFO_H +#define _LUMINA_LIBRARY_FILE_INFO_H + +#include <LuminaXDG.h> +#include <QString> +#include <QFileInfo> +#include <QJsonObject> + +class LFileInfo : public QFileInfo{ +private: + QString mime, icon, zfs_ds; + XDGDesktop *desk; + + void loadExtraInfo(); + bool zfsAvailable(); + void getZfsDataset(); //note: only run this if "zfsAvailable" is true + bool goodZfsDataset(); //simplification of the two functions above + +public: + //Couple overloaded contructors + LFileInfo(); + LFileInfo(QString filepath); + LFileInfo(QFileInfo info); + ~LFileInfo(); + + //Functions for accessing the extra information + // -- Return the mimetype for the file + QString mimetype(); + + // -- Return the icon file to use for this file + QString iconfile(); //Note: This string is auto-formatted for use in the LXDG::findIcon() routine. + + // -- Check if this is an XDG desktop file + bool isDesktopFile(); + + // -- Allow access to the internal XDG desktop data structure + XDGDesktop* XDG(); + + //Other file type identification routines + bool isImage(); //Is a readable image file (for thumbnail support) + bool isVideo(); //Is a readable video file (for thumbnail support) + bool isAVFile(); //Is an audio/video file + + bool isZfsDataset(); + QString zfsPool(); + QStringList zfsSnapshots(); //Format: "snapshot name::::path/to/snapshot" + QJsonObject zfsProperties(); + bool zfsSetProperty(QString property, QString value); + +}; +typedef QList<LFileInfo> LFileInfoList; + +#endif diff --git a/src-qt5/core/libLumina/LIconCache.cpp b/src-qt5/core/libLumina/LIconCache.cpp index 70c360fb..84428546 100644 --- a/src-qt5/core/libLumina/LIconCache.cpp +++ b/src-qt5/core/libLumina/LIconCache.cpp @@ -184,6 +184,27 @@ void LIconCache::loadIcon(QLabel *label, QString icon, bool noThumb){ if(needload){ startReadFile(icon, idata.fullpath); } } +void LIconCache::loadIcon(QMenu *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){ + if(!noThumb && !HASH[icon].thumbnail.isNull()){ action->setIcon( HASH[icon].thumbnail ); return; } + else if(!HASH[icon].icon.isNull()){ action->setIcon( HASH[icon].icon ); return; } + } + //Need to load the icon + icon_data idata; + if(HASH.contains(icon)){ idata = HASH.value(icon); } + else { idata = createData(icon); } + idata.pendingMenus << QPointer<QMenu>(action); //save this button for later + HASH.insert(icon, idata); + if(needload){ startReadFile(icon, idata.fullpath); } +} + void LIconCache::clearIconTheme(){ //use when the icon theme changes to refresh all requested icons QStringList keys = HASH.keys(); @@ -282,6 +303,8 @@ void LIconCache::startReadFile(QString id, QString path){ idat.pendingLabels.clear(); for(int i=0; i<idat.pendingActions.length(); i++){ if(!idat.pendingActions[i].isNull()){ idat.pendingActions[i]->setIcon(idat.icon); } } idat.pendingActions.clear(); + for(int i=0; i<idat.pendingMenus.length(); i++){ if(!idat.pendingMenus[i].isNull()){ idat.pendingMenus[i]->setIcon(idat.icon); } } + idat.pendingMenus.clear(); //Now update the hash and let the world know it is available now HASH.insert(id, idat); this->emit IconAvailable(id); diff --git a/src-qt5/core/libLumina/LIconCache.h b/src-qt5/core/libLumina/LIconCache.h index 428ffcab..691d328c 100644 --- a/src-qt5/core/libLumina/LIconCache.h +++ b/src-qt5/core/libLumina/LIconCache.h @@ -4,7 +4,7 @@ // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== -// This is a simple class for loading/serving icon files +// This is a simple class for loading/serving icon files // from the icon theme or local filesystem //=========================================== #include <QHash> @@ -26,6 +26,7 @@ struct icon_data{ QList<QPointer<QLabel> > pendingLabels; QList<QPointer<QAbstractButton> > pendingButtons; QList<QPointer<QAction> > pendingActions; + QList<QPointer<QMenu> > pendingMenus; QIcon icon; QIcon thumbnail; }; @@ -50,6 +51,7 @@ public: void loadIcon(QAbstractButton *button, QString icon, bool noThumb = false); void loadIcon(QLabel *label, QString icon, bool noThumb = false); void loadIcon(QAction *action, QString icon, bool noThumb = false); + void loadIcon(QMenu *action, QString icon, bool noThumb = false); QIcon loadIcon(QString icon, bool noThumb = false); //generic loading routine - does not background the loading of icons when not in the cache diff --git a/src-qt5/core/libLumina/LUtils.cpp b/src-qt5/core/libLumina/LUtils.cpp index fa0173dc..3d3c878a 100644 --- a/src-qt5/core/libLumina/LUtils.cpp +++ b/src-qt5/core/libLumina/LUtils.cpp @@ -14,7 +14,7 @@ #include <unistd.h> -inline QStringList ProcessRun(QString cmd, QStringList args){ +/*inline QStringList ProcessRun(QString cmd, QStringList args){ //Assemble outputs QStringList out; out << "1" << ""; //error code, string output QProcess proc; @@ -26,7 +26,7 @@ inline QStringList ProcessRun(QString cmd, QStringList args){ if(args.isEmpty()){ proc.start(cmd, QIODevice::ReadOnly); }else{ - proc.start(cmd,args ,QIODevice::ReadOnly); + proc.start(cmd,args ,QIODevice::ReadOnly); } QString info; while(!proc.waitForFinished(1000)){ @@ -37,52 +37,59 @@ inline QStringList ProcessRun(QString cmd, QStringList args){ } out[0] = QString::number(proc.exitCode()); out[1] = info+QString(proc.readAllStandardOutput()); - return out; -} + return out; +}*/ + //============= // LUtils Functions //============= -int LUtils::runCmd(QString cmd, QStringList args){ - /*QProcess proc; - proc.setProcessChannelMode(QProcess::MergedChannels); - if(args.isEmpty()){ - proc.start(cmd); - }else{ - proc.start(cmd, args); +QString LUtils::runCommand(bool &success, QString command, QStringList arguments, QString workdir, QStringList env){ + QProcess proc; + proc.setProcessChannelMode(QProcess::MergedChannels); //need output + //First setup the process environment as necessary + QProcessEnvironment PE = QProcessEnvironment::systemEnvironment(); + if(!env.isEmpty()){ + for(int i=0; i<env.length(); i++){ + if(!env[i].contains("=")){ continue; } + PE.insert(env[i].section("=",0,0), env[i].section("=",1,100)); + } + } + proc.setProcessEnvironment(PE); + //if a working directory is specified, check it and use it + if(!workdir.isEmpty()){ + proc.setWorkingDirectory(workdir); } - //if(!proc.waitForStarted(30000)){ return 1; } //process never started - max wait of 30 seconds - while(!proc.waitForFinished(300)){ + //Now run the command (with any optional arguments) + if(arguments.isEmpty()){ proc.start(command); } + else{ proc.start(command, arguments); } + //Wait for the process to finish (but don't block the event loop) + QString info; + while(!proc.waitForFinished(1000)){ if(proc.state() == QProcess::NotRunning){ break; } //somehow missed the finished signal - QCoreApplication::processEvents(); + QString tmp = proc.readAllStandardOutput(); + if(tmp.isEmpty()){ proc.terminate(); } + else{ info.append(tmp); } } - int ret = proc.exitCode(); - return ret;*/ - QFuture<QStringList> future = QtConcurrent::run(ProcessRun, cmd, args); - return future.result()[0].toInt(); //turn it back into an integer return code - + info.append(proc.readAllStandardOutput()); //make sure we don't miss anything in the output + success = (proc.exitCode()==0); //return success/failure + return info; +} + +int LUtils::runCmd(QString cmd, QStringList args){ + bool success; + LUtils::runCommand(success, cmd, args); + return success; + + /*QFuture<QStringList> future = QtConcurrent::run(ProcessRun, cmd, args); + return future.result()[0].toInt(); //turn it back into an integer return code*/ } QStringList LUtils::getCmdOutput(QString cmd, QStringList args){ - /*QProcess proc; - QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); - env.insert("LANG", "C"); - env.insert("LC_MESSAGES", "C"); - proc.setProcessEnvironment(env); - proc.setProcessChannelMode(QProcess::MergedChannels); - if(args.isEmpty()){ - proc.start(cmd); - }else{ - proc.start(cmd,args); - } - //if(!proc.waitForStarted(30000)){ return QStringList(); } //process never started - max wait of 30 seconds - while(!proc.waitForFinished(300)){ - if(proc.state() == QProcess::NotRunning){ break; } //somehow missed the finished signal - QCoreApplication::processEvents(); - } - QStringList out = QString(proc.readAllStandardOutput()).split("\n"); - return out;*/ - QFuture<QStringList> future = QtConcurrent::run(ProcessRun, cmd, args); - return future.result()[1].split("\n"); //Split the return message into lines + bool success; + QString log = LUtils::runCommand(success, cmd, args); + return log.split("\n"); + /*QFuture<QStringList> future = QtConcurrent::run(ProcessRun, cmd, args); + return future.result()[1].split("\n"); //Split the return message into lines*/ } QStringList LUtils::readFile(QString filepath){ @@ -114,11 +121,15 @@ bool LUtils::writeFile(QString filepath, QStringList contents, bool overwrite){ } bool LUtils::isValidBinary(QString& bin){ + //Trim off any quotes + if(bin.startsWith("\"") && bin.endsWith("\"")){ bin.chop(1); bin = bin.remove(0,1); } + if(bin.startsWith("\'") && bin.endsWith("\'")){ bin.chop(1); bin = bin.remove(0,1); } + //Now look for relative/absolute path if(!bin.startsWith("/")){ //Relative path: search for it on the current "PATH" settings QStringList paths = QString(qgetenv("PATH")).split(":"); for(int i=0; i<paths.length(); i++){ - if(QFile::exists(paths[i]+"/"+bin)){ bin = paths[i]+"/"+bin; break;} + if(QFile::exists(paths[i]+"/"+bin)){ bin = paths[i]+"/"+bin; break;} } } //bin should be the full path by now @@ -150,7 +161,7 @@ QSettings* LUtils::openSettings(QString org, QString name, QObject *parent){ }else{ return (new QSettings(filepath, QSettings::IniFormat, parent)); } - + } QStringList LUtils::systemApplicationDirs(){ @@ -164,7 +175,7 @@ QStringList LUtils::systemApplicationDirs(){ for(int i=0; i<appDirs.length(); i++){ if( QFile::exists(appDirs[i]+"/applications") ){ out << appDirs[i]+"/applications"; - //Also check any subdirs within this directory + //Also check any subdirs within this directory // (looking at you KDE - stick to the standards!!) out << LUtils::listSubDirectories(appDirs[i]+"/applications"); } @@ -197,7 +208,7 @@ QString LUtils::GenerateOpenTerminalExec(QString term, QString dirpath){ }else if(term=="konsole" || term == "qterminal"){ exec = term+" --workdir \""+dirpath+"\""; }else{ - //-e is the parameter for most of the terminal appliction to execute an external command. + //-e is the parameter for most of the terminal appliction to execute an external command. //In this case we start a shell in the selected directory //Need the user's shell first QString shell = QString(getenv("SHELL")); @@ -253,12 +264,18 @@ QString LUtils::AppToAbsolute(QString path){ return path; } +QStringList LUtils::videoExtensions() { + static QStringList vidExtensions; + vidExtensions << "avi" << "mkv" << "mp4" << "mov" << "webm" << "wmv"; + return vidExtensions; +} + QStringList LUtils::imageExtensions(bool wildcards){ //Note that all the image extensions are lowercase!! static QStringList imgExtensions; if(imgExtensions.isEmpty()){ QList<QByteArray> fmt = QImageReader::supportedImageFormats(); - for(int i=0; i<fmt.length(); i++){ + for(int i=0; i<fmt.length(); i++){ if(wildcards){ imgExtensions << "*."+QString::fromLocal8Bit(fmt[i]); } else{ imgExtensions << QString::fromLocal8Bit(fmt[i]); } } @@ -308,7 +325,7 @@ QStringList LUtils::imageExtensions(bool wildcards){ qDebug() << "Loading System Encoding:" << langEnc; } //Load current encoding for this locale - QTextCodec::setCodecForLocale( QTextCodec::codecForName(langEnc.toUtf8()) ); + QTextCodec::setCodecForLocale( QTextCodec::codecForName(langEnc.toUtf8()) ); return cTrans; } @@ -379,7 +396,7 @@ void LUtils::setLocaleEnv(QString lang, QString msg, QString time, QString num,Q else{ if(!ctype.contains(".")){ ctype.append(".UTF-8"); } setenv("LC_CTYPE",ctype.toUtf8(),1); - } + } } QString LUtils::currentLocale(){ diff --git a/src-qt5/core/libLumina/LUtils.h b/src-qt5/core/libLumina/LUtils.h index 4ad05ca1..ee04c023 100644 --- a/src-qt5/core/libLumina/LUtils.h +++ b/src-qt5/core/libLumina/LUtils.h @@ -30,6 +30,9 @@ class LUtils{ public: + //Run an external command and return output & exit code + static QString runCommand(bool &success, QString command, QStringList arguments = QStringList(), QString workdir = "", QStringList env = QStringList()); + //Run an external command and return the exit code static int runCmd(QString cmd, QStringList args = QStringList()); //Run an external command and return any text output (one line per entry) @@ -55,7 +58,7 @@ public: //Create the exec string to open a terminal in a particular directory static QString GenerateOpenTerminalExec(QString term, QString dirpath); - + //List all the sub-directories of a parent dir (recursive) static QStringList listSubDirectories(QString dir, bool recursive = true); @@ -65,18 +68,19 @@ public: //Get the list of all file extensions which Qt can read (lowercase) static QStringList imageExtensions(bool wildcards = false); - + static QStringList videoExtensions(); + //Load a translation file for a Lumina Project static QTranslator* LoadTranslation(QApplication *app, QString appname, QString locale = "", QTranslator *cTrans = 0); //Other localization shortcuts static QStringList knownLocales(); //Note: This only lists locales known to Lumina (so the i18n files need to be installed) static void setLocaleEnv(QString lang, QString msg="", QString time="", QString num="" ,QString money="",QString collate="", QString ctype=""); static QString currentLocale(); - + //Number format conversions static double DisplaySizeToBytes(QString num); //Turn a display size (like 50M or 50KB) into a double for calculations (bytes) static QString BytesToDisplaySize(qint64 bytes); //convert into a readable size (like 50M or 50KB) - + static QString SecondsToDisplay(int secs); //convert into a readable time }; #endif diff --git a/src-qt5/core/libLumina/LUtils.pri b/src-qt5/core/libLumina/LUtils.pri index 6ce0839c..da5a78d5 100644 --- a/src-qt5/core/libLumina/LUtils.pri +++ b/src-qt5/core/libLumina/LUtils.pri @@ -15,8 +15,7 @@ GIT_VERSION=$$system(git describe --always) #DEFINES += BUILD_DATE='"\\\"$$system(date)\\\""' #LuminaOS files -HEADERS *= $${PWD}/LuminaOS.h \ - $${PWD}/OSInterface.h +HEADERS *= $${PWD}/LuminaOS.h # LuminaOS support functions (or fall back to generic one) exists($${PWD}/LuminaOS-$${LINUX_DISTRO}.cpp){ @@ -26,13 +25,6 @@ exists($${PWD}/LuminaOS-$${LINUX_DISTRO}.cpp){ }else{ SOURCES *= $${PWD}/LuminaOS-template.cpp } -exists($${PWD}/OSInterface-$${LINUX_DISTRO}.cpp){ - SOURCES *= $${PWD}/OSInterface-$${LINUX_DISTRO}.cpp -}else:exists($${PWD}/OSInterface-$${OS}.cpp){ - SOURCES *= $${PWD}/OSInterface-$${OS}.cpp -}else{ - SOURCES *= $${PWD}/OSInterface-template.cpp -} #LUtils Files SOURCES *= $${PWD}/LUtils.cpp diff --git a/src-qt5/core/libLumina/LVideoLabel.cpp b/src-qt5/core/libLumina/LVideoLabel.cpp new file mode 100644 index 00000000..93e95afd --- /dev/null +++ b/src-qt5/core/libLumina/LVideoLabel.cpp @@ -0,0 +1,122 @@ +#include "LVideoLabel.h" +#include <LuminaXDG.h> +#include <QCoreApplication> +#include <QTimer> + +LVideoLabel::LVideoLabel(QString file, bool icons, QWidget *parent) : QLabel(parent) { + thumbnail = QPixmap(); + entered = false; + this->icons = icons; + filepath = file; + defaultThumbnail = LXDG::findIcon("media-playback-start", "").pixmap(256,256); + QTimer::singleShot(qrand()%10, this, SLOT(initializeBackend()) ); +} + +LVideoLabel::~LVideoLabel() { + mediaPlayer->deleteLater(); + surface->deleteLater(); +} + +void LVideoLabel::initializeBackend(){ + mediaPlayer = new QMediaPlayer(this, QMediaPlayer::VideoSurface); + surface = new LVideoSurface(this); + mediaPlayer->setVideoOutput(surface); + mediaPlayer->setPlaybackRate(3); + mediaPlayer->setMuted(true); + + this->setPixmap(defaultThumbnail.scaled(this->size(),Qt::IgnoreAspectRatio)); + mediaPlayer->setMedia(QUrl::fromLocalFile(filepath)); + + this->connect(surface, SIGNAL(frameReceived(QPixmap)), this, SLOT(stopVideo(QPixmap))); + this->connect(mediaPlayer, SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(stateChanged(QMediaPlayer::State))); + this->connect(mediaPlayer, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(setDuration(QMediaPlayer::MediaStatus))); + this->connect(this, SIGNAL(rollOver()), surface, SLOT(switchRollOver())); + + //QTimer::singleShot( qrand()%100,mediaPlayer, SLOT(play()) ); + //mediaPlayer->play(); +} + +void LVideoLabel::enableIcons() { + this->setPixmap(thumbnail.scaled(this->size(),Qt::IgnoreAspectRatio)); + icons = true; +} + +void LVideoLabel::disableIcons() { + this->setPixmap(defaultThumbnail.scaled(this->size(),Qt::IgnoreAspectRatio)); + icons = false; +} + +void LVideoLabel::stopVideo(QPixmap pix) { + if(!entered) { + emit frameReceived(pix); + if(thumbnail.isNull()) + thumbnail = pix; + if(icons) + this->setPixmap(thumbnail.scaled(this->size(),Qt::IgnoreAspectRatio)); + mediaPlayer->pause(); + }else { + if(icons) + this->setPixmap(pix.scaled(this->size(),Qt::IgnoreAspectRatio)); + } +} + +void LVideoLabel::stateChanged(QMediaPlayer::State state) { + //qDebug() << state; +} + +void LVideoLabel::setDuration(QMediaPlayer::MediaStatus status) { + //qDebug() << status; + if(status == QMediaPlayer::BufferedMedia && !entered) { //Set duration in the middle to capture the thumbnail + mediaPlayer->setPosition(mediaPlayer->duration() / 2); + mediaPlayer->play(); + }else if(status == QMediaPlayer::EndOfMedia && entered) { //Loop back to the beginning if playback started and at the end of the video + mediaPlayer->setPosition(0); + mediaPlayer->play(); + }else if(status == QMediaPlayer::InvalidMedia){ + mediaPlayer->stop(); + QTimer::singleShot(qrand()%100, mediaPlayer, SLOT(play())); //mediaPlayer->play(); + }/*else if(status == QMediaPlayer::LoadingMedia) { + mediaPlayer->pause(); + QTimer timer; + timer.setSingleShot(true); + timer.setInterval(300); + timer.start(); + qDebug() << "Timer Started" << timer.remainingTime(); + while(timer.isActive()) QCoreApplication::processEvents(QEventLoop::AllEvents, 5); + qDebug() << "Timer Finished" << timer.remainingTime(); + mediaPlayer->setPosition(0); + mediaPlayer->play(); + }*/ +} + +void LVideoLabel::resizeEvent(QResizeEvent *event) { + //Resize the current pixmap to match the new size + if(!thumbnail.isNull()){ + if(icons) + this->setPixmap(thumbnail.scaled(this->size(),Qt::IgnoreAspectRatio)); + else + this->setPixmap(defaultThumbnail.scaled(this->size(),Qt::IgnoreAspectRatio)); + } + QLabel::resizeEvent(event); +} + +//Start playing the video from the beginning when the mouse enters the label +void LVideoLabel::enterEvent(QEvent *event) { + if(icons) { + entered=true; + emit rollOver(); + mediaPlayer->setPosition(0); + mediaPlayer->play(); + } + QWidget::enterEvent(event); +} + +//Stop the video and set the thumbnail back to the middle of the video when the mouse leaves the label +void LVideoLabel::leaveEvent(QEvent *event) { + if(icons) { + entered=false; + mediaPlayer->setPosition(mediaPlayer->duration() / 2); + emit rollOver(); + } + QWidget::leaveEvent(event); +} diff --git a/src-qt5/core/libLumina/LVideoLabel.h b/src-qt5/core/libLumina/LVideoLabel.h new file mode 100644 index 00000000..56defb6a --- /dev/null +++ b/src-qt5/core/libLumina/LVideoLabel.h @@ -0,0 +1,42 @@ +#ifndef LVIDEOLABEL_H +#define LVIDEOLABEL_H + +#include <QLabel> +#include <QMediaPlayer> +#include <QTimer> +#include <QResizeEvent> +#include "LVideoSurface.h" + +class LVideoLabel : public QLabel{ + Q_OBJECT + public: + LVideoLabel(QString, bool, QWidget* parent=NULL); + ~LVideoLabel(); + void enableIcons(); + void disableIcons(); + + protected: + void enterEvent(QEvent*); + void leaveEvent(QEvent*); + void resizeEvent(QResizeEvent*); + + signals: + void rollOver(); + void frameReceived(QPixmap); + + private slots: + void initializeBackend(); + void stopVideo(QPixmap); + void setDuration(QMediaPlayer::MediaStatus); + void stateChanged(QMediaPlayer::State); + + private: + QMediaPlayer *mediaPlayer; + LVideoSurface *surface; + QPixmap thumbnail; + QPixmap defaultThumbnail; + bool entered; + bool icons; + QString filepath; +}; +#endif diff --git a/src-qt5/core/libLumina/LVideoLabel.pri b/src-qt5/core/libLumina/LVideoLabel.pri new file mode 100644 index 00000000..06395c8d --- /dev/null +++ b/src-qt5/core/libLumina/LVideoLabel.pri @@ -0,0 +1,13 @@ +QT *= multimedia + +HEADERS *= $${PWD}/LVideoLabel.h +HEADERS *= $${PWD}/LVideoSurface.h +HEADERS *= $${PWD}/LVideoWidget.h +SOURCES *= $${PWD}/LVideoLabel.cpp +SOURCES *= $${PWD}/LVideoSurface.cpp +SOURCES *= $${PWD}/LVideoWidget.cpp + +INCLUDEPATH *= ${PWD} + +#Now the other dependendies of it +#include(LUtils.pri) diff --git a/src-qt5/core/libLumina/LVideoSurface.cpp b/src-qt5/core/libLumina/LVideoSurface.cpp new file mode 100644 index 00000000..3aaa81f0 --- /dev/null +++ b/src-qt5/core/libLumina/LVideoSurface.cpp @@ -0,0 +1,60 @@ +#include "LVideoSurface.h" +#include <QDebug> + +LVideoSurface::LVideoSurface(QObject *parent) : QAbstractVideoSurface(parent) { + frameImage = QPixmap(); + entered = false; +} + +bool LVideoSurface::present(const QVideoFrame &frame) { + //qDebug() << surfaceFormat().frameSize() << frame.size(); + if(!frameImage.isNull() && !entered) { + emit frameReceived(frameImage); + return true; + } + + if(frame.isValid()) { + //qDebug() << "Recording Frame"; + //qDebug() << surfaceFormat().frameSize() << frame.size(); + QVideoFrame icon(frame); + icon.map(QAbstractVideoBuffer::ReadOnly); + QImage img(icon.bits(), icon.width(), icon.height(), icon.bytesPerLine(), QVideoFrame::imageFormatFromPixelFormat(frame.pixelFormat())); + + if((frameImage.isNull() && !entered) or entered) + frameImage = QPixmap::fromImage(img.copy(img.rect())); + + icon.unmap(); + emit frameReceived(frameImage); + return true; + } + return false; +} + +QList<QVideoFrame::PixelFormat> LVideoSurface::supportedPixelFormats(QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle) const { + Q_UNUSED(type); + return QList<QVideoFrame::PixelFormat>() << QVideoFrame::Format_ARGB32 << QVideoFrame::Format_RGB32 << QVideoFrame::Format_RGB24 + << QVideoFrame::Format_RGB565 << QVideoFrame::Format_RGB555 << QVideoFrame::Format_BGRA32 << QVideoFrame::Format_BGR32; +} + +void LVideoSurface::stop() { + QAbstractVideoSurface::stop(); +} + +void LVideoSurface::switchRollOver() { + entered = !entered; +} + +bool LVideoSurface::start(const QVideoSurfaceFormat &format) { + const QImage::Format imageFormat = QVideoFrame::imageFormatFromPixelFormat(format.pixelFormat()); + const QSize size = format.frameSize(); + + //QVideoSurfaceFormat newFormat = format; + //Shrink the frames passed through the format to a smaller, thumbnail appropriate size and increase the frame rate + //newFormat.setFrameSize(258,258); + //newFormat.setFrameRate(90); + + if (imageFormat != QImage::Format_Invalid && !size.isEmpty()) + QAbstractVideoSurface::start(format); + + return (imageFormat != QImage::Format_Invalid && !size.isEmpty()); +} diff --git a/src-qt5/core/libLumina/LVideoSurface.h b/src-qt5/core/libLumina/LVideoSurface.h new file mode 100644 index 00000000..7a3dcaad --- /dev/null +++ b/src-qt5/core/libLumina/LVideoSurface.h @@ -0,0 +1,26 @@ +#ifndef LVIDEOSURFACE_H +#define LVIDEOSURFACE_H + +#include <QAbstractVideoSurface> +#include <QVideoSurfaceFormat> +#include <QPixmap> +#include <QDebug> + +class LVideoSurface : public QAbstractVideoSurface { + Q_OBJECT + + public: + LVideoSurface(QObject *parent=0); + virtual bool present(const QVideoFrame&); + virtual QList<QVideoFrame::PixelFormat> supportedPixelFormats(QAbstractVideoBuffer::HandleType) const; + bool start(const QVideoSurfaceFormat &format); + void stop(); + signals: + void frameReceived(QPixmap); + public slots: + void switchRollOver(); + private: + QPixmap frameImage; + bool entered; +}; +#endif diff --git a/src-qt5/core/libLumina/LVideoSurface.pri b/src-qt5/core/libLumina/LVideoSurface.pri new file mode 100644 index 00000000..469b8c93 --- /dev/null +++ b/src-qt5/core/libLumina/LVideoSurface.pri @@ -0,0 +1,9 @@ +QT *= multimedia + +HEADERS *= $${PWD}/LVideoSurface.h +SOURCES *= $${PWD}/LVideoSurface.cpp + +INCLUDEPATH *= ${PWD} + +#Now the other dependendies of it +#include(LUtils.pri) diff --git a/src-qt5/core/libLumina/LVideoWidget.cpp b/src-qt5/core/libLumina/LVideoWidget.cpp new file mode 100644 index 00000000..f1f74414 --- /dev/null +++ b/src-qt5/core/libLumina/LVideoWidget.cpp @@ -0,0 +1,38 @@ +#include "LVideoWidget.h" + +LVideoWidget::LVideoWidget(QString file, QSize iconSize, bool icons, QWidget *parent) : QWidget(parent) { + iconLabel = new LVideoLabel(file, icons, parent); + textLabel = new QLabel(parent); + + layout = new QHBoxLayout(this); + layout->setAlignment(Qt::AlignLeft | Qt::AlignCenter); + layout->setContentsMargins(5,5,5,5); + layout->setStretchFactor(textLabel, 1); //make sure this always occupies all extra space + + textLabel->setText(file.section("/", -1)); + iconLabel->setGeometry(QRect(QPoint(0,0), iconSize)); + iconLabel->setFixedSize(iconSize); + iconLabel->setVisible(true); + textLabel->setVisible(true); + + layout->addWidget(iconLabel); + layout->addWidget(textLabel); +} + +LVideoWidget::~LVideoWidget() { + delete iconLabel; + delete textLabel; + delete layout; +} + +void LVideoWidget::setIconSize(QSize iconSize) { + iconLabel->setFixedSize(iconSize); +} + +void LVideoWidget::enableIcons() { + iconLabel->enableIcons(); +} + +void LVideoWidget::disableIcons() { + iconLabel->disableIcons(); +} diff --git a/src-qt5/core/libLumina/LVideoWidget.h b/src-qt5/core/libLumina/LVideoWidget.h new file mode 100644 index 00000000..610fd9e5 --- /dev/null +++ b/src-qt5/core/libLumina/LVideoWidget.h @@ -0,0 +1,22 @@ +#ifndef LVIDEOWIDGET_H +#define LVIDEOWIDGET_H + +#include "LVideoLabel.h" +#include <QHBoxLayout> +#include <QResizeEvent> + +class LVideoWidget : public QWidget { + Q_OBJECT + public: + LVideoWidget(QString, QSize, bool icons, QWidget* parent=NULL); + ~LVideoWidget(); + void setIconSize(QSize); + void disableIcons(); + void enableIcons(); + + private: + LVideoLabel *iconLabel; + QLabel *textLabel; + QHBoxLayout *layout; +}; +#endif diff --git a/src-qt5/core/libLumina/LuminaOS-FreeBSD.cpp b/src-qt5/core/libLumina/LuminaOS-FreeBSD.cpp index b9346565..1ee8fb8a 100644 --- a/src-qt5/core/libLumina/LuminaOS-FreeBSD.cpp +++ b/src-qt5/core/libLumina/LuminaOS-FreeBSD.cpp @@ -27,12 +27,12 @@ QString LOS::SysPrefix(){ return "/usr/"; } //Prefix for system QString LOS::ControlPanelShortcut(){ return "/usr/local/share/applications/pccontrol.desktop"; } //system control panel QString LOS::AppStoreShortcut(){ return "/usr/local/share/applications/appcafe.desktop"; } //graphical app/pkg manager //OS-specific RSS feeds (Format: QStringList[ <name>::::<url> ]; ) -QStringList LOS::RSSFeeds(){ +QStringList LOS::RSSFeeds(){ QStringList feeds; feeds << "FreeBSD News Feed::::https://www.freebsd.org/news/rss.xml"; - feeds << "TrueOS News Feed::::http://www.trueos.org/?feed=rss2"; + feeds << "TrueOS News Feed::::http://www.trueos.org/feed/"; return feeds; - } + } // ==== ExternalDevicePaths() ==== QStringList LOS::ExternalDevicePaths(){ @@ -59,6 +59,25 @@ QStringList LOS::ExternalDevicePaths(){ i--; } } + //Also add info about anything in the "/media" directory + QDir media("/media"); + QFileInfoList list = media.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot, QDir::Type | QDir::Name); + //qDebug() << "Media files found:" << list.length(); + for(int i=0; i<list.length(); i++){ + //qDebug() << "Found media entry:" << list[i].fileName(); + if(list[i].isDir()){ + devs << "UNKNOWN::::::::/media/"+list[i].fileName(); + }else if(list[i].fileName().endsWith(".desktop")){ + QString type = list[i].fileName().section(".desktop",0,-2); + //Determine the type of hardware device based on the dev node + if(type.startsWith("da")){ type = "USB"; } + else if(type.startsWith("ada")){ type = "HDRIVE"; } + else if(type.startsWith("mmsd")){ type = "SDCARD"; } + else if(type.startsWith("cd")||type.startsWith("acd")){ type="DVD"; } + else{ type = "UNKNOWN"; } + devs << type+"::::::::/media/"+list[i].fileName(); + } + } return devs; } @@ -66,7 +85,7 @@ QStringList LOS::ExternalDevicePaths(){ int LOS::ScreenBrightness(){ //First run a quick check to ensure this is not a VirtualBox VM (no brightness control) static int goodsys = -1; //This will not change over time - only check/set once - if(goodsys<0){ + if(goodsys<0){ //Make sure we are not running in VirtualBox (does not work in a VM) QStringList info = LUtils::getCmdOutput("pciconf -lv"); if( info.filter("VirtualBox", Qt::CaseInsensitive).isEmpty() ){ goodsys = 1; } @@ -84,8 +103,8 @@ int LOS::ScreenBrightness(){ } } //If it gets to this point, then we have a valid (but new) installation - if(screenbrightness<0){ screenbrightness = 100; } //default value for systems - return screenbrightness; + if(screenbrightness<0){ screenbrightness = 100; } //default value for systems + return screenbrightness; } //Set screen brightness @@ -98,12 +117,12 @@ void LOS::setScreenBrightness(int percent){ bool success = false; // - try hardware setting first (TrueOS || or intel_backlight) bool remoteSession = !QString(getenv("PICO_CLIENT_LOGIN")).isEmpty(); - if( LUtils::isValidBinary("pc-sysconfig") && !remoteSession){ + /*if( LUtils::isValidBinary("pc-sysconfig") && !remoteSession){ //Use TrueOS tool (direct sysctl control) QString ret = LUtils::getCmdOutput("pc-sysconfig", QStringList() <<"setscreenbrightness "+QString::number(percent)).join(""); success = ret.toLower().contains("success"); qDebug() << "Set hardware brightness:" << percent << success; - } + }*/ if( !success && LUtils::isValidBinary("intel_backlight") && !remoteSession){ //Use the intel_backlight utility (only for Intel mobo/hardware?) if(0== LUtils::runCmd("intel_backlight", QStringList() <<QString::number(percent)) ){ @@ -130,10 +149,10 @@ int LOS::audioVolume(){ //Returns: audio volume as a percentage (0-100, with -1 if(out < 0){ //First time session check: Load the last setting for this user QString info = LUtils::readFile(QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/.currentvolume").join(""); - if(!info.isEmpty()){ - out = info.simplified().toInt(); + if(!info.isEmpty()){ + out = info.simplified().toInt(); audiovolume = out; //reset this internal flag - return out; + return out; } } bool remoteSession = !QString(getenv("PICO_CLIENT_LOGIN")).isEmpty(); @@ -154,7 +173,7 @@ int LOS::audioVolume(){ //Returns: audio volume as a percentage (0-100, with -1 //Volume changed by other utility: adjust the saved value as well LUtils::writeFile(QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/.currentvolume", QStringList() << QString::number(out), true); } - audiovolume = out; + audiovolume = out; } } return out; @@ -203,7 +222,7 @@ void LOS::changeAudioVolume(int percentdiff){ //Run Command LUtils::runCmd("mixer vol "+QString::number(L)+":"+QString::number(R)); } - } + } } //Check if a graphical audio mixer is installed @@ -229,7 +248,7 @@ bool LOS::systemPerformingUpdates(){ //Return the details of any updates which are waiting to apply on shutdown QString LOS::systemPendingUpdates(){ - if(QFile::exists("/tmp/.rebootRequired")){ return LUtils::readFile("/tmp/.rebootRequired").join("\n"); } + if(QFile::exists("/tmp/.trueos-update-staged")){ return LUtils::readFile("/tmp/.trueos-update-staged").join("\n"); } else{ return ""; } } @@ -241,24 +260,31 @@ void LOS::systemShutdown(bool skipupdates){ //start poweroff sequence //System Restart void LOS::systemRestart(bool skipupdates){ //start reboot sequence - if(skipupdates){QProcess::startDetached("shutdown -ro now"); } - else{ QProcess::startDetached("shutdown -r now"); } + bool activeupdates = (LUtils::getCmdOutput("sysrc -n trueos_active_update").join("").simplified()=="YES"); + if(skipupdates){ + QProcess::startDetached("shutdown -ro now"); + }else{ + if(activeupdates && LUtils::isValidBinary("pc-updatemanager") && LOS::systemPendingUpdates().isEmpty()){ QProcess::startDetached("pc-updatemanager startupdate"); } + else{ QProcess::startDetached("shutdown -r now"); } + } } //Check for suspend support bool LOS::systemCanSuspend(){ - //This will only function on TrueOS - //(permissions issues on standard FreeBSD unless setup a special way) - bool ok = QFile::exists("/usr/local/bin/pc-sysconfig"); + QString state = LUtils::getCmdOutput("sysctl -n hw.acpi.suspend_state").join("").simplified(); + bool ok = LUtils::getCmdOutput("sysctl -n hw.acpi.supported_sleep_state").join("").split(" ",QString::SkipEmptyParts).contains(state); + /*bool ok = QFile::exists("/usr/local/bin/pc-sysconfig"); if(ok){ ok = LUtils::getCmdOutput("pc-sysconfig systemcansuspend").join("").toLower().contains("true"); - } + }*/ return ok; } //Put the system into the suspend state void LOS::systemSuspend(){ - QProcess::startDetached("pc-sysconfig suspendsystem"); + QString state = LUtils::getCmdOutput("sysctl -n hw.acpi.suspend_state").join("").simplified(); + //QProcess::startDetached("pc-sysconfig suspendsystem"); + QProcess::startDetached("acpiconf", QStringList() << "-s" << state ); } //Battery Availability @@ -270,8 +296,8 @@ bool LOS::hasBattery(){ //Battery Charge Level int LOS::batteryCharge(){ //Returns: percent charge (0-100), anything outside that range is counted as an error int charge = LUtils::getCmdOutput("apm -l").join("").toInt(); - if(charge > 100){ charge = -1; } //invalid charge - return charge; + if(charge > 100){ charge = -1; } //invalid charge + return charge; } //Battery Charging State @@ -309,11 +335,11 @@ QString LOS::FileSystemCapacity(QString dir) { //Return: percentage capacity as QStringList LOS::CPUTemperatures(){ //Returns: List containing the temperature of any CPU's ("50C" for example) static QStringList vars = QStringList(); QStringList temps; - if(vars.isEmpty()){ + if(vars.isEmpty()){ temps = LUtils::getCmdOutput("sysctl -i dev.cpu").filter(".temperature:"); //try direct readings first if(temps.isEmpty()){ temps = LUtils::getCmdOutput("sysctl -i hw.acpi").filter(".temperature:"); } // then try acpi values }else{ temps = LUtils::getCmdOutput("sysctl "+vars.join(" ")); vars.clear(); } - + temps.sort(); for(int i=0; i<temps.length(); i++){ if(temps[i].contains(".acpi.") || temps[i].contains(".cpu")){ @@ -364,7 +390,7 @@ int LOS::CPUUsagePercent(){ //Returns: Overall percentage of the amount of CPU c tot += 100.0L - ( (100.0L*result[i].toLong())/sum ); //remember IDLE is the last of the five values per CPU } return qRound(tot/cpnum); - + } int LOS::MemoryUsagePercent(){ @@ -388,14 +414,14 @@ QStringList LOS::DiskUsage(){ //Returns: List of current read/write stats for ea info[i].replace("\t"," "); if(i==1){ labs = info[i].split(" ", QString::SkipEmptyParts); }//the labels for each column else{ - QStringList data = info[i].split(" ",QString::SkipEmptyParts); //data[0] is always the device + QStringList data = info[i].split(" ",QString::SkipEmptyParts); //data[0] is always the device //qDebug() << "Data Line:" << data; if(data.length()>2 && labs.length()>2){ out << fmt.arg(data[0], data[1]+" "+labs[1], data[2]+" "+labs[2]); } } } - + return out; } diff --git a/src-qt5/core/libLumina/LuminaOS.h b/src-qt5/core/libLumina/LuminaOS.h index e7a72129..98137816 100644 --- a/src-qt5/core/libLumina/LuminaOS.h +++ b/src-qt5/core/libLumina/LuminaOS.h @@ -5,8 +5,8 @@ // See the LICENSE file for full details //=========================================== // This is the main interface for any OS-specific system calls -// To port Lumina to a different operating system, just create a file -// called "LuminaOS-<Operating System>.cpp", and use that file in +// To port Lumina to a different operating system, just create a file +// called "LuminaOS-<Operating System>.cpp", and use that file in // the project (libLumina.pro) instead of LuminaOS-FreeBSD.cpp //=========================================== #ifndef _LUMINA_LIBRARY_OS_H @@ -23,7 +23,7 @@ class LOS{ public: //Return the name of the OS being used - static QString OSName(); + static QString OSName(); //OS-specific prefix(s) static QString LuminaShare(); //Install dir for Lumina share files @@ -34,7 +34,7 @@ public: static QString ControlPanelShortcut(); static QString AppStoreShortcut(); - //OS-specific RSS feeds + //OS-specific RSS feeds static QStringList RSSFeeds(); //Return Format: QStringList[ <name>::::<url> ]; //Scan for mounted external devices @@ -81,13 +81,13 @@ public: static bool batteryIsCharging(); //Battery Time Remaining static int batterySecondsLeft(); //Returns: estimated number of seconds remaining - + //Get the checksum for a file static QStringList Checksums(QStringList filepaths); //Return: checksum of each input file (same order) - + //Get the filesystem capacity static QString FileSystemCapacity(QString dir) ; //Return: percentage capacity as give by the df command - + //System CPU Information static QStringList CPUTemperatures(); //Returns: List containing the temperature of any CPU's ("50C" for example) static int CPUUsagePercent(); //Returns: Overall percentage of the amount of CPU cycles in use (-1 for errors) diff --git a/src-qt5/core/libLumina/LuminaSingleApplication.cpp b/src-qt5/core/libLumina/LuminaSingleApplication.cpp index 86248666..6107aff8 100644 --- a/src-qt5/core/libLumina/LuminaSingleApplication.cpp +++ b/src-qt5/core/libLumina/LuminaSingleApplication.cpp @@ -11,7 +11,7 @@ #include <QDebug> #include <QX11Info> -#include <unistd.h> //for getlogin() +#include <unistd.h> //for getuid() LSingleApplication::LSingleApplication(int &argc, char **argv, QString appname) : QApplication(argc, argv){ //Load the proper translation systems @@ -19,7 +19,7 @@ LSingleApplication::LSingleApplication(int &argc, char **argv, QString appname) if(appname!="lumina-desktop"){ cTrans = LUtils::LoadTranslation(this, appname); }//save the translator for later //Initialize a couple convenience internal variables cfile = QDir::tempPath()+"/.LSingleApp-%1-%2-%3"; - QString username = QString(getlogin()); + QString username = QString::number(getuid()); //For locking the process use the official process name - not the user input (no masking) appname = this->applicationName(); cfile = cfile.arg( username, appname, QString::number(QX11Info::appScreen()) ); @@ -107,17 +107,17 @@ void LSingleApplication::PerformLockChecks(){ QLocalSocket socket(this); socket.connectToServer(cfile); socket.waitForConnected(); - if(!socket.isValid() || socket.state()!=QLocalSocket::ConnectedState){ + if(!socket.isValid() || socket.state()!=QLocalSocket::ConnectedState){ //error - could not forward info for some reason qDebug() << " - Could not connect to locking process: exiting..."; - exit(1); - } - - qDebug() << " - Forwarding inputs to locking process and closing down this instance..."; + exit(1); + } + + qDebug() << " - Forwarding inputs to locking process and closing down this instance..."; socket.write( inputlist.join("::::").toLocal8Bit() ); socket.waitForDisconnected(500); //max out at 1/2 second (only hits this if no inputs) } - + } //New messages detected diff --git a/src-qt5/core/libLumina/LuminaThemes.cpp b/src-qt5/core/libLumina/LuminaThemes.cpp index 85d43925..03524941 100644 --- a/src-qt5/core/libLumina/LuminaThemes.cpp +++ b/src-qt5/core/libLumina/LuminaThemes.cpp @@ -23,46 +23,67 @@ //#include "qxcbcursor.h" //needed to prod Qt to refresh the mouse cursor theme //#include <QCursor> -QStringList LTHEME::availableSystemThemes(){ +QStringList LTHEME::availableSystemThemes(){ //returns: [name::::path] for each item - QDir dir(LOS::LuminaShare()+"themes"); - QStringList list = dir.entryList(QStringList() <<"*.qss.template", QDir::Files, QDir::Name); + QDir dir(LOS::LuminaShare()+"../lthemeengine/desktop_qss"); + QStringList list = dir.entryList(QStringList() <<"*.qss", QDir::Files, QDir::Name); for(int i=0; i<list.length(); i++){ //Format the output entry [<name>::::<fullpath>] - list[i] = list[i].section(".qss.",0,0)+"::::"+dir.absoluteFilePath(list[i]); + list[i] = list[i].section(".qss",0,0)+"::::"+dir.absoluteFilePath(list[i]); } - return list; + return list; +} + +QStringList LTHEME::availableSystemStyles(){ + //returns: [name::::path] for each item + QDir dir(LOS::LuminaShare()+"../lthemeengine/qss"); + QStringList list = dir.entryList(QStringList() <<"*.qss", QDir::Files, QDir::Name); + for(int i=0; i<list.length(); i++){ + //Format the output entry [<name>::::<fullpath>] + list[i] = list[i].section(".qss",0,0)+"::::"+dir.absoluteFilePath(list[i]); + } + return list; } QStringList LTHEME::availableLocalThemes(){ //returns: [name::::path] for each item - QDir dir( QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/themes"); - QStringList list = dir.entryList(QStringList() <<"*.qss.template", QDir::Files, QDir::Name); + QDir dir( QString(getenv("XDG_CONFIG_HOME"))+"/lthemeengine/desktop_qss"); + QStringList list = dir.entryList(QStringList() <<"*.qss", QDir::Files, QDir::Name); for(int i=0; i<list.length(); i++){ //Format the output entry [<name>::::<fullpath>] - list[i] = list[i].section(".qss.",0,0)+"::::"+dir.absoluteFilePath(list[i]); + list[i] = list[i].section(".qss",0,0)+"::::"+dir.absoluteFilePath(list[i]); + } + return list; +} + +QStringList LTHEME::availableLocalStyles(){ //returns: [name::::path] for each item + QDir dir( QString(getenv("XDG_CONFIG_HOME"))+"/lthemeengine/qss"); + QStringList list = dir.entryList(QStringList() <<"*.qss", QDir::Files, QDir::Name); + for(int i=0; i<list.length(); i++){ + //Format the output entry [<name>::::<fullpath>] + list[i] = list[i].section(".qss",0,0)+"::::"+dir.absoluteFilePath(list[i]); } return list; } QStringList LTHEME::availableSystemColors(){ //returns: [name::::path] for each item //returns: [name::::path] for each item - QDir dir(LOS::LuminaShare()+"colors"); - QStringList list = dir.entryList(QStringList() <<"*.qss.colors", QDir::Files, QDir::Name); + QDir dir(LOS::LuminaShare()+"../lthemeengine/colors"); + QStringList list = dir.entryList(QStringList() <<"*.conf", QDir::Files, QDir::Name); for(int i=0; i<list.length(); i++){ //Format the output entry [<name>::::<fullpath>] - list[i] = list[i].section(".qss.",0,0)+"::::"+dir.absoluteFilePath(list[i]); + list[i] = list[i].section(".conf",0,0)+"::::"+dir.absoluteFilePath(list[i]); } - return list; + return list; } QStringList LTHEME::availableLocalColors(){ //returns: [name::::path] for each item - QDir dir(QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/colors"); - QStringList list = dir.entryList(QStringList() <<"*.qss.colors", QDir::Files, QDir::Name); + QDir dir(QString(getenv("XDG_CONFIG_HOME"))+"/lthemeengine/colors"); + QStringList list = dir.entryList(QStringList() <<"*.conf", QDir::Files, QDir::Name); for(int i=0; i<list.length(); i++){ //Format the output entry [<name>::::<fullpath>] - list[i] = list[i].section(".qss.",0,0)+"::::"+dir.absoluteFilePath(list[i]); + list[i] = list[i].section(".conf",0,0)+"::::"+dir.absoluteFilePath(list[i]); } - return list; + return list; } QStringList LTHEME::availableSystemIcons(){ //returns: [name] for each item @@ -72,7 +93,7 @@ QStringList LTHEME::availableSystemIcons(){ //returns: [name] for each item xdd << QString(getenv("XDG_DATA_DIRS")).split(":"); for(int i=0; i<xdd.length(); i++){ if(QFile::exists(xdd[i]+"/icons")){ - paths << xdd[i]+"/icons"; + paths << xdd[i]+"/icons"; } } //Now get all the icon themes in these directories @@ -83,8 +104,8 @@ QStringList LTHEME::availableSystemIcons(){ //returns: [name] for each item tmpthemes = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); for(int j=0; j<tmpthemes.length(); j++){ if(tmpthemes[j].startsWith("default")){ continue; } - if(QFile::exists(dir.absoluteFilePath(tmpthemes[j]+"/index.theme")) || - QFile::exists(dir.absoluteFilePath(tmpthemes[j]+"/index.desktop")) ){ themes << tmpthemes[j]; } + if( (QFile::exists(dir.absoluteFilePath(tmpthemes[j]+"/index.theme")) || + QFile::exists(dir.absoluteFilePath(tmpthemes[j]+"/index.desktop")) ) ){ themes << tmpthemes[j]; } } } } @@ -92,34 +113,51 @@ QStringList LTHEME::availableSystemIcons(){ //returns: [name] for each item themes.sort(); return themes; } - + QStringList LTHEME::availableSystemCursors(){ //returns: [name] for each item - QStringList paths; paths << LOS::SysPrefix()+"lib/X11/icons/" << LOS::AppPrefix()+"lib/X11/icons/"; - QStringList out; + QStringList paths; + paths << QDir::homePath()+"/.icons"; + QStringList xdd = QString(getenv("XDG_DATA_HOME")).split(":"); + xdd << QString(getenv("XDG_DATA_DIRS")).split(":"); + for(int i=0; i<xdd.length(); i++){ + if(QFile::exists(xdd[i]+"/icons")){ + paths << xdd[i]+"/icons"; + } + } + //Now get all the icon themes in these directories + QStringList themes, tmpthemes; + QDir dir; for(int i=0; i<paths.length(); i++){ - if( !QFile::exists(paths[i]) ){ continue; } - QDir dir(paths[i]); - QStringList tmp = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); - for(int j=0; j<tmp.length(); j++){ - if(QFile::exists(paths[i]+tmp[j]+"/cursors")){ - out << tmp[j]; //good theme - save it to the output list - } + if(dir.cd(paths[i])){ + tmpthemes = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); + for(int j=0; j<tmpthemes.length(); j++){ + if(tmpthemes[j].startsWith("default")){ continue; } + if( QFile::exists(dir.absoluteFilePath(tmpthemes[j]+"/cursors")) ){ themes << tmpthemes[j]; } + } } } - return out; + themes.removeDuplicates(); + themes.sort(); + return themes; } //Save a new theme/color file bool LTHEME::saveLocalTheme(QString name, QStringList contents){ - QString localdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/themes/"; - if(!QFile::exists(localdir)){ QDir dir; dir.mkpath(localdir); } - return LUtils::writeFile(localdir+name+".qss.template", contents, true); + Q_UNUSED(name); + Q_UNUSED(contents); + return false; //old format - do not use!! + //QString localdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/themes/"; + //if(!QFile::exists(localdir)){ QDir dir; dir.mkpath(localdir); } + //return LUtils::writeFile(localdir+name+".qss.template", contents, true); } bool LTHEME::saveLocalColors(QString name, QStringList contents){ - QString localdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/colors/"; - if(!QFile::exists(localdir)){ QDir dir; dir.mkpath(localdir); } - return LUtils::writeFile(localdir+name+".qss.colors", contents, true); + Q_UNUSED(name); + Q_UNUSED(contents); + return false; //old format - do not use!! + // QString localdir = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/colors/"; + //if(!QFile::exists(localdir)){ QDir dir; dir.mkpath(localdir); } + //return LUtils::writeFile(localdir+name+".qss.colors", contents, true); } //Return the currently selected Theme/Colors/Icons @@ -129,21 +167,23 @@ QStringList LTHEME::currentSettings(){ //returns [theme path, colorspath, iconsn for(int i=0; i<settings.length(); i++){ if(settings[i].startsWith("THEMEFILE=")){ out[0] = settings[i].section("=",1,1).simplified(); } else if(settings[i].startsWith("COLORFILE=")){ out[1] = settings[i].section("=",1,1).simplified(); } - else if(settings[i].startsWith("ICONTHEME=")){ out[2] = settings[i].section("=",1,1).simplified(); } + //else if(settings[i].startsWith("ICONTHEME=")){ out[2] = settings[i].section("=",1,1).simplified(); } else if(settings[i].startsWith("FONTFAMILY=")){ out[3] = settings[i].section("=",1,1).simplified(); } else if(settings[i].startsWith("FONTSIZE=")){ out[4] = settings[i].section("=",1,1).simplified(); } } + QSettings engineset("lthemeengine","lthemeengine"); + out[2]=engineset.value("Appearance/icon_theme", "material-design-light").toString(); bool nofile = settings.isEmpty(); if(out[0].isEmpty() || !QFile::exists(out[0]) ){ out[0] = LOS::LuminaShare()+"themes/Lumina-default.qss.template"; } if(out[1].isEmpty() || !QFile::exists(out[1]) ){ out[1] = LOS::LuminaShare()+"colors/Lumina-Glass.qss.colors"; } if(out[3].isEmpty()){ out[3] = QFont().defaultFamily(); } - if(out[4].isEmpty()){ + if(out[4].isEmpty()){ int num = QFont().pointSize(); out[4] = QString::number(num)+"pt"; //Check point size first if(num<0){ num = QFont().pixelSize(); out[4] = QString::number(num)+"px";} //Now check pixel size if(num<0){ out[4] = "9pt"; } //Now hard-code a fallback (just in case) } if(nofile){ setCurrentSettings(out[0], out[1], out[2], out[3], out[4]); } - + return out; } @@ -167,17 +207,25 @@ QString LTHEME::currentCursor(){ //Change the current Theme/Colors/Icons bool LTHEME::setCurrentSettings(QString themepath, QString colorpath, QString iconname, QString font, QString fontsize){ - QIcon::setThemeName(iconname); - //Now save the theme settings file - QStringList contents; + Q_UNUSED(font); + Q_UNUSED(fontsize); + //QIcon::setThemeName(iconname); + //Save these settings into the theme engine settings + QSettings engineset("lthemeengine","lthemeengine"); + engineset.setValue("Appearance/icon_theme", iconname); + engineset.setValue("Appearance/custom_palette", QFile::exists(colorpath) ); + engineset.setValue("Appearance/color_scheme_path", colorpath); + engineset.setValue("Interface/desktop_stylesheets", QStringList() << themepath); + return true; + //Now save the theme settings file + /*QStringList contents; contents << "THEMEFILE="+themepath; contents << "COLORFILE="+colorpath; contents << "ICONTHEME="+iconname; contents << "FONTFAMILY="+font; contents << "FONTSIZE="+fontsize; bool ok = LUtils::writeFile(QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/themesettings.cfg", contents, true); - - return ok; + return ok;*/ } //Change the current Cursor Theme @@ -195,13 +243,13 @@ bool LTHEME::setCursorTheme(QString cursorname){ bool changed = false; QString newval = "Inherits="+cursorname; for(int i=0; i<info.length() && !changed; i++){ - if(info[i]=="[Icon Theme]"){ + if(info[i]=="[Icon Theme]"){ insection = true; - }else if( info[i].startsWith("[") && insection){ + }else if( info[i].startsWith("[") && insection){ //Section does not have the setting - add it - info.insert(i, newval); + info.insert(i, newval); changed =true; - }else if( info[i].startsWith("[") ){ + }else if( info[i].startsWith("[") ){ insection = false; }else if(insection && info[i].startsWith("Inherits=")){ info[i] = newval; //replace the current setting @@ -217,6 +265,23 @@ bool LTHEME::setCursorTheme(QString cursorname){ return LUtils::writeFile(QDir::homePath()+"/.icons/default/index.theme", info, true); } +bool LTHEME::setCurrentStyles(QStringList paths){ + //Verify that the paths are all absolute paths, otherwise scan/replace with absolute paths + QStringList avail = LTHEME::availableSystemStyles(); + for(int i=0; i<paths.length(); i++){ + paths[i] = paths[i].simplified(); + if(paths[i].startsWith("/")){ continue; } //already an absolute path + for(int j=0; j<avail.length(); j++){ + if(avail[j].startsWith(paths[i].section("/",-1).section(".qss",0,0)+"::::") ){ paths[i] = avail[j].section("::::",1,-1); break; } + } + } + //ordered by priority: lowest -> highest + QSettings engineset("lthemeengine","lthemeengine"); + engineset.setValue("Interface/stylesheets",paths); + engineset.sync(); + return true; +} + //Return the complete stylesheet for a given theme/colors QString LTHEME::assembleStyleSheet(QString themepath, QString colorpath, QString font, QString fontsize){ QString stylesheet = LUtils::readFile(themepath).join("\n"); @@ -280,13 +345,13 @@ QStringList LTHEME::cursorInformation(QString name){ } } return out; -} +} QStringList LTHEME::CustomEnvSettings(bool useronly){ //view all the key=value settings QStringList newinfo; if(!useronly){ QStringList sysfiles; sysfiles << L_ETCDIR+"/lumina_environment.conf" << LOS::LuminaShare()+"lumina_environment.conf"; - for(int i=0; i<sysfiles.length() && newinfo.isEmpty(); i++){ + for(int i=0; i<sysfiles.length() && newinfo.isEmpty(); i++){ newinfo << LUtils::readFile(sysfiles[i]); } } @@ -313,10 +378,10 @@ void LTHEME::LoadCustomEnvSettings(){ setenv(info[i].section("=",0,0).toLocal8Bit(), info[i].section("=",1,100).simplified().toLocal8Bit(), 1); } } - + } -bool LTHEME::setCustomEnvSetting(QString var, QString val){ +bool LTHEME::setCustomEnvSetting(QString var, QString val){ //variable/value pair (use an empty val to clear it) QStringList info = LTHEME::CustomEnvSettings(true); //user only bool changed = false; diff --git a/src-qt5/core/libLumina/LuminaThemes.h b/src-qt5/core/libLumina/LuminaThemes.h index 39602f58..133bd04d 100644 --- a/src-qt5/core/libLumina/LuminaThemes.h +++ b/src-qt5/core/libLumina/LuminaThemes.h @@ -25,7 +25,9 @@ class LTHEME{ public: //Read the Themes/Colors/Icons that are available on the system static QStringList availableSystemThemes();//returns: [name::::path] for each item + static QStringList availableSystemStyles();//returns: [name::::path] for each item static QStringList availableLocalThemes(); //returns: [name::::path] for each item + static QStringList availableLocalStyles(); //returns: [name::::path] for each item static QStringList availableSystemColors(); //returns: [name::::path] for each item static QStringList availableLocalColors(); //returns: [name::::path] for each item static QStringList availableSystemIcons(); //returns: [name] for each item @@ -34,7 +36,7 @@ public: //Save a new theme/color file static bool saveLocalTheme(QString name, QStringList contents); static bool saveLocalColors(QString name, QStringList contents); - + //Return the currently selected Theme/Colors/Icons static QStringList currentSettings(); //returns [theme path, colorspath, iconsname, font, fontsize] static QString currentCursor(); //returns: current cursor theme name @@ -42,19 +44,20 @@ public: //Change the current Theme/Colors/Icons static bool setCurrentSettings(QString themepath, QString colorpath, QString iconname, QString font, QString fontsize); static bool setCursorTheme(QString cursorname); + static bool setCurrentStyles(QStringList paths); //ordered by priority: lowest -> highest //Return the complete stylesheet for a given theme/colors static QString assembleStyleSheet(QString themepath, QString colorpath, QString font, QString fontsize); - + //Additional info for a cursor theme static QStringList cursorInformation(QString name); //returns: [Name, Comment, Sample Image File] - + //Environment settings static QStringList CustomEnvSettings(bool useronly = false); //view all the key=value settings static void LoadCustomEnvSettings(); //will push the custom settings into the environment (recommended before loading the initial QApplication) static bool setCustomEnvSetting(QString var, QString val); //variable/value pair (use an empty val to clear it) static QString readCustomEnvSetting(QString var); - + }; // Qt Style override to allow custom themeing/colors diff --git a/src-qt5/core/libLumina/LuminaXDG.cpp b/src-qt5/core/libLumina/LuminaXDG.cpp index 01b3305e..e1c582d9 100644 --- a/src-qt5/core/libLumina/LuminaXDG.cpp +++ b/src-qt5/core/libLumina/LuminaXDG.cpp @@ -44,7 +44,7 @@ void XDGDesktop::sync(){ //Get the current localization code type = XDGDesktop::APP; //assume this initially if we read the file properly QString lang = QLocale::system().name(); //lang code - QString slang = lang.section("_",0,0); //short lang code + QString slang = lang.section("_",0,0); //short lang code //Now start looping over the information XDGDesktopAction CDA; //current desktop action bool insection=false; @@ -53,14 +53,14 @@ void XDGDesktop::sync(){ QString line = file[i]; //if(filePath.contains("pcbsd")){ qDebug() << " - Check Line:" << line << inaction << insection; } //Check if this is the end of a section - if(line.startsWith("[") && inaction){ + if(line.startsWith("[") && inaction){ insection=false; inaction=false; //Add the current Action structure to the main desktop structure if appropriate if(!CDA.ID.isEmpty()){ actions << CDA; CDA = XDGDesktopAction(); } }else if(line.startsWith("[")){ insection=false; inaction = false; } //Now check if this is the beginning of a section if(line=="[Desktop Entry]"){ insection=true; continue; } - else if(line.startsWith("[Desktop Action ")){ + else if(line.startsWith("[Desktop Action ")){ //Grab the ID of the action out of the label CDA.ID = line.section("]",0,0).section("Desktop Action",1,1).simplified(); inaction = true; @@ -72,27 +72,28 @@ void XDGDesktop::sync(){ QString loc = var.section("[",1,1).section("]",0,0).simplified(); // localization var = var.section("[",0,0).simplified(); //remove the localization QString val = line.section("=",1,50).simplified(); + if( val.count("\"")==2 && val.startsWith("\"") && val.endsWith("\"")){ val.chop(1); val = val.remove(0,1); } //remove the starting/ending quotes //------------------- - if(var=="Name"){ + if(var=="Name"){ if(insection){ - if(name.isEmpty() && loc.isEmpty()){ name = val; } - else if(name.isEmpty() && loc==slang){ name = val; } //short locale code - else if(loc == lang){ name = val; } + if(loc==slang){ name = val;} //short locale code + else if(loc==lang){ name = val;} + else if(name.isEmpty() && loc.isEmpty()){ /*qDebug() << "Empty" << val;*/ name = val; } }else if(inaction){ if(CDA.name.isEmpty() && loc.isEmpty()){ CDA.name = val; } else if(CDA.name.isEmpty() && loc==slang){ CDA.name = val; } //short locale code - else if(loc == lang){ CDA.name = val; } + else if(loc == lang){ CDA.name = val; } } //hasName = true; - }else if(var=="GenericName" && insection){ + }else if(var=="GenericName" && insection){ if(genericName.isEmpty() && loc.isEmpty()){ genericName = val; } else if(genericName.isEmpty() && loc==slang){ genericName = val; } //short locale code else if(loc == lang){ genericName = val; } - }else if(var=="Comment" && insection){ + }else if(var=="Comment" && insection){ if(comment.isEmpty() && loc.isEmpty()){ comment = val; } else if(comment.isEmpty() && loc==slang){ comment = val; } //short locale code else if(loc == lang){ comment = val; } - }else if(var=="Icon"){ + }else if(var=="Icon"){ if(insection){ if(icon.isEmpty() && loc.isEmpty()){ icon = val; } else if(icon.isEmpty() && loc==slang){ icon = val; } //short locale code @@ -107,7 +108,7 @@ void XDGDesktop::sync(){ else if(var=="Exec"){ if(insection && exec.isEmpty() ){ exec = val; } else if(inaction && CDA.exec.isEmpty() ){ CDA.exec = val; } - } + } else if( (var=="Path") && (path.isEmpty() ) && insection){ path = val; } else if(var=="NoDisplay" && !isHidden && insection){ isHidden = (val.toLower()=="true"); } else if(var=="Hidden" && !isHidden && insection){ isHidden = (val.toLower()=="true"); } @@ -117,7 +118,7 @@ void XDGDesktop::sync(){ else if(var=="Terminal" && insection){ useTerminal= (val.toLower()=="true"); } else if(var=="Actions" && insection){ actionList = val.split(";",QString::SkipEmptyParts); } else if(var=="MimeType" && insection){ mimeList = val.split(";",QString::SkipEmptyParts); } - else if(var=="Keywords" && insection){ + else if(var=="Keywords" && insection){ if(keyList.isEmpty() && loc.isEmpty()){ keyList = val.split(";",QString::SkipEmptyParts); } else if(loc == lang){ keyList = val.split(";",QString::SkipEmptyParts); } } @@ -136,7 +137,7 @@ void XDGDesktop::sync(){ file.clear(); //done with contents of file //If there are OnlyShowIn desktops listed, add them to the name if( !showInList.isEmpty() && !showInList.contains("Lumina", Qt::CaseInsensitive) ){ - name.append(" ("+showInList.join(", ")+")"); + name.append(" ("+showInList.join(", ")+")"); } //Quick fix for showing "wine" applications (which quite often don't list a category, or have other differences) if(catList.isEmpty() && filePath.contains("/wine/")){ @@ -164,7 +165,7 @@ bool XDGDesktop::isValid(bool showAll){ //if(DEBUG){ qDebug() << "[LXDG] Check File validity:" << dFile.name << dFile.filePath; } switch (type){ case XDGDesktop::BAD: - ok=false; + ok=false; //if(DEBUG){ qDebug() << " - Bad file type"; } break; case XDGDesktop::APP: @@ -182,7 +183,7 @@ bool XDGDesktop::isValid(bool showAll){ break; default: ok=false; - //if(DEBUG){ qDebug() << " - Unknown file type"; } + //if(DEBUG){ qDebug() << " - Unknown file type"; } } if(!showAll){ QString cdesk = getenv("XDG_CURRENT_DESKTOP"); @@ -206,7 +207,7 @@ QString XDGDesktop::getDesktopExec(QString ActionID){ } } } - + if(out.isEmpty()){ return ""; } else if(useTerminal){ //Get the currently default terminal @@ -222,7 +223,7 @@ QString XDGDesktop::getDesktopExec(QString ActionID){ } //Now perform any of the XDG flag substitutions as appropriate (9/2014 standards) if(out.contains("%i") && !icon.isEmpty() ){ out.replace("%i", "--icon \""+icon+"\""); } - if(out.contains("%c")){ + if(out.contains("%c")){ if(!name.isEmpty()){ out.replace("%c", "\""+name+"\""); } else if(!genericName.isEmpty()){ out.replace("%c", "\""+genericName+"\""); } else{ out.replace("%c", "\""+filePath.section("/",-1).section(".desktop",0,0)+"\""); } @@ -236,8 +237,9 @@ QString XDGDesktop::generateExec(QStringList inputfiles, QString ActionID){ //Does the app need the input files in URL or File syntax? bool URLsyntax = (exec.contains("%u") || exec.contains("%U")); //Adjust the input file formats as needed + //qDebug() << "Got inputfiles:" << inputfiles << URLsyntax; for(int i=0; i<inputfiles.length(); i++){ - bool url = inputfiles[i].contains("://") || inputfiles[i].startsWith("www") || QUrl(inputfiles[i]).isValid(); + bool url = inputfiles[i].startsWith("www") || inputfiles[i].contains("://"); //Run it through the QUrl class to catch/fix any URL syntax issues if(URLsyntax){ if(inputfiles[i].startsWith("mailto:") ){} //don't touch this syntax - already formatted @@ -245,22 +247,25 @@ QString XDGDesktop::generateExec(QStringList inputfiles, QString ActionID){ else{ inputfiles[i] = QUrl::fromLocalFile(inputfiles[i]).url(); } }else{ //if(inputfiles[i].startsWith("mailto:") ){} //don't touch this syntax - already formatted + //qDebug() << "Need local format:" << inputfiles[i] << url; if(url){ inputfiles[i] = QUrl(inputfiles[i]).toLocalFile(); } - else{ inputfiles[i] = QUrl::fromLocalFile(inputfiles[i]).toLocalFile(); } + else{ inputfiles[i] = inputfiles[i]; } //QUrl::fromLocalFile(inputfiles[i]).toLocalFile(); } } } + inputfiles.removeAll(""); //just in case any empty ones get through //Now to the exec replacements as needed - if(exec.contains("%f")){ + //qDebug() << "Generate Exec:" << exec << inputfiles; + if(exec.contains("%f")){ if(inputfiles.isEmpty()){ exec.replace("%f",""); } else{ exec.replace("%f", "\""+inputfiles.first()+"\""); } //Note: can only take one input - }else if(exec.contains("%F")){ + }else if(exec.contains("%F")){ if(inputfiles.isEmpty()){ exec.replace("%F",""); } else{ exec.replace("%F", "\""+inputfiles.join("\" \"")+"\""); } } - if(exec.contains("%u")){ + if(exec.contains("%u")){ if(inputfiles.isEmpty()){ exec.replace("%u",""); } else{ exec.replace("%u", "\""+inputfiles.first()+"\""); } //Note: can only take one input - }else if(exec.contains("%U")){ + }else if(exec.contains("%U")){ if(inputfiles.isEmpty()){ exec.replace("%U",""); } else{ exec.replace("%U", "\""+inputfiles.join("\" \"")+"\""); } } @@ -281,7 +286,7 @@ bool XDGDesktop::saveDesktopFile(bool merge){ info = LUtils::readFile(filePath); //set a couple flags based on the contents before we start iterating through // - determine if a translated field was changed (need to remove all the now-invalid translations) - bool clearName, clearComment, clearGName; + bool clearName, clearComment, clearGName; QString tmp = ""; if(!info.filter("Name=").isEmpty()){ tmp = info.filter("Name=").first().section("=",1,50); } clearName=(tmp!=name); @@ -294,13 +299,13 @@ bool XDGDesktop::saveDesktopFile(bool merge){ //Now start iterating through the file and changing fields as necessary bool insection = false; for(int i=0; i<info.length(); i++){ - if(info[i]=="[Desktop Entry]"){ - insection = true; + if(info[i]=="[Desktop Entry]"){ + insection = true; continue; - }else if(info[i].startsWith("[")){ + }else if(info[i].startsWith("[")){ if(insection){ insertloc = i; } //save this location for later insertions - insection = false; - continue; + insection = false; + continue; } if(!insection || info[i].isEmpty() || info[i].section("#",0,0).simplified().isEmpty()){ continue; } QString var = info[i].section("=",0,0); @@ -331,25 +336,25 @@ bool XDGDesktop::saveDesktopFile(bool merge){ else if(var=="OnlyShowIn"){ info[i] = var+"="+showInList.join(";"); showInList.clear(); } else if(var=="NotShowIn"){ info[i] = var+"="+notShowInList.join(";"); notShowInList.clear(); } else if(var=="URL"){ info[i] = var+"="+url; url.clear(); } - + // --BOOLIAN VALUES-- - else if(var=="Hidden"){ + else if(var=="Hidden"){ if(!autofile){ info.removeAt(i); i--; continue; } else{ info[i] = var+"="+(isHidden ? "true": "false"); isHidden=false;} - }else if(var=="NoDisplay"){ + }else if(var=="NoDisplay"){ if(autofile){ info.removeAt(i); i--; continue; } else{ info[i] = var+"="+(isHidden ? "true": "false"); isHidden=false;} - }else if(var=="Terminal"){ + }else if(var=="Terminal"){ info[i] = var+"="+(useTerminal ? "true": "false"); useTerminal=false; - }else if(var=="StartupNotify"){ + }else if(var=="StartupNotify"){ info[i] = var+"="+(startupNotify ? "true": "false"); startupNotify=false; } // Remove any lines that have been un-set or removed from the file if(info[i].section("=",1,50).simplified().isEmpty()){ info.removeAt(i); i--; } } - + }else{ - //Just write a new file and overwrite any old one + //Just write a new file and overwrite any old one // (pre-set some values here which are always required) info << "[Desktop Entry]"; info << "Version=1.0"; @@ -357,7 +362,7 @@ bool XDGDesktop::saveDesktopFile(bool merge){ else if(type==XDGDesktop::LINK){ info << "Type=Link"; } else if(type==XDGDesktop::DIR){ info << "Type=Dir"; } } - + if(insertloc<0){ insertloc = info.size(); }//put it at the end //Now add in any items that did not exist in the original file if( !exec.isEmpty() ){ info.insert(insertloc,"Exec="+exec); } @@ -379,7 +384,7 @@ bool XDGDesktop::saveDesktopFile(bool merge){ else if(isHidden){ info.insert(insertloc,"NoDisplay=true"); } if( useTerminal){ info.insert(insertloc,"Terminal=true"); } if( startupNotify ){ info.insert(insertloc,"StartupNotify=true"); } - + //Now save the file return LUtils::writeFile(filePath, info, true); } @@ -409,7 +414,7 @@ bool XDGDesktop::setAutoStarted(bool autostart){ } } //Make sure the user-autostart dir is specified, and clean the app structure as necessary - if( !filePath.startsWith(upath) && autostart){ + if( !filePath.startsWith(upath) && autostart){ //Some other non-override autostart file - set it up to open with lumina-open if(!filePath.endsWith(".desktop")){ exec = "lumina-open \""+filePath+"\""; @@ -444,6 +449,39 @@ bool XDGDesktop::setAutoStarted(bool autostart){ return saved; } +void XDGDesktop::addToMenu(QMenu *topmenu){ + if(!this->isValid()){ return; } + if(actions.isEmpty()){ + //Just a single entry point - no extra actions + QAction *act = new QAction(this->name, topmenu); + act->setIcon(LXDG::findIcon(this->icon, "")); + act->setToolTip(this->comment); + act->setWhatsThis(this->filePath); + topmenu->addAction(act); + }else{ + //This app has additional actions - make this a sub menu + // - first the main menu/action + QMenu *submenu = new QMenu(this->name, topmenu); + submenu->setIcon( LXDG::findIcon(this->icon,"") ); + //This is the normal behavior - not a special sub-action (although it needs to be at the top of the new menu) + QAction *act = new QAction(this->name, submenu); + act->setIcon(LXDG::findIcon(this->icon, "")); + act->setToolTip(this->comment); + act->setWhatsThis(this->filePath); + submenu->addAction(act); + //Now add entries for every sub-action listed + for(int sa=0; sa<this->actions.length(); sa++){ + QAction *sact = new QAction( this->actions[sa].name, this); + sact->setIcon(LXDG::findIcon( this->actions[sa].icon, this->icon)); + sact->setToolTip(this->comment); + sact->setWhatsThis("-action \""+this->actions[sa].ID+"\" \""+this->filePath+"\""); + submenu->addAction(sact); + } + topmenu->addMenu(submenu); + } +} + + //====XDGDesktopList Functions ==== XDGDesktopList::XDGDesktopList(QObject *parent, bool watchdirs) : QObject(parent){ synctimer = new QTimer(this); //interval set automatically based on changes/interactions @@ -462,6 +500,14 @@ XDGDesktopList::~XDGDesktopList(){ //nothing special to do here } +XDGDesktopList* XDGDesktopList::instance(){ + static XDGDesktopList *APPLIST = 0; + if(APPLIST==0){ + APPLIST = new XDGDesktopList(0, true); + } + return APPLIST; +} + void XDGDesktopList::watcherChanged(){ if(synctimer->isActive()){ synctimer->stop(); } synctimer->setInterval(1000); //1 second delay before check kicks off @@ -484,7 +530,7 @@ void XDGDesktopList::updateList(){ apps = dir.entryList(QStringList() << "*.desktop",QDir::Files, QDir::Name); for(int a=0; a<apps.length(); a++){ path = dir.absoluteFilePath(apps[a]); - if(files.contains(path) && (files.value(path)->lastRead>QFileInfo(path).lastModified()) ){ + if(files.contains(path) && (files.value(path)->lastRead>QFileInfo(path).lastModified()) ){ //Re-use previous data for this file (nothing changed) found << files[path]->name; //keep track of which files were already found }else{ @@ -503,7 +549,7 @@ void XDGDesktopList::updateList(){ } //end loop over apps } //end loop over appDirs //Save the extra info to the internal lists - if(!firstrun){ + if(!firstrun){ removedApps = oldkeys;//files which were removed newApps = newfiles; //files which were added } @@ -539,12 +585,58 @@ QList<XDGDesktop*> XDGDesktopList::apps(bool showAll, bool showHidden){ return out; } +XDGDesktop* XDGDesktopList::findAppFile(QString filename){ + QStringList keys = files.keys().filter(filename); + QString chk = filename.section("/",-1); + for(int i=0; i<keys.length(); i++){ + if(keys[i] == filename || keys[i].endsWith("/"+chk)){ return files[keys[i]]; } + } + //No matches + return 0; +} + +void XDGDesktopList::populateMenu(QMenu *topmenu, bool byCategory){ + topmenu->clear(); + if(byCategory){ + QHash<QString, QList<XDGDesktop*> > APPS = LXDG::sortDesktopCats( this->apps(false,false) ); + QStringList cats = APPS.keys(); + cats.sort(); //make sure they are alphabetical + for(int i=0; i<cats.length(); i++){ + //Make sure they are translated and have the right icons + QString name, icon; + if(cats[i]=="All"){continue; } //skip this listing for the menu + else if(cats[i] == "Multimedia"){ name = tr("Multimedia"); icon = "applications-multimedia"; } + else if(cats[i] == "Development"){ name = tr("Development"); icon = "applications-development"; } + else if(cats[i] == "Education"){ name = tr("Education"); icon = "applications-education"; } + else if(cats[i] == "Game"){ name = tr("Games"); icon = "applications-games"; } + else if(cats[i] == "Graphics"){ name = tr("Graphics"); icon = "applications-graphics"; } + else if(cats[i] == "Network"){ name = tr("Network"); icon = "applications-internet"; } + else if(cats[i] == "Office"){ name = tr("Office"); icon = "applications-office"; } + else if(cats[i] == "Science"){ name = tr("Science"); icon = "applications-science"; } + else if(cats[i] == "Settings"){ name = tr("Settings"); icon = "preferences-system"; } + else if(cats[i] == "System"){ name = tr("System"); icon = "applications-system"; } + else if(cats[i] == "Utility"){ name = tr("Utility"); icon = "applications-utilities"; } + else if(cats[i] == "Wine"){ name = tr("Wine"); icon = "wine"; } + else{ name = tr("Unsorted"); icon = "applications-other"; } + + QMenu *menu = new QMenu(name, topmenu); + menu->setIcon(LXDG::findIcon(icon,"")); + QList<XDGDesktop*> appL = APPS.value(cats[i]); + for( int a=0; a<appL.length(); a++){ appL[a]->addToMenu(menu); } + topmenu->addMenu(menu); + } //end loop over cats + }else{ + QList<XDGDesktop*> APPS = this->apps(false, false); + for(int i=0; i<APPS.length(); i++){ APPS[i]->addToMenu(topmenu); } + } +} + //==== LFileInfo Functions ==== //Need some extra information not usually available by a QFileInfo -void LFileInfo::loadExtraInfo(){ +/*void LFileInfo::loadExtraInfo(){ desk = 0; //Now load the extra information - if(this->isDir()){ + if( this->suffix().isEmpty() && (this->absoluteFilePath().startsWith("/net/") || this->isDir()) ){ mime = "inode/directory"; //Special directory icons QString name = this->fileName().toLower(); @@ -557,6 +649,7 @@ void LFileInfo::loadExtraInfo(){ else if(name=="downloads"){ icon = "folder-downloads"; } else if(name=="documents"){ icon = "folder-documents"; } else if(name=="images" || name=="pictures"){ icon = "folder-image"; } + else if(this->absoluteFilePath().startsWith("/net/")){ icon = "folder-shared"; } else if( !this->isReadable() ){ icon = "folder-locked"; } }else if( this->suffix()=="desktop"){ mime = "application/x-desktop"; @@ -577,11 +670,11 @@ LFileInfo::LFileInfo(){ LFileInfo::LFileInfo(QString filepath){ //overloaded contructor this->setFile(filepath); loadExtraInfo(); -} +} LFileInfo::LFileInfo(QFileInfo info){ //overloaded contructor this->swap(info); //use the given QFileInfo without re-loading it loadExtraInfo(); -} +} //Functions for accessing the extra information // -- Return the mimetype for the file @@ -596,7 +689,7 @@ QString LFileInfo::iconfile(){ return icon; }else{ if(!mime.isEmpty()){ - QString tmp = mime; + QString tmp = mime; tmp.replace("/","-"); return tmp; }else if(this->isExecutable()){ @@ -609,7 +702,7 @@ QString LFileInfo::iconfile(){ // -- Check if this is an XDG desktop file bool LFileInfo::isDesktopFile(){ if(desk==0){ return false; } - return (!desk->filePath.isEmpty()); + return (!desk->filePath.isEmpty()); } // -- Allow access to the XDG desktop data structure @@ -617,7 +710,14 @@ XDGDesktop* LFileInfo::XDG(){ return desk; } -// -- Check if this is a readable image file (for thumbnail support) +// -- Check if this is a readable video file (for thumbnail support) +bool LFileInfo::isVideo(){ + if(!mime.startsWith("video/")){ return false; } + //Check the hardcoded list of known supported video formats to see if the thumbnail can be generated + return ( !LUtils::videoExtensions().filter(this->suffix().toLower()).isEmpty() ); +} + +// -- Check if this is a readable image file bool LFileInfo::isImage(){ if(!mime.startsWith("image/")){ return false; } //quick return for non-image files //Check the Qt subsystems to see if this image file can be read @@ -626,17 +726,20 @@ bool LFileInfo::isImage(){ bool LFileInfo::isAVFile(){ return (mime.startsWith("audio/") || mime.startsWith("video/") ); -} +}*/ //==== LXDG Functions ==== bool LXDG::checkExec(QString exec){ //Return true(good) or false(bad) + //Check for quotes around the exec, and remove them as needed + if(exec.startsWith("\"") && exec.count("\"")>=2){ exec = exec.section("\"",1,1).simplified(); } + if(exec.startsWith("\'") && exec.count("\'")>=2){ exec = exec.section("\'",1,1).simplified(); } if(exec.startsWith("/")){ return QFile::exists(exec); } else{ QStringList paths = QString(getenv("PATH")).split(":"); for(int i=0; i<paths.length(); i++){ - if(QFile::exists(paths[i]+"/"+exec)){ return true; } + if(QFile::exists(paths[i]+"/"+exec)){ return true; } } } return false; //could not find the executable in the current path(s) @@ -653,7 +756,7 @@ QStringList LXDG::systemApplicationDirs(){ for(int i=0; i<appDirs.length(); i++){ if( QFile::exists(appDirs[i]+"/applications") ){ out << appDirs[i]+"/applications"; - //Also check any subdirs within this directory + //Also check any subdirs within this directory // (looking at you KDE - stick to the standards!!) out << LUtils::listSubDirectories(appDirs[i]+"/applications"); } @@ -750,7 +853,7 @@ QIcon LXDG::findIcon(QString iconName, QString fallback){ 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()){ tmp = QIcon::fromTheme(fallback); } } if(!tmp.isNull()){ return tmp; } //found one in the theme @@ -797,7 +900,7 @@ QIcon LXDG::findIcon(QString iconName, QString fallback){ 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); @@ -832,7 +935,7 @@ QIcon LXDG::findIcon(QString iconName, QString fallback){ //simple PNG image - load directly into the QIcon structure ico.addFile(srch[i]+":"+iconName+".png"); } - + } //If still no icon found, look for any image format in the "pixmaps" directory if(ico.isNull()){ @@ -852,13 +955,13 @@ QIcon LXDG::findIcon(QString iconName, QString fallback){ break; } } - + } } //Use the fallback icon if necessary if(ico.isNull() ){ if(!fallback.isEmpty()){ ico = LXDG::findIcon(fallback,""); } - else if(iconName.contains("-x-") && !iconName.endsWith("-x-generic")){ + else if(iconName.contains("-x-") && !iconName.endsWith("-x-generic")){ //mimetype - try to use the generic type icon ico = LXDG::findIcon(iconName.section("-x-",0,0)+"-x-generic", ""); } @@ -875,7 +978,7 @@ QStringList LXDG::getChildIconDirs(QString parent){ QDir D(parent); QStringList out; QStringList dirs = D.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); - if(!dirs.isEmpty() && (dirs.contains("32x32") || dirs.contains("scalable")) ){ + if(!dirs.isEmpty() && (dirs.contains("32x32") || dirs.contains("scalable")) ){ //Need to sort these directories by image size //qDebug() << " - Parent:" << parent << "Dirs:" << dirs; for(int i=0; i<dirs.length(); i++){ @@ -923,7 +1026,7 @@ QStringList LXDG::systemMimeDirs(){ QStringList out; for(int i=0; i<appDirs.length(); i++){ if( QFile::exists(appDirs[i]+"/mime") ){ - out << appDirs[i]+"/mime"; + out << appDirs[i]+"/mime"; } } return out; @@ -934,7 +1037,7 @@ QIcon LXDG::findMimeIcon(QString extension){ QString mime = LXDG::findAppMimeForFile(extension); if(mime.isEmpty()){ mime = LXDG::findAppMimeForFile(extension.toLower()); } mime.replace("/","-"); //translate to icon mime name - if(!mime.isEmpty()){ ico = LXDG::findIcon(mime, "unknown");} //use the "unknown" mimetype icon as fallback + if(!mime.isEmpty()){ ico = LXDG::findIcon(mime, "unknown");} //use the "unknown" mimetype icon as fallback if(ico.isNull()){ ico = LXDG::findIcon("unknown",""); } //just in case return ico; } @@ -956,8 +1059,8 @@ while(mimes.isEmpty()){ return extension; } //Look for globs at the end of the filename - if(!extension.isEmpty()){ - mimes = mimefull.filter(":*."+extension); + if(!extension.isEmpty()){ + mimes = mimefull.filter(":*."+extension); //If nothing found, try a case-insensitive search if(mimes.isEmpty()){ mimes = mimefull.filter(":*."+extension, Qt::CaseInsensitive); } //Now ensure that the filter was accurate (*.<extention>.<something> will still be caught) @@ -968,7 +1071,7 @@ while(mimes.isEmpty()){ } } //Look for globs at the start of the filename - if(mimes.isEmpty()){ + if(mimes.isEmpty()){ mimes = mimefull.filter(":"+filename.left(2)); //look for the first 2 characters initially //Note: This initial filter will only work if the wildcard (*) is not within the first 2 characters of the pattern //Now ensure that the filter was accurate @@ -1191,6 +1294,7 @@ QStringList LXDG::findAvailableAppsForMime(QString mime){ } void LXDG::setDefaultAppForMime(QString mime, QString app){ + //qDebug() << "Set Default App For Mime:" << mime << app; QString filepath = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-mimeapps.list"; QStringList cinfo = LUtils::readFile(filepath); //If this is a new file, make sure to add the header appropriately diff --git a/src-qt5/core/libLumina/LuminaXDG.h b/src-qt5/core/libLumina/LuminaXDG.h index cc250c7e..066f0462 100644 --- a/src-qt5/core/libLumina/LuminaXDG.h +++ b/src-qt5/core/libLumina/LuminaXDG.h @@ -28,7 +28,8 @@ #include <QTextStream> #include <QDateTime> #include <QDebug> - +#include <QMenu> +#include <QAction> // ====================== // FreeDesktop Desktop Actions Framework (data structure) @@ -82,6 +83,9 @@ public: bool saveDesktopFile(bool merge = true); //This will use the "filePath" variable for where to save the file bool setAutoStarted(bool autostart = true); + + //Create a menu entry for this application + void addToMenu(QMenu*); }; // ======================== @@ -93,8 +97,13 @@ public: //Functions XDGDesktopList(QObject *parent = 0, bool watchdirs = false); ~XDGDesktopList(); + + static XDGDesktopList* instance(); + //Main Interface functions QList<XDGDesktop*> apps(bool showAll, bool showHidden); //showAll: include invalid files, showHidden: include NoShow/Hidden files + XDGDesktop* findAppFile(QString filename); + void populateMenu(QMenu *, bool byCategory = true); //Administration variables (not typically used directly) QDateTime lastCheck; @@ -119,7 +128,7 @@ signals: // File Information simplification class (combine QFileInfo with XDGDesktop) // Need some extra information not usually available by a QFileInfo // ======================== -class LFileInfo : public QFileInfo{ +/*class LFileInfo : public QFileInfo{ private: QString mime, icon; XDGDesktop *desk; @@ -150,9 +159,10 @@ public: //Other file type identification routines bool isImage(); //Is a readable image file (for thumbnail support) + bool isVideo(); //Is a readable video file (for thumbnail support) bool isAVFile(); //Is an audio/video file }; -typedef QList<LFileInfo> LFileInfoList; +typedef QList<LFileInfo> LFileInfoList;*/ // ================================ // Collection of FreeDesktop standards interaction routines diff --git a/src-qt5/core/libLumina/LuminaXDG.pri b/src-qt5/core/libLumina/LuminaXDG.pri index 6f3a2b7c..1a8a8368 100644 --- a/src-qt5/core/libLumina/LuminaXDG.pri +++ b/src-qt5/core/libLumina/LuminaXDG.pri @@ -1,10 +1,12 @@ QT *= multimedia svg #LUtils Files -SOURCES *= $${PWD}/LuminaXDG.cpp -HEADERS *= $${PWD}/LuminaXDG.h +SOURCES *= $${PWD}/LuminaXDG.cpp \ + $${PWD}/LFileInfo.cpp +HEADERS *= $${PWD}/LuminaXDG.h \ + $${PWD}/LFileInfo.h -INCLUDEPATH *= ${PWD} +INCLUDEPATH *= $${PWD} #include LUtils and LuminaOS include(LUtils.pri) diff --git a/src-qt5/core/libLumina/NativeEmbedWidget.cpp b/src-qt5/core/libLumina/NativeEmbedWidget.cpp deleted file mode 100644 index 487d1040..00000000 --- a/src-qt5/core/libLumina/NativeEmbedWidget.cpp +++ /dev/null @@ -1,253 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "NativeEmbedWidget.h" - -#include <QPainter> -#include <QX11Info> -#include <QDebug> - -#include <xcb/xproto.h> -#include <xcb/xcb_aux.h> -#include <xcb/xcb_image.h> -#include <xcb/composite.h> -#include <X11/extensions/Xdamage.h> - -#define DISABLE_COMPOSITING true - -#define NORMAL_WIN_EVENT_MASK (XCB_EVENT_MASK_BUTTON_PRESS | \ - XCB_EVENT_MASK_BUTTON_RELEASE | \ - XCB_EVENT_MASK_POINTER_MOTION | \ - XCB_EVENT_MASK_BUTTON_MOTION | \ - XCB_EVENT_MASK_EXPOSURE | \ - XCB_EVENT_MASK_STRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | \ - XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_ENTER_WINDOW| \ - XCB_EVENT_MASK_PROPERTY_CHANGE) - - -inline void registerClientEvents(WId id){ - uint32_t value_list[1] = {NORMAL_WIN_EVENT_MASK}; - xcb_change_window_attributes(QX11Info::connection(), id, XCB_CW_EVENT_MASK, value_list); -} - -// ============ -// PRIVATE -// ============ -//Simplification functions for the XCB/XLib interactions -void NativeEmbedWidget::syncWinSize(QSize sz){ - if(WIN==0 ){ return; } - else if(!sz.isValid()){ sz = this->size(); } //use the current widget size - //qDebug() << "Sync Window Size:" << sz; - if(sz == winSize){ return; } //no change - const uint32_t valList[2] = {(uint32_t) sz.width(), (uint32_t) sz.height()}; - const uint32_t mask = XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT; - xcb_configure_window(QX11Info::connection(), WIN->id(), mask, valList); - winSize = sz; //save this for checking later -} - -void NativeEmbedWidget::syncWidgetSize(QSize sz){ - //qDebug() << "Sync Widget Size:" << sz; - this->resize(sz); -} - -void NativeEmbedWidget::hideWindow(){ - xcb_unmap_window(QX11Info::connection(), WIN->id()); -} - -void NativeEmbedWidget::showWindow(){ - xcb_map_window(QX11Info::connection(), WIN->id()); - QTimer::singleShot(0,this, SLOT(repaintWindow())); -} - -QImage NativeEmbedWidget::windowImage(QRect geom){ - //Pull the XCB pixmap out of the compositing layer - xcb_pixmap_t pix = xcb_generate_id(QX11Info::connection()); - xcb_composite_name_window_pixmap(QX11Info::connection(), WIN->id(), pix); - if(pix==0){ qDebug() << "Got blank pixmap!"; return QImage(); } - - //Convert this pixmap into a QImage - xcb_image_t *ximg = xcb_image_get(QX11Info::connection(), pix, geom.x(), geom.y(), geom.width(), geom.height(), ~0, XCB_IMAGE_FORMAT_Z_PIXMAP); - if(ximg == 0){ qDebug() << "Got blank image!"; return QImage(); } - QImage img(ximg->data, ximg->width, ximg->height, ximg->stride, QImage::Format_ARGB32_Premultiplied); - img = img.copy(); //detach this image from the XCB data structures - xcb_image_destroy(ximg); - - //Cleanup the XCB data structures - xcb_free_pixmap(QX11Info::connection(), pix); - - return img; - -} - -// ============ -// PUBLIC -// ============ -NativeEmbedWidget::NativeEmbedWidget(QWidget *parent) : QWidget(parent){ - WIN = 0; //nothing embedded yet - paused = false; - //this->setSizeIncrement(2,2); -} - -bool NativeEmbedWidget::embedWindow(NativeWindow *window){ - WIN = window; - //PIXBACK = xcb_generate_id(QX11Info::connection()); - xcb_reparent_window(QX11Info::connection(), WIN->id(), this->winId(), 0, 0); - //Now send the embed event to the app - //qDebug() << " - send _XEMBED event"; - /*xcb_client_message_event_t event; - event.response_type = XCB_CLIENT_MESSAGE; - event.format = 32; - event.window = WIN->id(); - event.type = obj->ATOMS["_XEMBED"]; //_XEMBED - event.data.data32[0] = XCB_TIME_CURRENT_TIME; //CurrentTime; - event.data.data32[1] = 0; //XEMBED_EMBEDDED_NOTIFY - event.data.data32[2] = 0; - event.data.data32[3] = this->winId(); //WID of the container - event.data.data32[4] = 0; - - xcb_send_event(QX11Info::connection(), 0, WIN->id(), XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, (const char *) &event); - */ - //Now setup any redirects and return - if(!DISABLE_COMPOSITING){ - xcb_composite_redirect_window(QX11Info::connection(), WIN->id(), XCB_COMPOSITE_REDIRECT_MANUAL); //XCB_COMPOSITE_REDIRECT_[MANUAL/AUTOMATIC]); - xcb_composite_redirect_subwindows(QX11Info::connection(), WIN->id(), XCB_COMPOSITE_REDIRECT_MANUAL); //XCB_COMPOSITE_REDIRECT_[MANUAL/AUTOMATIC]); - - //Now create/register the damage handler - // -- XCB (Note: The XCB damage registration is completely broken at the moment - 9/15/15, Ken Moore) - // -- Retested 6/29/17 (no change) Ken Moore - //xcb_damage_damage_t dmgID = xcb_generate_id(QX11Info::connection()); //This is a typedef for a 32-bit unsigned integer - //xcb_damage_create(QX11Info::connection(), dmgID, WIN->id(), XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES); - // -- XLib (Note: This is only used because the XCB routine above does not work - needs to be fixed upstream in XCB itself). - Damage dmgID = XDamageCreate(QX11Info::display(), WIN->id(), XDamageReportRawRectangles); - - WIN->addDamageID( (uint) dmgID); //save this for later - } - WIN->addFrameWinID(this->winId()); - connect(WIN, SIGNAL(VisualChanged()), this, SLOT(repaintWindow()) ); //make sure we repaint the widget on visual change - - registerClientEvents(WIN->id()); - registerClientEvents(this->winId()); - qDebug() << "Events Registered:" << WIN->id() << this->winId(); - return true; -} - -bool NativeEmbedWidget::detachWindow(){ - xcb_reparent_window(QX11Info::connection(), WIN->id(), QX11Info::appRootWindow(), -1, -1); - WIN = 0; - return true; -} - -bool NativeEmbedWidget::isEmbedded(){ - return (WIN!=0); -} - -// ============== -// PUBLIC SLOTS -// ============== -//Pause/resume -void NativeEmbedWidget::pause(){ - if(winImage.isNull()){ repaintWindow(); } //make sure we have one image already cached first - paused = true; -} - -void NativeEmbedWidget::resume(){ - paused = false; - //syncWinSize(); - //showWindow(); - repaintWindow(); //update the cached image right away -} - -void NativeEmbedWidget::resyncWindow(){ - if(WIN==0){ return; } - /*return; //skip the stuff below (not working) - QRect geom = WIN->geometry(); - //Send an artificial configureNotify event to the window with the global position/size included - xcb_configure_notify_event_t event; - event.x = geom.x() + this->pos().x(); - event.y = geom.y() + this->pos().y(); - event.width = this->width(); - event.height = this->height(); - event.border_width = 0; - event.above_sibling = XCB_NONE; - event.override_redirect = false; - event.window = WIN->id(); - event.event = WIN->id(); - event.response_type = XCB_CONFIGURE_NOTIFY; - xcb_send_event(QX11Info::connection(), false, WIN->id(), XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY, (const char *) &event); - */ - //Just jitter the window size by 1 pixel really quick so the window knows to update it's geometry - QSize sz = this->size(); - uint32_t valList[2] = {(uint32_t) sz.width()-1, (uint32_t) sz.height()}; - uint32_t mask = XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT; - xcb_configure_window(QX11Info::connection(), WIN->id(), mask, valList); - xcb_flush(QX11Info::connection()); - valList[0] = (uint32_t) sz.width(); - xcb_configure_window(QX11Info::connection(), WIN->id(), mask, valList); - xcb_flush(QX11Info::connection()); - syncWinSize(); - QTimer::singleShot(10, this, SLOT(repaintWindow()) ); -} - -void NativeEmbedWidget::repaintWindow(){ - if(DISABLE_COMPOSITING){ return; } - //qDebug() << "Update Window Image:" << !paused; - if(paused){ return; } - QImage tmp = windowImage( QRect(QPoint(0,0), this->size()) ); - if(!tmp.isNull()){ - winImage = tmp; - }else{ qDebug() << "Got Null Image!!"; } - this->parentWidget()->update(); -} -// ============== -// PROTECTED -// ============== -void NativeEmbedWidget::resizeEvent(QResizeEvent *ev){ - QWidget::resizeEvent(ev); - if(WIN!=0){ - syncWinSize(ev->size()); - } //syncronize the window with the new widget size -} - -void NativeEmbedWidget::showEvent(QShowEvent *ev){ - if(WIN!=0){ showWindow(); } - QWidget::showEvent(ev); -} - -void NativeEmbedWidget::hideEvent(QHideEvent *ev){ - if(WIN!=0){ hideWindow(); } - QWidget::hideEvent(ev); -} - -void NativeEmbedWidget::paintEvent(QPaintEvent *ev){ - if(WIN==0 || DISABLE_COMPOSITING){ QWidget::paintEvent(ev); return; } - else if( winImage.isNull() ){ /*QTimer::singleShot(0, this, SLOT(repaintWindow()) );*/ return; } - else if(paused){ return; } - //else if(this->size()!=winSize){ QTimer::singleShot(0,this, SLOT(syncWinSize())); return; } //do not paint here - waiting to re-sync the sizes - //else if(this->size() != winImage.size()){ QTimer::singleShot(0, this, SLOT(repaintWindow()) ); return; } - //Need to paint the image from the window onto the widget as an overlay - QRect geom = ev->rect(); //atomic updates - geom.adjust(-10,-10,10,10); //add an additional few pixels in each direction to be painted - geom = geom.intersected(QRect(0,0,this->width(), this->height())); //ensure intersection with actual window - if( !QRect(QPoint(0,0),winImage.size()).contains(geom) ){ QTimer::singleShot(0,this, SLOT(repaintWindow()) );return; } - QPainter P(this); - P.setClipping(true); - P.setClipRect(0,0,this->width(), this->height()); - //qDebug() << "Paint Embed Window:" << geom << winImage.size(); - if(winImage.size() == this->size()){ - P.drawImage( geom , winImage, geom, Qt::NoOpaqueDetection); //1-to-1 mapping - //Note: Qt::NoOpaqueDetection Speeds up the paint by bypassing the checks to see if there are [semi-]transparent pixels - // Since this is an embedded image - we fully expect there to be transparency all/most of the time. - }else{ - P.drawImage( geom , winImage); - } - //else{ QImage scaled = winImage.scaled(geom.size()); P.drawImage(geom, scaled); } - //P.drawImage( geom , winImage, geom, Qt::NoOpaqueDetection); //1-to-1 mapping - //Note: Qt::NoOpaqueDetection Speeds up the paint by bypassing the checks to see if there are [semi-]transparent pixels - // Since this is an embedded image - we fully expect there to be transparency all/most of the time. - -} diff --git a/src-qt5/core/libLumina/NativeEmbedWidget.h b/src-qt5/core/libLumina/NativeEmbedWidget.h deleted file mode 100644 index 65e03c51..00000000 --- a/src-qt5/core/libLumina/NativeEmbedWidget.h +++ /dev/null @@ -1,63 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is a container object for embedding a native window into a QWidget -// and maintaining a 1-to-1 mapping of sizing and other properties -// while also providing compositing effects between the two windows -//=========================================== -#ifndef _LUMINA_NATIVE_EMBED_WIDGET_H -#define _LUMINA_NATIVE_EMBED_WIDGET_H - -#include "NativeWindow.h" -#include <QWidget> -#include <QTimer> -#include <QResizeEvent> -#include <QShowEvent> -#include <QHideEvent> -#include <QPaintEvent> - -class NativeEmbedWidget : public QWidget{ - Q_OBJECT -private: - NativeWindow *WIN; - QSize winSize; - QImage winImage; - bool paused; - -private slots: - //Simplification functions - void syncWinSize(QSize sz = QSize()); - void syncWidgetSize(QSize sz); - void hideWindow(); - void showWindow(); - QImage windowImage(QRect geom); - - -public: - NativeEmbedWidget(QWidget *parent); - - bool embedWindow(NativeWindow *window); - bool detachWindow(); - bool isEmbedded(); //status of the embed - - - -public slots: - //Pause/resume - void pause(); - void resume(); - - void resyncWindow(); - void repaintWindow(); - -protected: - void resizeEvent(QResizeEvent *ev); - void showEvent(QShowEvent *ev); - void hideEvent(QHideEvent *ev); - void paintEvent(QPaintEvent *ev); -}; - -#endif diff --git a/src-qt5/core/libLumina/NativeEventFilter.cpp b/src-qt5/core/libLumina/NativeEventFilter.cpp deleted file mode 100644 index 354dbe76..00000000 --- a/src-qt5/core/libLumina/NativeEventFilter.cpp +++ /dev/null @@ -1,297 +0,0 @@ -//=========================================== -// Lumina-desktop source code -// Copyright (c) 2015-2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "NativeEventFilter.h" -#include <QCoreApplication> -#include <QDebug> - -//#include <xcb/xcb_aux.h> -//#include <xcb/damage.h> - -//================================================== -// NOTE: All the XCB interactions and atoms are accessed via: -// obj->XCB->EWMH.(atom name) -// obj->XCB->(do something) -//================================================== - -/* -List of XCB response types (since almost impossible to find good docs on XCB) -switch (xcb_generic_event_t*->response_type & ~0x80) -case values: -XCB_KEY_[PRESS | RELEASE] -XCB_BUTTON_[PRESS | RELEASE] -XCB_MOTION_NOTIFY -XCB_ENTER_NOTIFY -XCB_LEAVE_NOTIFY -XCB_FOCUS_[IN | OUT] -XCB_KEYMAP_NOTIFY -XCB_EXPOSE -XCB_GRAPHICS_EXPOSURE -XCB_VISIBILITY_NOTIFY -XCB_CREATE_NOTIFY -XCB_DESTROY_NOTIFY -XCB_UNMAP_NOTIFY -XCB_MAP_[NOTIFY | REQUEST] -XCB_REPARENT_NOTIFY -XCB_CONFIGURE_[NOTIFY | REQUEST] -XCB_GRAVITY_NOTIFY -XCB_RESIZE_REQUEST -XCB_CIRCULATE_[NOTIFY | REQUEST] -XCB_PROPERTY_NOTIFY -XCB_SELECTION_[CLEAR | REQUEST | NOTIFY] -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 - -//#include <LuminaX11.h> -#include <QX11Info> -#include <xcb/xcb_ewmh.h> -#include <xcb/xcb_keysyms.h> -#include <xcb/damage.h> - -#define DEBUG 0 - -//Special objects/variables for XCB parsing -static xcb_ewmh_connection_t EWMH; -//static LXCB *XCB = 0; -static xcb_atom_t _NET_SYSTEM_TRAY_OPCODE = 0; - -inline void ParsePropertyEvent(xcb_property_notify_event_t *ev, NativeEventFilter *obj){ - qDebug() << "Got Property Event:" << ev->window << ev->atom; - NativeWindow::Property prop = NativeWindow::None; - //Now determine which properties are getting changed, and update the native window as appropriate - if(ev->atom == EWMH._NET_WM_NAME){ prop = NativeWindow::Title; } - else if(ev->atom == EWMH._NET_WM_ICON){ prop = NativeWindow::Icon; } - else if(ev->atom == EWMH._NET_WM_ICON_NAME){ prop = NativeWindow::ShortTitle; } - else if(ev->atom == EWMH._NET_WM_DESKTOP){ prop = NativeWindow::Workspace; } - else if(ev->atom == EWMH._NET_WM_WINDOW_TYPE ){ prop = NativeWindow::WinTypes; } - else if( ev->atom == EWMH._NET_WM_STATE){ prop = NativeWindow::States; } - //Send out the signal if necessary - if(prop!=NativeWindow::None){ - //if(DEBUG){ - qDebug() << "Detected Property Change:" << ev->window << prop; - //} - obj->emit WindowPropertyChanged(ev->window, prop); - }else{ - //qDebug() << "Unknown Property Change:" << ev->window << ev->atom; - } -} - -inline void ParseClientMessageEvent(xcb_client_message_event_t *ev, NativeEventFilter *obj){ - NativeWindow::Property prop = NativeWindow::None; - QVariant val; - if(ev->type==EWMH._NET_WM_NAME){ prop = NativeWindow::Title; } - else if(ev->type==EWMH._NET_WM_ICON){ prop = NativeWindow::Icon; } - else if(ev->type==EWMH._NET_WM_ICON_NAME){ prop = NativeWindow::ShortTitle; } - else if(ev->type==EWMH._NET_WM_DESKTOP){ - prop = NativeWindow::Workspace; - val = QVariant( (int) ev->data.data32[0] ); - }else if(ev->type==EWMH._NET_WM_WINDOW_TYPE){ prop = NativeWindow::WinTypes; } - else if(ev->type==EWMH._NET_WM_STATE){ prop = NativeWindow::States; } - - if(prop!=NativeWindow::None){ - //if(DEBUG){ - qDebug() << "Detected Property Change Request:" << ev->window << prop; //} - if(val.isNull()){ obj->emit WindowPropertyChanged(ev->window, prop); } - else{ obj->emit RequestWindowPropertyChange(ev->window, prop, val); } - } - -} - - -//Constructor for the Event Filter wrapper -NativeEventFilter::NativeEventFilter() : QObject(){ - EF = new EventFilter(this); - if(EWMH.nb_screens <=0){ - xcb_intern_atom_cookie_t *cookie = xcb_ewmh_init_atoms(QX11Info::connection(), &EWMH); - if(!xcb_ewmh_init_atoms_replies(&EWMH, cookie, NULL) ){ - qDebug() << "Error with XCB atom initializations"; - } - } - if(_NET_SYSTEM_TRAY_OPCODE==0){ - //_NET_SYSTEM_TRAY_OPCODE - xcb_intern_atom_cookie_t cookie = xcb_intern_atom(QX11Info::connection(), 0, 23,"_NET_SYSTEM_TRAY_OPCODE"); - xcb_intern_atom_reply_t *r = xcb_intern_atom_reply(QX11Info::connection(), cookie, NULL); - if(r){ - _NET_SYSTEM_TRAY_OPCODE = r->atom; - free(r); - } - } -} - -void NativeEventFilter::start(){ - if(DEBUG){ qDebug() << " - Install event filter..."; } - QCoreApplication::instance()->installNativeEventFilter(EF); - if(DEBUG){ qDebug() << " - Run request check..."; } - -} - -void NativeEventFilter::stop(){ - QCoreApplication::instance()->installNativeEventFilter(0); -} - -//============================= -// EventFilter Class -//============================= - -//Constructor for the XCB event filter -EventFilter::EventFilter(NativeEventFilter *parent) : QAbstractNativeEventFilter(){ - obj = parent; -} - -//This function format taken directly from the Qt5.3 documentation -bool EventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *){ - //qDebug() << "New Event"; - if(eventType=="xcb_generic_event_t"){ - //Convert to known event type (for X11 systems) - xcb_generic_event_t *ev = static_cast<xcb_generic_event_t *>(message); - //Now parse the event and emit signals as necessary - switch( ev->response_type & ~0x80){ -//============================== -// INTERACTIVITY EVENTS -//============================== - case XCB_KEY_PRESS: - //This is a keyboard key press - //qDebug() << "Key Press Event" - obj->emit KeyPressed( ((xcb_key_press_event_t *) ev)->detail, ((xcb_key_press_event_t *) ev)->root ); - break; - case XCB_KEY_RELEASE: - //This is a keyboard key release - //qDebug() << "Key Release Event"; - obj->emit KeyReleased( ((xcb_key_release_event_t *) ev)->detail, ((xcb_key_release_event_t *) ev)->root ); - break; - case XCB_BUTTON_PRESS: - //This is a mouse button press - //qDebug() << "Button Press Event"; - obj->emit MousePressed( ((xcb_button_press_event_t *) ev)->detail, ((xcb_button_press_event_t *) ev)->root ); - break; - case XCB_BUTTON_RELEASE: - //This is a mouse button release - //qDebug() << "Button Release Event"; - obj->emit MouseReleased( ((xcb_button_release_event_t *) ev)->detail, ((xcb_button_release_event_t *) ev)->root ); - break; - case XCB_MOTION_NOTIFY: - //This is a mouse movement event - if(DEBUG){ qDebug() << "Motion Notify Event"; } - obj->emit MouseMovement(); - break; - case XCB_ENTER_NOTIFY: - //This is a mouse movement event when mouse goes over a new window - //qDebug() << "Enter Notify Event"; - obj->emit MouseEnterWindow( ((xcb_enter_notify_event_t *) ev)->root ); - break; - case XCB_LEAVE_NOTIFY: - //This is a mouse movement event when mouse goes leaves a window - //qDebug() << "Leave Notify Event"; - obj->emit MouseLeaveWindow( ((xcb_leave_notify_event_t *) ev)->root ); - break; -//============================== - case XCB_EXPOSE: - //qDebug() << "Expose Notify Event:"; - //qDebug() << " - Given Window:" << ((xcb_property_notify_event_t*)ev)->window; - break; -//============================== - case XCB_MAP_NOTIFY: - //qDebug() << "Window Map Event:" << ((xcb_map_notify_event_t *)ev)->window; - obj->emit WindowPropertyChanged( ((xcb_map_notify_event_t *)ev)->window, NativeWindow::Visible, true); - break; //This is just a notification that a window was mapped - nothing needs to change here - case XCB_MAP_REQUEST: - //qDebug() << "Window Map Request Event"; - obj->emit WindowCreated( ((xcb_map_request_event_t *) ev)->window ); - break; -//============================== - case XCB_CREATE_NOTIFY: - //qDebug() << "Window Create Event"; - break; -//============================== - case XCB_UNMAP_NOTIFY: - //qDebug() << "Window Unmap Event:" << ((xcb_unmap_notify_event_t *)ev)->window; - obj->emit WindowPropertyChanged( ((xcb_map_notify_event_t *)ev)->window, NativeWindow::Visible, false); - break; -//============================== - case XCB_DESTROY_NOTIFY: - //qDebug() << "Window Closed Event:" << ((xcb_destroy_notify_event_t *)ev)->window; - obj->emit WindowDestroyed( ((xcb_destroy_notify_event_t *) ev)->window ); - break; -//============================== - case XCB_FOCUS_IN: - //qDebug() << "Focus In Event:"; - break; -//============================== - case XCB_FOCUS_OUT: - //qDebug() << "Focus Out Event:"; - break; -//============================== - case XCB_PROPERTY_NOTIFY: - //qDebug() << "Property Notify Event:"; - ParsePropertyEvent((xcb_property_notify_event_t*)ev, obj); - break; -//============================== - 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]){ - obj->emit TrayWindowCreated( ((xcb_client_message_event_t*)ev)->data.data32[2] ); - //addTrayApp( ((xcb_client_message_event_t*)ev)->data.data32[2] ); - } - //Ignore the System Tray messages at the moment - }else if(((xcb_client_message_event_t*)ev)->window != QX11Info::appRootWindow()){ - ParseClientMessageEvent((xcb_client_message_event_t*)ev, obj); - } - break; -//============================== - case XCB_CONFIGURE_NOTIFY: - //qDebug() << "Configure Notify Event"; - /*obj->emit WindowPropertiesChanged( ((xcb_configure_notify_event_t*)ev)->window, - QList<NativeWindow::Property>() << NativeWindow::GlobalPos << NativeWindow::Size, - QList<QVariant>() << QPoint(((xcb_configure_notify_event_t*)ev)->x, ((xcb_configure_notify_event_t*)ev)->y) << - QSize(((xcb_configure_notify_event_t*)ev)->width, ((xcb_configure_notify_event_t*)ev)->height) );*/ - obj->emit WindowPropertyChanged( ((xcb_configure_notify_event_t*)ev)->window, NativeWindow::Size, - QSize(((xcb_configure_notify_event_t*)ev)->width, ((xcb_configure_notify_event_t*)ev)->height) ); - break; -//============================== - case XCB_CONFIGURE_REQUEST: - //qDebug() << "Configure Request Event"; - obj->emit RequestWindowPropertiesChange( ((xcb_configure_request_event_t*)ev)->window, - QList<NativeWindow::Property>() << NativeWindow::GlobalPos << NativeWindow::Size, - QList<QVariant>() << QPoint(((xcb_configure_request_event_t*)ev)->x, ((xcb_configure_request_event_t*)ev)->y) << - QSize(((xcb_configure_request_event_t*)ev)->width, ((xcb_configure_request_event_t*)ev)->height) ); - break; -//============================== - case XCB_RESIZE_REQUEST: - //qDebug() << "Resize Request Event"; - obj->emit RequestWindowPropertyChange( ((xcb_resize_request_event_t*)ev)->window, - NativeWindow::Size, QSize(((xcb_resize_request_event_t*)ev)->width, ((xcb_resize_request_event_t*)ev)->height) ); - break; -//============================== - case XCB_SELECTION_CLEAR: - //qDebug() << "Selection Clear Event"; - break; -//============================== - case 85: //not sure what event this is - but it seems to come up very often (just hide the notice) - case 0: - case XCB_GE_GENERIC: - break; //generic event - don't do anything special - default: - //if( (ev->response_type & ~0x80)==TrayDmgID){ - obj->emit PossibleDamageEvent( ((xcb_damage_notify_event_t*)ev)->drawable ); - //checkDamageID( ((xcb_damage_notify_event_t*)ev)->drawable ); - //}else{ - //qDebug() << "Default Event:" << (ev->response_type & ~0x80); - //} -//============================== - } - } - return false; - //never stop event handling (this will not impact the X events themselves - just the internal Qt application) -} diff --git a/src-qt5/core/libLumina/NativeEventFilter.h b/src-qt5/core/libLumina/NativeEventFilter.h deleted file mode 100644 index 2b184f99..00000000 --- a/src-qt5/core/libLumina/NativeEventFilter.h +++ /dev/null @@ -1,70 +0,0 @@ -//=========================================== -// Lumina-DE source code -// 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 event handling/registrations that are needed -//=========================================== -#ifndef _LUMINA_DESKTOP_NATIVE_EVENT_FILTER_H -#define _LUMINA_DESKTOP_NATIVE_EVENT_FILTER_H - -#include <QAbstractNativeEventFilter> -#include <QObject> -#include <QByteArray> - -#include "NativeWindow.h" - - -class NativeEventFilter : public QObject{ - Q_OBJECT -private: - QAbstractNativeEventFilter* EF; - WId WMFlag; //used to flag a running WM process - -public: - NativeEventFilter(); - ~NativeEventFilter(){} - - void start(); - void stop(); - -signals: - //Window Signals - void WindowCreated(WId); - void WindowDestroyed(WId); - void WindowPropertyChanged(WId, NativeWindow::Property); - void WindowPropertyChanged(WId, NativeWindow::Property, QVariant); - void WindowPropertiesChanged(WId, QList<NativeWindow::Property>, QList<QVariant>); - void RequestWindowPropertyChange(WId, NativeWindow::Property, QVariant); - void RequestWindowPropertiesChange(WId, QList<NativeWindow::Property>, QList<QVariant>); - - //System Tray Signals - void TrayWindowCreated(WId); - void TrayWindowDestroyed(WId); - - //Miscellaneos Signals - void PossibleDamageEvent(WId); - - //Input Event Signals - void KeyPressed(int, WId); - void KeyReleased(int, WId); - void MousePressed(int, WId); - void MouseReleased(int, WId); - void MouseMovement(); - void MouseEnterWindow(WId); - void MouseLeaveWindow(WId); -}; - -class EventFilter : public QAbstractNativeEventFilter{ -public: - EventFilter(NativeEventFilter *parent); - ~EventFilter(){} - - virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *); - -private: - NativeEventFilter *obj; -}; - -#endif diff --git a/src-qt5/core/libLumina/NativeKeyToQt.cpp b/src-qt5/core/libLumina/NativeKeyToQt.cpp deleted file mode 100644 index 06056be7..00000000 --- a/src-qt5/core/libLumina/NativeKeyToQt.cpp +++ /dev/null @@ -1,528 +0,0 @@ - -#include <NativeWindowSystem.h> - -#include <QKeySequence> -#include <QX11Info> - -// XCB/X11 Includes -#define XK_MISCELLANY -#define XK_XKB_KEYS -#define XK_LATIN1 -#define XK_LATIN2 -#define XK_LATIN3 -#define XK_LATIN4 -#define XK_LATIN8 -#define XK_LATIN9 -//NOTE: Look at the keysymdef.h file for additional define/characters which we may need later -#include <X11/keysymdef.h> -#include <xcb/xcb_keysyms.h> - - -//Small simplification functions -Qt::Key NativeWindowSystem::KeycodeToQt(int keycode){ - static xcb_key_symbols_t *SYM = 0; - if(SYM==0){ SYM = xcb_key_symbols_alloc(QX11Info::connection()); } - xcb_keysym_t symbol = xcb_key_symbols_get_keysym(SYM, keycode,0); - //not sure about the "column" input - we want raw keys though so ignore the "modified" key states (columns) for now - //qDebug() << "Try to convert keycode to Qt::Key:" << keycode << symbol; - //Now map this symbol to the appropriate Qt::Key enumeration - switch(symbol){ - //FUNCTION KEYS - case XK_F1: return Qt::Key_F1; - case XK_F2: return Qt::Key_F2; - case XK_F3: return Qt::Key_F3; - case XK_F4: return Qt::Key_F4; - case XK_F5: return Qt::Key_F5; - case XK_F6: return Qt::Key_F6; - case XK_F7: return Qt::Key_F7; - case XK_F8: return Qt::Key_F8; - case XK_F9: return Qt::Key_F9; - case XK_F10: return Qt::Key_F10; - case XK_F11: return Qt::Key_F11; - case XK_F12: return Qt::Key_F12; - case XK_F13: return Qt::Key_F13; - case XK_F14: return Qt::Key_F14; - case XK_F15: return Qt::Key_F15; - case XK_F16: return Qt::Key_F16; - case XK_F17: return Qt::Key_F17; - case XK_F18: return Qt::Key_F18; - case XK_F19: return Qt::Key_F19; - case XK_F20: return Qt::Key_F20; - case XK_F21: return Qt::Key_F21; - case XK_F22: return Qt::Key_F22; - case XK_F23: return Qt::Key_F23; - case XK_F24: return Qt::Key_F24; - case XK_F25: return Qt::Key_F25; - case XK_F26: return Qt::Key_F26; - case XK_F27: return Qt::Key_F27; - case XK_F28: return Qt::Key_F28; - case XK_F29: return Qt::Key_F29; - case XK_F30: return Qt::Key_F30; - case XK_F31: return Qt::Key_F31; - case XK_F32: return Qt::Key_F32; - case XK_F33: return Qt::Key_F33; - case XK_F34: return Qt::Key_F34; - case XK_F35: return Qt::Key_F35; - //Miscellaneous Keys - case XK_BackSpace: return Qt::Key_Backspace; - case XK_Delete: return Qt::Key_Delete; - //case XK_LineFeed: return Qt::Key_Backspace; - case XK_Clear: return Qt::Key_Clear; - case XK_Return: return Qt::Key_Return; - case XK_Pause: return Qt::Key_Pause; - case XK_Scroll_Lock: return Qt::Key_ScrollLock; - case XK_Sys_Req: return Qt::Key_SysReq; - case XK_Escape: return Qt::Key_Escape; - case XK_Select: return Qt::Key_Select; - case XK_Print: return Qt::Key_Print; - //case XK_Execute: return Qt::Key_Execute; - case XK_Insert: return Qt::Key_Insert; - case XK_Undo: return Qt::Key_Undo; - case XK_Redo: return Qt::Key_Redo; - case XK_Menu: return Qt::Key_Menu; - case XK_Find: return Qt::Key_Find; - case XK_Cancel: return Qt::Key_Cancel; - case XK_Help: return Qt::Key_Help; - //case XK_Break: return Qt::Key_Break; - //case XK_Mode_switch: return Qt::Key_Backspace; - //case XK_script_switch: return Qt::Key_Backspace; - case XK_Num_Lock: return Qt::Key_NumLock; - //Cursor Controls - case XK_Home: return Qt::Key_Home; - case XK_Left: return Qt::Key_Left; - case XK_Up: return Qt::Key_Up; - case XK_Right: return Qt::Key_Right; - case XK_Down: return Qt::Key_Down; - //case XK_Prior: return Qt::Key_Backspace; - case XK_Page_Up: return Qt::Key_PageUp; - case XK_Page_Down: return Qt::Key_PageDown; - //case XK_Next: return Qt::Key_Backspace; - case XK_End: return Qt::Key_End; - //case XK_Begin: return Qt::Key_Backspace; - // Keypad Functions and numbers - case XK_KP_Space: return Qt::Key_Space; - case XK_KP_Tab: return Qt::Key_Tab; - case XK_KP_Enter: return Qt::Key_Enter; - case XK_KP_F1: return Qt::Key_F1; - case XK_KP_F2: return Qt::Key_F2; - case XK_KP_F3: return Qt::Key_F3; - case XK_KP_F4: return Qt::Key_F4; - case XK_KP_Home: return Qt::Key_Home; - case XK_KP_Left: return Qt::Key_Left; - case XK_KP_Up: return Qt::Key_Up; - case XK_KP_Right: return Qt::Key_Right; - case XK_KP_Down: return Qt::Key_Down; - //case XK_KP_Prior: return Qt::Key_ - case XK_KP_Page_Up: return Qt::Key_PageUp; - //case XK_KP_Next: return Qt::Key_ - case XK_KP_Page_Down: return Qt::Key_PageDown; - case XK_KP_End: return Qt::Key_End; - //case XK_KP_Begin: return Qt::Key_ - case XK_KP_Insert: return Qt::Key_Insert; - case XK_KP_Delete: return Qt::Key_Delete; - case XK_KP_Equal: return Qt::Key_Equal; - case XK_KP_Multiply: return Qt::Key_Asterisk; - case XK_KP_Add: return Qt::Key_Plus; - case XK_KP_Separator: return Qt::Key_Comma; //X11 definitions say this is often comma - case XK_KP_Subtract: return Qt::Key_Minus; - case XK_KP_Decimal: return Qt::Key_Period; - case XK_KP_Divide: return Qt::Key_Slash; - case XK_KP_0: return Qt::Key_0; - case XK_KP_1: return Qt::Key_1; - case XK_KP_2: return Qt::Key_2; - case XK_KP_3: return Qt::Key_3; - case XK_KP_4: return Qt::Key_4; - case XK_KP_5: return Qt::Key_5; - case XK_KP_6: return Qt::Key_6; - case XK_KP_7: return Qt::Key_7; - case XK_KP_8: return Qt::Key_8; - case XK_KP_9: return Qt::Key_9; - // Modifier Keys - case XK_Shift_L: return Qt::Key_Shift; - case XK_Shift_R: return Qt::Key_Shift; - case XK_Control_L: return Qt::Key_Control; - case XK_Control_R: return Qt::Key_Control; - case XK_Caps_Lock: return Qt::Key_CapsLock; - //case XK_Shift_Lock: return Qt::Key_ShiftLock; - case XK_Meta_L: return Qt::Key_Meta; - case XK_Meta_R: return Qt::Key_Meta; - case XK_Alt_L: return Qt::Key_Alt; - case XK_Alt_R: return Qt::Key_Alt; - case XK_Super_L: return Qt::Key_Super_L; - case XK_Super_R: return Qt::Key_Super_R; - case XK_Hyper_L: return Qt::Key_Hyper_L; - case XK_Hyper_R: return Qt::Key_Hyper_R; - case XK_space: return Qt::Key_Space; - case XK_exclam: return Qt::Key_Exclam; - case XK_quotedbl: return Qt::Key_QuoteDbl; - case XK_numbersign: return Qt::Key_NumberSign; - case XK_dollar: return Qt::Key_Dollar; - case XK_percent: return Qt::Key_Percent; - case XK_ampersand: return Qt::Key_Ampersand; - case XK_apostrophe: return Qt::Key_Apostrophe; - case XK_parenleft: return Qt::Key_ParenLeft; - case XK_parenright: return Qt::Key_ParenRight; - case XK_asterisk: return Qt::Key_Asterisk; - case XK_plus: return Qt::Key_Plus; - case XK_comma: return Qt::Key_Comma; - case XK_minus: return Qt::Key_Minus; - case XK_period: return Qt::Key_Period; - case XK_slash: return Qt::Key_Slash; - case XK_0: return Qt::Key_0; - case XK_1: return Qt::Key_1; - case XK_2: return Qt::Key_2; - case XK_3: return Qt::Key_3; - case XK_4: return Qt::Key_4; - case XK_5: return Qt::Key_5; - case XK_6: return Qt::Key_6; - case XK_7: return Qt::Key_7; - case XK_8: return Qt::Key_8; - case XK_9: return Qt::Key_9; - case XK_colon: return Qt::Key_Colon; - case XK_semicolon: return Qt::Key_Semicolon; - case XK_less: return Qt::Key_Less; - case XK_equal: return Qt::Key_Equal; - case XK_greater: return Qt::Key_Greater; - case XK_question: return Qt::Key_Question; - case XK_at: return Qt::Key_At; - case XK_A: return Qt::Key_A; - case XK_B: return Qt::Key_B; - case XK_C: return Qt::Key_C; - case XK_D: return Qt::Key_D; - case XK_E: return Qt::Key_E; - case XK_F: return Qt::Key_F; - case XK_G: return Qt::Key_G; - case XK_H: return Qt::Key_H; - case XK_I: return Qt::Key_I; - case XK_J: return Qt::Key_J; - case XK_K: return Qt::Key_K; - case XK_L: return Qt::Key_L; - case XK_M: return Qt::Key_M; - case XK_N: return Qt::Key_N; - case XK_O: return Qt::Key_O; - case XK_P: return Qt::Key_P; - case XK_Q: return Qt::Key_Q; - case XK_R: return Qt::Key_R; - case XK_S: return Qt::Key_S; - case XK_T: return Qt::Key_T; - case XK_U: return Qt::Key_U; - case XK_V: return Qt::Key_V; - case XK_W: return Qt::Key_W; - case XK_X: return Qt::Key_X; - case XK_Y : return Qt::Key_Y; - case XK_Z: return Qt::Key_Z; - case XK_bracketleft: return Qt::Key_BracketLeft; - case XK_backslash: return Qt::Key_Backslash; - case XK_bracketright: return Qt::Key_BracketRight; - case XK_asciicircum: return Qt::Key_AsciiCircum; - case XK_underscore: return Qt::Key_Underscore; - case XK_grave: return Qt::Key_Agrave; - case XK_a: return Qt::Key_A; - case XK_b: return Qt::Key_B; - case XK_c: return Qt::Key_C; - case XK_d: return Qt::Key_D; - case XK_e: return Qt::Key_E; - case XK_f : return Qt::Key_F; - case XK_g: return Qt::Key_G; - case XK_h: return Qt::Key_H; - case XK_i: return Qt::Key_I; - case XK_j: return Qt::Key_J; - case XK_k: return Qt::Key_K; - case XK_l: return Qt::Key_L; - case XK_m: return Qt::Key_M; - case XK_n: return Qt::Key_N; - case XK_o: return Qt::Key_O; - case XK_p: return Qt::Key_P; - case XK_q: return Qt::Key_Q; - case XK_r: return Qt::Key_R; - case XK_s: return Qt::Key_S; - case XK_t : return Qt::Key_T; - case XK_u: return Qt::Key_U; - case XK_v: return Qt::Key_V; - case XK_w: return Qt::Key_W; - case XK_x: return Qt::Key_X; - case XK_y: return Qt::Key_Y; - case XK_z: return Qt::Key_Z; - case XK_braceleft: return Qt::Key_BraceLeft; - case XK_bar: return Qt::Key_Bar; - case XK_braceright: return Qt::Key_BraceRight; - case XK_asciitilde: return Qt::Key_AsciiTilde; - - case XK_nobreakspace: return Qt::Key_nobreakspace; - case XK_exclamdown: return Qt::Key_exclamdown; - case XK_cent: return Qt::Key_cent; - case XK_sterling: return Qt::Key_sterling; - case XK_currency: return Qt::Key_currency; - case XK_yen: return Qt::Key_yen; - case XK_brokenbar: return Qt::Key_brokenbar; - case XK_section: return Qt::Key_section; - case XK_diaeresis: return Qt::Key_diaeresis; - case XK_copyright: return Qt::Key_copyright; - case XK_ordfeminine: return Qt::Key_ordfeminine; - case XK_guillemotleft: return Qt::Key_guillemotleft; - case XK_notsign: return Qt::Key_notsign; - case XK_hyphen: return Qt::Key_hyphen; - case XK_registered: return Qt::Key_registered; - case XK_macron: return Qt::Key_macron; - case XK_degree: return Qt::Key_degree; - case XK_plusminus: return Qt::Key_plusminus; - case XK_twosuperior: return Qt::Key_twosuperior; - case XK_threesuperior: return Qt::Key_threesuperior; - case XK_acute: return Qt::Key_acute; - case XK_mu: return Qt::Key_mu; - case XK_paragraph: return Qt::Key_paragraph; - case XK_periodcentered: return Qt::Key_periodcentered; - case XK_cedilla: return Qt::Key_cedilla; - case XK_onesuperior: return Qt::Key_onesuperior; - case XK_masculine: return Qt::Key_masculine; - case XK_guillemotright: return Qt::Key_guillemotright; - case XK_onequarter: return Qt::Key_onequarter; - case XK_onehalf: return Qt::Key_onehalf; - case XK_threequarters: return Qt::Key_threequarters; - case XK_questiondown: return Qt::Key_questiondown; - case XK_Agrave: return Qt::Key_Agrave; - case XK_Aacute: return Qt::Key_Aacute; - case XK_Acircumflex: return Qt::Key_Acircumflex; - case XK_Atilde: return Qt::Key_Atilde; - case XK_Adiaeresis: return Qt::Key_Adiaeresis; - case XK_Aring: return Qt::Key_Aring; - case XK_AE: return Qt::Key_AE; - case XK_Ccedilla: return Qt::Key_Ccedilla; - case XK_Egrave: return Qt::Key_Egrave; - case XK_Eacute: return Qt::Key_Eacute; - case XK_Ecircumflex: return Qt::Key_Ecircumflex; - case XK_Ediaeresis: return Qt::Key_Ediaeresis; - case XK_Igrave: return Qt::Key_Igrave; - case XK_Iacute: return Qt::Key_Iacute; - case XK_Icircumflex: return Qt::Key_Icircumflex; - case XK_Idiaeresis: return Qt::Key_Idiaeresis; - case XK_ETH: return Qt::Key_ETH; - //case XK_Eth: return Qt::Key_Eth; - case XK_Ntilde: return Qt::Key_Ntilde; - case XK_Ograve: return Qt::Key_Ograve; - case XK_Oacute: return Qt::Key_Oacute; - case XK_Ocircumflex: return Qt::Key_Ocircumflex; - case XK_Otilde: return Qt::Key_Otilde; - case XK_Odiaeresis: return Qt::Key_Odiaeresis; - case XK_multiply: return Qt::Key_multiply; - //case XK_Oslash: return Qt::Key_AsciiTilde; - case XK_Ooblique: return Qt::Key_Ooblique; - case XK_Ugrave: return Qt::Key_Ugrave; - case XK_Uacute: return Qt::Key_Uacute; - case XK_Ucircumflex: return Qt::Key_Ucircumflex; - case XK_Udiaeresis: return Qt::Key_Udiaeresis; - case XK_Yacute: return Qt::Key_Yacute; - case XK_THORN: return Qt::Key_THORN; - //case XK_Thorn: return Qt::Key_AsciiTilde; - case XK_ssharp: return Qt::Key_ssharp; - /*case XK_agrave: return Qt::Key_AsciiTilde; - case XK_aacute: return Qt::Key_AsciiTilde; - case XK_acircumflex: return Qt::Key_AsciiTilde; - case XK_atilde: return Qt::Key_AsciiTilde; - case XK_adiaeresis: return Qt::Key_AsciiTilde; - case XK_aring: return Qt::Key_AsciiTilde; - case XK_ae: return Qt::Key_AsciiTilde; - case XK_ccedilla: return Qt::Key_AsciiTilde; - case XK_egrave: return Qt::Key_AsciiTilde; - case XK_eacute: return Qt::Key_AsciiTilde; - case XK_ecircumflex: return Qt::Key_AsciiTilde; - case XK_ediaeresis: return Qt::Key_AsciiTilde; - case XK_igrave: return Qt::Key_AsciiTilde; - case XK_iacute: return Qt::Key_AsciiTilde; - case XK_icircumflex: return Qt::Key_AsciiTilde; - case XK_idiaeresis: return Qt::Key_AsciiTilde; - case XK_eth: return Qt::Key_AsciiTilde; - case XK_ntilde: return Qt::Key_AsciiTilde; - case XK_ograve: return Qt::Key_AsciiTilde; - case XK_oacute: return Qt::Key_AsciiTilde; - case XK_ocircumflex: return Qt::Key_AsciiTilde; - case XK_otilde: return Qt::Key_AsciiTilde; - case XK_odiaeresis: return Qt::Key_AsciiTilde; - case XK_division: return Qt::Key_AsciiTilde; - case XK_oslash: return Qt::Key_AsciiTilde; - case XK_ooblique: return Qt::Key_AsciiTilde; - case XK_ugrave: return Qt::Key_AsciiTilde; - case XK_uacute: return Qt::Key_AsciiTilde; - case XK_ucircumflex: return Qt::Key_AsciiTilde; - case XK_udiaeresis: return Qt::Key_AsciiTilde; - case XK_yacute: return Qt::Key_AsciiTilde; - case XK_thorn: return Qt::Key_AsciiTilde; - case XK_ydiaeresis: return Qt::Key_AsciiTilde; - - case: XK_Agonek: return Qt::Key_AsciiTilde; - case XK_breve: return Qt::Key_AsciiTilde; - case XK_Lstroke: return Qt::Key_AsciiTilde; - case XK_Lcaron: return Qt::Key_AsciiTilde; - case XK_Sacute: return Qt::Key_AsciiTilde; - case XK_Scaron: return Qt::Key_AsciiTilde; - case XK_Scedilla: return Qt::Key_AsciiTilde; - case XK_Tcaron: return Qt::Key_AsciiTilde; - case XK_Zacute: return Qt::Key_AsciiTilde; - case XK_Zcaron: return Qt::Key_AsciiTilde; - case XK_Zabovedot: return Qt::Key_AsciiTilde; - case XK_aogonek: return Qt::Key_AsciiTilde; - case XK_ogonek: return Qt::Key_AsciiTilde; - case XK_lstroke: return Qt::Key_AsciiTilde; - case XK_lcaron: return Qt::Key_AsciiTilde; - case XK_sacute: return Qt::Key_AsciiTilde; - case XK_caron: return Qt::Key_AsciiTilde; - case XK_scaron: return Qt::Key_AsciiTilde; - case XK_scedilla: return Qt::Key_AsciiTilde; - case XK_tcaron: return Qt::Key_AsciiTilde; - case XK_zacute: return Qt::Key_AsciiTilde; - case XK_doubleacute: return Qt::Key_AsciiTilde; - case XK_zcaron: return Qt::Key_AsciiTilde; - case XK_zabovedot: return Qt::Key_AsciiTilde; - case XK_Racute: return Qt::Key_AsciiTilde; - case XK_Abreve: return Qt::Key_AsciiTilde; - case XK_Lacute: return Qt::Key_AsciiTilde; - case XK_Cacute: return Qt::Key_AsciiTilde; - case XK_Ccaron: return Qt::Key_AsciiTilde; - case XK_Eogonek: return Qt::Key_AsciiTilde; - case XK_Ecaron: return Qt::Key_AsciiTilde; - case XK_Dcaron: return Qt::Key_AsciiTilde; - case XK_Dstroke: return Qt::Key_AsciiTilde; - case XK_Nacute: return Qt::Key_AsciiTilde; - case XK_Ncaron: return Qt::Key_AsciiTilde; - case XK_Odoubleacute: return Qt::Key_AsciiTilde; - case XK_Rcaron: return Qt::Key_AsciiTilde; - case XK_Uring: return Qt::Key_AsciiTilde; - case XK_Udoubleacute: return Qt::Key_AsciiTilde; - case XK_Tcedilla: return Qt::Key_AsciiTilde; - case XK_racute: return Qt::Key_AsciiTilde; - case XK_abreve: return Qt::Key_AsciiTilde; - case XK_lacute: return Qt::Key_AsciiTilde; - case XK_cacute: return Qt::Key_AsciiTilde; - case XK_ccaron: return Qt::Key_AsciiTilde; - case XK_eogonek: return Qt::Key_AsciiTilde; - case XK_ecaron: return Qt::Key_AsciiTilde; - case XK_dcaron: return Qt::Key_AsciiTilde; - case XK_dstroke: return Qt::Key_AsciiTilde; - case XK_nacute: return Qt::Key_AsciiTilde; - case XK_ncaron: return Qt::Key_AsciiTilde; - case XK_odoubleacute: return Qt::Key_AsciiTilde; - case XK_rcaron: return Qt::Key_AsciiTilde; - case XK_uring: return Qt::Key_AsciiTilde; - case XK_udoubleacute: return Qt::Key_AsciiTilde; - case XK_tcedilla: return Qt::Key_AsciiTilde; - case XK_abovedot: return Qt::Key_AsciiTilde; - case XK_Hstroke: return Qt::Key_AsciiTilde; - case XK_Hcircumflex: return Qt::Key_AsciiTilde; - case XK_Iabovedot: return Qt::Key_AsciiTilde; - case XK_Gbreve: return Qt::Key_AsciiTilde; - case XK_Jcircumflex: return Qt::Key_AsciiTilde; - case XK_hstroke: return Qt::Key_AsciiTilde; - case XK_hcircumflex: return Qt::Key_AsciiTilde; - case XK_idotless: return Qt::Key_AsciiTilde; - case XK_gbreve: return Qt::Key_AsciiTilde; - case XK_jcircumflex: return Qt::Key_AsciiTilde; - case XK_Cabovedot: return Qt::Key_AsciiTilde; - case XK_Ccircumflex: return Qt::Key_AsciiTilde; - case XK_Gabovedot: return Qt::Key_AsciiTilde; - case XK_Gcircumflex: return Qt::Key_AsciiTilde; - case XK_Ubreve: return Qt::Key_AsciiTilde; - case XK_Scircumflex: return Qt::Key_AsciiTilde; - case XK_cabovedot: return Qt::Key_AsciiTilde; - case XK_ccircumflex: return Qt::Key_AsciiTilde; - case XK_gabovedot: return Qt::Key_AsciiTilde; - case XK_gcircumflex: return Qt::Key_AsciiTilde; - case XK_ubreve: return Qt::Key_AsciiTilde; - case XK_scircumflex: return Qt::Key_AsciiTilde; - case XK_kra: return Qt::Key_AsciiTilde; - case XK_kappa: return Qt::Key_AsciiTilde; - case XK_Rcedilla: return Qt::Key_AsciiTilde; - case XK_Itilde: return Qt::Key_AsciiTilde; - case XK_Lcedilla: return Qt::Key_AsciiTilde; - case XK_Emacron: return Qt::Key_AsciiTilde; - case XK_Gcedilla: return Qt::Key_AsciiTilde; - case XK_Tslash: return Qt::Key_AsciiTilde; - case XK_rcedilla: return Qt::Key_AsciiTilde; - case XK_itilde: return Qt::Key_AsciiTilde; - case XK_lcedilla: return Qt::Key_AsciiTilde; - case XK_emacron: return Qt::Key_AsciiTilde; - case XK_gcedilla: return Qt::Key_AsciiTilde; - case XK_tslash: return Qt::Key_AsciiTilde; - case XK_ENG: return Qt::Key_AsciiTilde; - case XK_eng: return Qt::Key_AsciiTilde; - case XK_Amacron: return Qt::Key_AsciiTilde; - case XK_Iogonek: return Qt::Key_AsciiTilde; - case XK_Eabovedot: return Qt::Key_AsciiTilde; - case XK_Imacron: return Qt::Key_AsciiTilde; - case XK_Ncedilla: return Qt::Key_AsciiTilde; - case XK_Omacron: return Qt::Key_AsciiTilde; - case XK_Kcedilla: return Qt::Key_AsciiTilde; - case XK_Uogonek: return Qt::Key_AsciiTilde; - case XK_Utilde: return Qt::Key_AsciiTilde; - case XK_Umacron: return Qt::Key_AsciiTilde; - case XK_amacron: return Qt::Key_AsciiTilde; - case XK_iogonek: return Qt::Key_AsciiTilde; - case XK_eabovedot: return Qt::Key_AsciiTilde; - case XK_imacron: return Qt::Key_AsciiTilde; - case XK_ncedilla: return Qt::Key_AsciiTilde; - case XK_omacron: return Qt::Key_AsciiTilde; - case XK_kcedilla: return Qt::Key_AsciiTilde; - case XK_uogonek: return Qt::Key_AsciiTilde; - case XK_utilde: return Qt::Key_AsciiTilde; - case XK_umacron: return Qt::Key_AsciiTilde; - case XK_Wcircumflex: return Qt::Key_AsciiTilde; - case XK_wcircumflex: return Qt::Key_AsciiTilde; - case XK_Ycircumflex: return Qt::Key_AsciiTilde; - case XK_ycircumflex: return Qt::Key_AsciiTilde; - case XK_Babovedot: return Qt::Key_AsciiTilde; - case XK_babovedot: return Qt::Key_AsciiTilde; - case XK_Dabovedot: return Qt::Key_AsciiTilde; - case XK_dabovedot: return Qt::Key_AsciiTilde; - case XK_Fabovedot: return Qt::Key_AsciiTilde; - case XK_fabovedot: return Qt::Key_AsciiTilde; - case XK_Mabovedot: return Qt::Key_AsciiTilde; - case XK_mabovedot: return Qt::Key_AsciiTilde; - case XK_Pabovedot: return Qt::Key_AsciiTilde; - case XK_pabovedot: return Qt::Key_AsciiTilde; - case XK_Sabovedot: return Qt::Key_AsciiTilde; - case XK_sabovedot: return Qt::Key_AsciiTilde; - case XK_Tabovedot: return Qt::Key_AsciiTilde; - case XK_tabovedot: return Qt::Key_AsciiTilde; - case XK_Wgrave: return Qt::Key_AsciiTilde; - case XK_wgrave: return Qt::Key_AsciiTilde; - case XK_Wacute: return Qt::Key_AsciiTilde; - case XK_wacute: return Qt::Key_AsciiTilde; - case XK_Wdiaeresis: return Qt::Key_AsciiTilde; - case XK_wdiaeresis: return Qt::Key_AsciiTilde; - case XK_Ygrave: return Qt::Key_AsciiTilde; - case XK_ygrave: return Qt::Key_AsciiTilde; - case XK_OE: return Qt::Key_AsciiTilde; - case XK_oe: return Qt::Key_AsciiTilde; - case XK_Ydiaeresis: return Qt::Key_AsciiTilde;*/ - default: - qDebug() << "Unknown Key"; - } - qDebug() << " -- Simple Qt Map:" << (Qt::Key)(symbol); - qDebug() << " -- Key Sequence Map:" << QKeySequence(symbol); - qDebug() << " - Not implemented yet"; - return Qt::Key_unknown; -} - -NativeWindowSystem::MouseButton NativeWindowSystem::MouseToQt(int keycode){ - switch(keycode){ - case 1: - return NativeWindowSystem::LeftButton; - case 3: - return NativeWindowSystem::RightButton; - case 2: - return NativeWindowSystem::MidButton; - case 4: - return NativeWindowSystem::WheelUp; - case 5: - return NativeWindowSystem::WheelDown; - case 6: - return NativeWindowSystem::WheelLeft; - case 7: - return NativeWindowSystem::WheelRight; - case 8: - return NativeWindowSystem::BackButton; //Not sure if this is correct yet (1/27/17) - case 9: - return NativeWindowSystem::ForwardButton; //Not sure if this is correct yet (1/27/17) - default: - return NativeWindowSystem::NoButton; - } -} diff --git a/src-qt5/core/libLumina/NativeWindow.cpp b/src-qt5/core/libLumina/NativeWindow.cpp deleted file mode 100644 index 3c76ed00..00000000 --- a/src-qt5/core/libLumina/NativeWindow.cpp +++ /dev/null @@ -1,119 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "NativeWindow.h" - -#include <QDebug> - -// === PUBLIC === -NativeWindow::NativeWindow(WId id) : QObject(){ - winid = id; - frameid = 0; - dmgID = 0; -} - -NativeWindow::~NativeWindow(){ - hash.clear(); -} - -void NativeWindow::addFrameWinID(WId fid){ - frameid = fid; -} - -void NativeWindow::addDamageID(unsigned int dmg){ - dmgID = dmg; -} - -bool NativeWindow::isRelatedTo(WId tmp){ - return (relatedTo.contains(tmp) || winid == tmp || frameid == tmp); -} - -WId NativeWindow::id(){ - return winid; -} - -WId NativeWindow::frameId(){ - return frameid; -} - -unsigned int NativeWindow::damageId(){ - return dmgID; -} - -QVariant NativeWindow::property(NativeWindow::Property prop){ - if(hash.contains(prop)){ return hash.value(prop); } - else if(prop == NativeWindow::RelatedWindows){ return QVariant::fromValue(relatedTo); } - return QVariant(); //null variant -} - -void NativeWindow::setProperty(NativeWindow::Property prop, QVariant val, bool force){ - if(prop == NativeWindow::RelatedWindows){ relatedTo = val.value< QList<WId> >(); } - else if(prop == NativeWindow::None || (!force && hash.value(prop)==val)){ return; } - else{ hash.insert(prop, val); } - emit PropertiesChanged(QList<NativeWindow::Property>() << prop, QList<QVariant>() << val); -} - -void NativeWindow::setProperties(QList<NativeWindow::Property> props, QList<QVariant> vals, bool force){ - for(int i=0; i<props.length(); i++){ - if(i>=vals.length()){ props.removeAt(i); i--; continue; } //no corresponding value for this property - if(props[i] == NativeWindow::None || (!force && (hash.value(props[i]) == vals[i])) ){ props.removeAt(i); vals.removeAt(i); i--; continue; } //Invalid property or identical value - hash.insert(props[i], vals[i]); - } - emit PropertiesChanged(props, vals); -} - -void NativeWindow::requestProperty(NativeWindow::Property prop, QVariant val, bool force){ - if(prop == NativeWindow::None || prop == NativeWindow::RelatedWindows || (!force && hash.value(prop)==val) ){ return; } - emit RequestPropertiesChange(winid, QList<NativeWindow::Property>() << prop, QList<QVariant>() << val); -} - -void NativeWindow::requestProperties(QList<NativeWindow::Property> props, QList<QVariant> vals, bool force){ - //Verify/adjust inputs as needed - for(int i=0; i<props.length(); i++){ - if(i>=vals.length()){ props.removeAt(i); i--; continue; } //no corresponding value for this property - if(props[i] == NativeWindow::None || props[i] == NativeWindow::RelatedWindows || (!force && hash.value(props[i])==vals[i]) ){ props.removeAt(i); vals.removeAt(i); i--; continue; } //Invalid property or identical value - /*if( (props[i] == NativeWindow::Visible || props[i] == NativeWindow::Active) && frameid !=0){ - //These particular properties needs to change the frame - not the window itself - emit RequestPropertiesChange(frameid, QList<NativeWindow::Property>() << props[i], QList<QVariant>() << vals[i]); - props.removeAt(i); vals.removeAt(i); i--; - }*/ - } - emit RequestPropertiesChange(winid, props, vals); -} - -QRect NativeWindow::geometry(){ - //Calculate the "full" geometry of the window + frame (if any) - //Check that the size is between the min/max limitations - QSize size = hash.value(NativeWindow::Size).toSize(); - QSize min = hash.value(NativeWindow::MinSize).toSize(); - QSize max = hash.value(NativeWindow::MaxSize).toSize(); - if(min.isValid() && min.width() > size.width() ){ size.setWidth(min.width()); } - if(min.isValid() && min.height() > size.height()){ size.setHeight(min.height()); } - if(max.isValid() && max.width() < size.width() && max.width()>min.width()){ size.setWidth(max.width()); } - if(max.isValid() && max.height() < size.height() && max.height()>min.height()){ size.setHeight(max.height()); } - //Assemble the full geometry - QRect geom( hash.value(NativeWindow::GlobalPos).toPoint(), size ); - //Now adjust the window geom by the frame margins - QList<int> frame = hash.value(NativeWindow::FrameExtents).value< QList<int> >(); //Left,Right,Top,Bottom - //qDebug() << "Calculate Geometry:" << geom << frame; - if(frame.length()==4){ - geom = geom.adjusted( -frame[0], -frame[2], frame[1], frame[3] ); - } - //qDebug() << " - Total:" << geom; - return geom; -} -// ==== PUBLIC SLOTS === -void NativeWindow::requestClose(){ - emit RequestClose(winid); -} - -void NativeWindow::requestKill(){ - emit RequestKill(winid); -} - -void NativeWindow::requestPing(){ - emit RequestPing(winid); -} diff --git a/src-qt5/core/libLumina/NativeWindow.h b/src-qt5/core/libLumina/NativeWindow.h deleted file mode 100644 index d04815ce..00000000 --- a/src-qt5/core/libLumina/NativeWindow.h +++ /dev/null @@ -1,117 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is a container object for setting/announcing changes -// in a native window's properties. -// The WM will usually run the "setProperty" function on this object, -// and any other classes/widgets which watch this window can act appropriatly after-the-fact -// Non-WM classes should use the "Request" signals to ask the WM to do something, and listen for changes later -//=========================================== -#ifndef _LUMINA_DESKTOP_NATIVE_WINDOW_H -#define _LUMINA_DESKTOP_NATIVE_WINDOW_H - -#include <QString> -#include <QRect> -#include <QSize> -#include <QObject> -#include <QWindow> -#include <QHash> -#include <QVariant> - -class NativeWindow : public QObject{ - Q_OBJECT -public: - enum State{ S_MODAL, S_STICKY, S_MAX_VERT, S_MAX_HORZ, S_SHADED, S_SKIP_TASKBAR, S_SKIP_PAGER, S_HIDDEN, S_FULLSCREEN, S_ABOVE, S_BELOW, S_ATTENTION }; - enum Type{T_DESKTOP, T_DOCK, T_TOOLBAR, T_MENU, T_UTILITY, T_SPLASH, T_DIALOG, T_DROPDOWN_MENU, T_POPUP_MENU, T_TOOLTIP, T_NOTIFICATION, T_COMBO, T_DND, T_NORMAL }; - enum Action {A_MOVE, A_RESIZE, A_MINIMIZE, A_SHADE, A_STICK, A_MAX_VERT, A_MAX_HORZ, A_FULLSCREEN, A_CHANGE_DESKTOP, A_CLOSE, A_ABOVE, A_BELOW}; - - enum Property{ /*QVariant Type*/ - None=0, /*null*/ - MinSize=1, /*QSize*/ - MaxSize=2, /*QSize*/ - Size=3, /*QSize*/ - GlobalPos=4, /*QPoint*/ - Title=5, /*QString*/ - ShortTitle=6, /*QString*/ - Icon=7, /*QIcon*/ - Name=8, /*QString*/ - Workspace=9, /*int*/ - States=10, /*QList<NativeWindow::State> : Current state of the window */ - WinTypes=11, /*QList<NativeWindow::Type> : Current type of window (typically does not change)*/ - WinActions=12, /*QList<NativeWindow::Action> : Current actions that the window allows (Managed/set by the WM)*/ - FrameExtents=13, /*QList<int> : [Left, Right, Top, Bottom] in pixels */ - RelatedWindows=14, /* QList<WId> - better to use the "isRelatedTo(WId)" function instead of reading this directly*/ - Active=15, /*bool*/ - Visible=16 /*bool*/ - }; - - static QList<NativeWindow::Property> allProperties(){ - //Return all the available properties (excluding "None" and "FrameExtents" (WM control only) ) - QList<NativeWindow::Property> props; - props << MinSize << MaxSize << Size << GlobalPos << Title << ShortTitle << Icon << Name << Workspace \ - << States << WinTypes << WinActions << RelatedWindows << Active << Visible; - return props; - }; - - NativeWindow(WId id); - ~NativeWindow(); - - void addFrameWinID(WId); - void addDamageID(unsigned int); - bool isRelatedTo(WId); - - WId id(); - WId frameId(); - unsigned int damageId(); - - //QWindow* window(); - - QVariant property(NativeWindow::Property); - void setProperty(NativeWindow::Property, QVariant, bool force = false); - void setProperties(QList<NativeWindow::Property>, QList<QVariant>, bool force = false); - void requestProperty(NativeWindow::Property, QVariant, bool force = false); - void requestProperties(QList<NativeWindow::Property>, QList<QVariant>, bool force = false); - - QRect geometry(); //this returns the "full" geometry of the window (window + frame) - -public slots: - void requestClose(); //ask the app to close the window (may/not depending on activity) - void requestKill(); //ask the WM to kill the app associated with this window (harsh - only use if not responding) - void requestPing(); //ask the app if it is still active (a WindowNotResponding signal will get sent out if there is no reply); - -private: - QHash <NativeWindow::Property, QVariant> hash; - //QWindow *WIN; - WId winid, frameid; - QList<WId> relatedTo; - unsigned int dmgID; - -signals: - //General Notifications - void PropertiesChanged(QList<NativeWindow::Property>, QList<QVariant>); - void RequestPropertiesChange(WId, QList<NativeWindow::Property>, QList<QVariant>); - void WindowClosed(WId); - void WindowNotResponding(WId); //will be sent out if a window does not respond to a ping request - void VisualChanged(); - - //Action Requests (not automatically emitted - typically used to ask the WM to do something) - //Note: "WId" should be the NativeWindow id() - void RequestClose(WId); //Close the window - void RequestKill(WId); //Kill the window/app (usually from being unresponsive) - void RequestPing(WId); //Verify that the window is still active (such as not closing after a request - void RequestReparent(WId, WId, QPoint); //client window, frame window, relative origin point in frame - // System Tray Icon Embed/Unembed Requests - //void RequestEmbed(WId, QWidget*); - //void RequestUnEmbed(WId, QWidget*); -}; - -// Declare the enumerations as Qt MetaTypes -Q_DECLARE_METATYPE(NativeWindow::Type); -Q_DECLARE_METATYPE(NativeWindow::Action); -Q_DECLARE_METATYPE(NativeWindow::State); -Q_DECLARE_METATYPE(NativeWindow::Property); - -#endif diff --git a/src-qt5/core/libLumina/NativeWindow.pri b/src-qt5/core/libLumina/NativeWindow.pri deleted file mode 100644 index c2ac0137..00000000 --- a/src-qt5/core/libLumina/NativeWindow.pri +++ /dev/null @@ -1,17 +0,0 @@ - -# Files -QT *= x11extras -LIBS *= -lc -lxcb -lxcb-ewmh -lxcb-icccm -lxcb-image -lxcb-composite -lxcb-damage -lxcb-util -lxcb-keysyms -lXdamage - -SOURCES *= $${PWD}/NativeWindow.cpp \ - $${PWD}/NativeWindowSystem.cpp \ - $${PWD}/NativeKeyToQt.cpp \ - $${PWD}/NativeEventFilter.cpp \ - $${PWD}/NativeEmbedWidget.cpp - -HEADERS *= $${PWD}/NativeWindow.h \ - $${PWD}/NativeWindowSystem.h \ - $${PWD}/NativeEventFilter.h \ - $${PWD}/NativeEmbedWidget.h - -INCLUDEPATH *= $${PWD} diff --git a/src-qt5/core/libLumina/NativeWindowSystem.cpp b/src-qt5/core/libLumina/NativeWindowSystem.cpp deleted file mode 100644 index 71e95a0e..00000000 --- a/src-qt5/core/libLumina/NativeWindowSystem.cpp +++ /dev/null @@ -1,900 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is the XCB version of the NativeWindowSystem class, -// used for interacting with the X11 display system on BSD/Linux/Unix systems -//=========================================== -#include "NativeWindowSystem.h" - -//Additional Qt includes -#include <QX11Info> -#include <QDebug> -#include <QApplication> -#include <QScreen> -#include <QFont> -#include <QFontMetrics> -#include <QKeySequence> - - -//XCB Library includes -#include <xcb/xcb.h> -#include <xcb/xcb_atom.h> -#include <xcb/xproto.h> -#include <xcb/xcb_ewmh.h> -#include <xcb/xcb_icccm.h> -#include <xcb/xcb_image.h> -#include <xcb/xcb_aux.h> -#include <xcb/composite.h> -#include <xcb/damage.h> - -//XLib includes (XCB Damage lib does not appear to register for damage events properly) -#include <X11/extensions/Xdamage.h> - -//SYSTEM TRAY STANDARD DEFINITIONS -#define _NET_SYSTEM_TRAY_ORIENTATION_HORZ 0 -#define _NET_SYSTEM_TRAY_ORIENTATION_VERT 1 -#define SYSTEM_TRAY_REQUEST_DOCK 0 -#define SYSTEM_TRAY_BEGIN_MESSAGE 1 -#define SYSTEM_TRAY_CANCEL_MESSAGE 2 - -#define URGENCYHINT (1L << 8) //For window urgency detection - -#define ROOT_WIN_EVENT_MASK (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | \ - XCB_EVENT_MASK_BUTTON_PRESS | \ - XCB_EVENT_MASK_STRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | \ - XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_POINTER_MOTION | \ - XCB_EVENT_MASK_PROPERTY_CHANGE | \ - XCB_EVENT_MASK_FOCUS_CHANGE | \ - XCB_EVENT_MASK_ENTER_WINDOW) - -#define NORMAL_WIN_EVENT_MASK (XCB_EVENT_MASK_BUTTON_PRESS | \ - XCB_EVENT_MASK_BUTTON_RELEASE | \ - XCB_EVENT_MASK_POINTER_MOTION | \ - XCB_EVENT_MASK_BUTTON_MOTION | \ - XCB_EVENT_MASK_EXPOSURE | \ - XCB_EVENT_MASK_STRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | \ - XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_ENTER_WINDOW| \ - XCB_EVENT_MASK_PROPERTY_CHANGE) - -inline void registerClientEvents(WId id){ - uint32_t value_list[1] = {NORMAL_WIN_EVENT_MASK}; - xcb_change_window_attributes(QX11Info::connection(), id, XCB_CW_EVENT_MASK, value_list); -} - -//Internal XCB private objects class -class NativeWindowSystem::p_objects{ -public: - xcb_ewmh_connection_t EWMH; //This is where all the screen info and atoms are located - QHash<QString, xcb_atom_t> ATOMS; - xcb_screen_t *root_screen; - xcb_window_t root_window, wm_window, tray_window; - - //Functions for setting up these objects as needed - bool init_ATOMS(){ - xcb_intern_atom_cookie_t *cookie = xcb_ewmh_init_atoms(QX11Info::connection(), &EWMH); - if(!xcb_ewmh_init_atoms_replies(&EWMH, cookie, NULL) ){ - qDebug() << "Error with XCB atom initializations"; - return false; - } - - QStringList atoms; - atoms << "WM_TAKE_FOCUS" << "WM_DELETE_WINDOW" << "WM_PROTOCOLS" << "_NET_WM_WINDOW_OPACITY" - << "WM_CHANGE_STATE" << "_NET_SYSTEM_TRAY_OPCODE" << "_NET_SYSTEM_TRAY_ORIENTATION" << "_XEMBED" - << "_NET_SYSTEM_TRAY_VISUAL" << QString("_NET_SYSTEM_TRAY_S%1").arg(QString::number(QX11Info::appScreen())); - //Create all the requests for the atoms - QList<xcb_intern_atom_reply_t*> reply; - for(int i=0; i<atoms.length(); i++){ - reply << xcb_intern_atom_reply(QX11Info::connection(), \ - xcb_intern_atom(QX11Info::connection(), 0, atoms[i].length(), atoms[i].toLocal8Bit()), NULL); - } - //Now evaluate all the requests and save the atoms - for(int i=0; i<reply.length(); i++){ //NOTE: this will always be the same length as the "atoms" list - if(reply[i]!=0){ - ATOMS.insert(atoms[i], reply[i]->atom); - free(reply[i]); //done with this reply - }else{ - //Invalid atom - could not be created - qDebug() << "Could not initialize XCB atom:" << atoms[i]; - } - } //loop over reply - return (ATOMS.keys().length() == atoms.length()); - } - - WId getTransientFor(WId win){ - xcb_get_property_cookie_t cookie = xcb_icccm_get_wm_transient_for_unchecked(QX11Info::connection(), win); - xcb_window_t trans; - if(1!= xcb_icccm_get_wm_transient_for_reply(QX11Info::connection(), cookie, &trans, NULL) ){ - return win; //error in fetching transient window ID (or none found) - }else{ - return trans; - } -} - - bool register_wm(){ - uint32_t value_list[1] = {ROOT_WIN_EVENT_MASK}; - xcb_generic_error_t *status = xcb_request_check( QX11Info::connection(), xcb_change_window_attributes_checked(QX11Info::connection(), root_window, XCB_CW_EVENT_MASK, value_list)); - if(status!=0){ return false; } - uint32_t params[] = {1}; - wm_window = xcb_generate_id(QX11Info::connection()); //need a new ID - xcb_create_window(QX11Info::connection(), root_screen->root_depth, \ - wm_window, root_window, -1, -1, 1, 1, 0, \ - XCB_WINDOW_CLASS_INPUT_OUTPUT, root_screen->root_visual, \ - XCB_CW_OVERRIDE_REDIRECT, params); - if(wm_window==0){ return false; } - //Set the _NET_SUPPORTING_WM property on the root window first - xcb_ewmh_set_supporting_wm_check(&EWMH, root_window, wm_window); - //Also set this property on the child window (pointing to itself) - xcb_ewmh_set_supporting_wm_check(&EWMH, wm_window, wm_window); - //Now also setup the root event mask on the wm_window - status = xcb_request_check( QX11Info::connection(), xcb_change_window_attributes_checked(QX11Info::connection(), wm_window, XCB_CW_EVENT_MASK, value_list)); - if(status!=0){ return false; } - return true; - } - - bool start_system_tray(){ - xcb_atom_t _NET_SYSTEM_TRAY_S = ATOMS.value( QString("_NET_SYSTEM_TRAY_S%1").arg(QString::number(QX11Info::appScreen())) ); - //Make sure that there is no other system tray running - xcb_get_selection_owner_reply_t *ownreply = xcb_get_selection_owner_reply(QX11Info::connection(), \ - xcb_get_selection_owner_unchecked(QX11Info::connection(), _NET_SYSTEM_TRAY_S), NULL); - if(ownreply == 0){ - qWarning() << " - Could not get owner selection reply"; - return false; - }else if(ownreply->owner != 0){ - free(ownreply); - qWarning() << " - An alternate system tray is currently in use"; - return false; - } - free(ownreply); - //Now create the window to use (just offscreen) - tray_window = xcb_generate_id(QX11Info::connection()); //need a new ID - uint32_t params[] = {1}; - xcb_create_window(QX11Info::connection(), root_screen->root_depth, \ - tray_window, root_screen->root, -1, -1, 1, 1, 0, \ - XCB_WINDOW_CLASS_INPUT_OUTPUT, root_screen->root_visual, \ - XCB_CW_OVERRIDE_REDIRECT, params); - //Now register this widget as the system tray - xcb_set_selection_owner(QX11Info::connection(), tray_window, _NET_SYSTEM_TRAY_S, XCB_CURRENT_TIME); - //Make sure that it was registered properly - ownreply = xcb_get_selection_owner_reply(QX11Info::connection(), \ - xcb_get_selection_owner_unchecked(QX11Info::connection(), _NET_SYSTEM_TRAY_S), NULL); - if(ownreply==0 || ownreply->owner != tray_window){ - if(ownreply!=0){ free(ownreply); } - qWarning() << " - Could not register the system tray"; - xcb_destroy_window(QX11Info::connection(), tray_window); - return false; - } - free(ownreply); //done with structure - //Now register the orientation of the system tray - uint32_t orient = _NET_SYSTEM_TRAY_ORIENTATION_HORZ; - xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, tray_window, \ - ATOMS.value("_NET_SYSTEM_TRAY_ORIENTATION"), XCB_ATOM_CARDINAL, 32, 1, &orient); - - //Now set the visual ID for the system tray (same as the root window, but TrueColor) - xcb_visualtype_t *type = xcb_aux_find_visual_by_attrs(root_screen, XCB_VISUAL_CLASS_TRUE_COLOR, 32); - if(type!=0){ - xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, tray_window, \ - ATOMS.value("_NET_SYSTEM_TRAY_VISUAL"), XCB_ATOM_VISUALID, 32, 1, &type->visual_id); - }else{ - qWarning() << " - Could not set TrueColor visual for system tray"; - } - - //Finally, send out an X event letting others know that the system tray is up and running - xcb_client_message_event_t event; - event.response_type = XCB_CLIENT_MESSAGE; - event.format = 32; - event.window = root_screen->root; - event.type = EWMH.MANAGER; //MANAGER atom - event.data.data32[0] = XCB_TIME_CURRENT_TIME; //CurrentTime; - event.data.data32[1] = _NET_SYSTEM_TRAY_S; //_NET_SYSTEM_TRAY_S atom - event.data.data32[2] = tray_window; - event.data.data32[3] = 0; - event.data.data32[4] = 0; - - xcb_send_event(QX11Info::connection(), 0, root_screen->root, XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, (const char *) &event); - return true; - } - -}; //end private objects class - - -//inline functions for setting up the internal objects - - -// === PUBLIC === -NativeWindowSystem::NativeWindowSystem() : QObject(){ - obj = 0; - pingTimer = 0; - screenLocked = false; -} - -NativeWindowSystem::~NativeWindowSystem(){ - xcb_ewmh_connection_wipe(&(obj->EWMH)); - free(obj); -} - -//Overarching start/stop functions -bool NativeWindowSystem::start(){ - //Initialize the XCB/EWMH objects - if(obj==0){ - obj = new p_objects(); //instantiate the private objects - obj->wm_window = 0; - obj->tray_window = 0; - xcb_intern_atom_cookie_t *cookie = xcb_ewmh_init_atoms(QX11Info::connection(), &obj->EWMH); - if(!xcb_ewmh_init_atoms_replies(&obj->EWMH, cookie, NULL) ){ - qDebug() << "Error with XCB atom initializations"; - return false; - } - obj->root_screen = xcb_aux_get_screen(QX11Info::connection(), QX11Info::appScreen()); - obj->root_window = obj->root_screen->root; //simplification for later - minor duplication of memory (unsigned int) - //Initialize all the extra atoms that the EWMH object does not have - if( !obj->init_ATOMS() ){ return false; } - } //Done with private object init - bool ok = obj->register_wm(); - if(ok){ - setRoot_supportedActions(); - ok = obj->start_system_tray(); - }else{ - qWarning() << "Could not register the WM"; - } - return ok; -} - -void NativeWindowSystem::stop(){ - -} - -// === PRIVATE === -NativeWindow* NativeWindowSystem::findWindow(WId id, bool checkRelated){ - //qDebug() << "Find Window:" << id; - for(int i=0; i<NWindows.length(); i++){ - if(id==NWindows[i]->id() ){ return NWindows[i]; } - else if(id==NWindows[i]->frameId() ){ qDebug() << "Matched Frame:" << id; return NWindows[i]; } - //if(checkRelated && NWindows[i]->isRelatedTo(id)){ return NWindows[i]; } - //else if(!checkRelated && id==NWindows[i]->id()){ return NWindows[i]; } - } - //Check to see if this is a transient for some other window - if(checkRelated){ - //WId tid = obj->getTransientFor(id); - //if(tid!=id){ return findWindow(tid, checkRelated); } //call it recursively as needed - //qDebug() << " -- Could not find Window!"; - } - return 0; -} - -NativeWindow* NativeWindowSystem::findTrayWindow(WId id){ - for(int i=0; i<TWindows.length(); i++){ - if(TWindows[i]->isRelatedTo(id)){ return TWindows[i]; } - } - return 0; -} - -void NativeWindowSystem::UpdateWindowProperties(NativeWindow* win, QList< NativeWindow::Property > props){ - //Put the properties in logical groups as appropriate (some XCB calls return multiple properties) - if(props.contains(NativeWindow::Title)){ - //Try the EWMH standards first - // _NET_WM_NAME - QString name; - xcb_get_property_cookie_t cookie = xcb_ewmh_get_wm_name_unchecked(&obj->EWMH, win->id()); - if(cookie.sequence != 0){ - xcb_ewmh_get_utf8_strings_reply_t data; - if( 1 == xcb_ewmh_get_wm_name_reply(&obj->EWMH, cookie, &data, NULL) ){ - name = QString::fromUtf8(data.strings, data.strings_len); - } - } - if(name.isEmpty()){ - //_NET_WM_VISIBLE_NAME - xcb_get_property_cookie_t cookie = xcb_ewmh_get_wm_visible_name_unchecked(&obj->EWMH, win->id()); - if(cookie.sequence != 0){ - xcb_ewmh_get_utf8_strings_reply_t data; - if( 1 == xcb_ewmh_get_wm_visible_name_reply(&obj->EWMH, cookie, &data, NULL) ){ - name = QString::fromUtf8(data.strings, data.strings_len); - } - } - } - if(name.isEmpty()){ - //Now try the ICCCM standard - xcb_get_property_cookie_t cookie = xcb_icccm_get_wm_name_unchecked(QX11Info::connection(), win->id()); - xcb_icccm_get_text_property_reply_t reply; - if(1 == xcb_icccm_get_wm_name_reply(QX11Info::connection(), cookie, &reply, NULL) ){ - name = QString::fromLocal8Bit(reply.name, reply.name_len); - xcb_icccm_get_text_property_reply_wipe(&reply); - } - } - win->setProperty(NativeWindow::Title, name); - } //end TITLE property - - if(props.contains(NativeWindow::ShortTitle)){ - //Try the EWMH standards first - // _NET_WM_ICON_NAME - QString name; - xcb_get_property_cookie_t cookie = xcb_ewmh_get_wm_icon_name_unchecked(&obj->EWMH, win->id()); - if(cookie.sequence != 0){ - xcb_ewmh_get_utf8_strings_reply_t data; - if( 1 == xcb_ewmh_get_wm_icon_name_reply(&obj->EWMH, cookie, &data, NULL) ){ - name = QString::fromUtf8(data.strings, data.strings_len); - } - } - if(name.isEmpty()){ - //_NET_WM_VISIBLE_ICON_NAME - xcb_get_property_cookie_t cookie = xcb_ewmh_get_wm_visible_icon_name_unchecked(&obj->EWMH, win->id()); - if(cookie.sequence != 0){ - xcb_ewmh_get_utf8_strings_reply_t data; - if( 1 == xcb_ewmh_get_wm_visible_icon_name_reply(&obj->EWMH, cookie, &data, NULL) ){ - name = QString::fromUtf8(data.strings, data.strings_len); - } - } - } - if(name.isEmpty()){ - //Now try the ICCCM standard - xcb_get_property_cookie_t cookie = xcb_icccm_get_wm_icon_name_unchecked(QX11Info::connection(), win->id()); - xcb_icccm_get_text_property_reply_t reply; - if(1 == xcb_icccm_get_wm_icon_name_reply(QX11Info::connection(), cookie, &reply, NULL) ){ - name = QString::fromLocal8Bit(reply.name, reply.name_len); - xcb_icccm_get_text_property_reply_wipe(&reply); - } - } - win->setProperty(NativeWindow::ShortTitle, name); - } //end SHORTTITLE property - - if(props.contains(NativeWindow::Icon)){ - //See if this is a tray icon first (different routine - entire app window is the icon) - QIcon icon; - if(win == findTrayWindow(win->id())){ - //Tray Icon Window - QPixmap pix; - //Get the current QScreen (for XCB->Qt conversion) - QList<QScreen*> scrnlist = QApplication::screens(); - //Try to grab the given window directly with Qt - for(int i=0; i<scrnlist.length() && pix.isNull(); i++){ - pix = scrnlist[i]->grabWindow(win->id()); - } - icon.addPixmap(pix); - }else{ - //Standard window - //Fetch the _NET_WM_ICON for the window and return it as a QIcon - xcb_get_property_cookie_t cookie = xcb_ewmh_get_wm_icon_unchecked(&obj->EWMH, win->id()); - xcb_ewmh_get_wm_icon_reply_t reply; - if(1 == xcb_ewmh_get_wm_icon_reply(&obj->EWMH, cookie, &reply, NULL)){ - xcb_ewmh_wm_icon_iterator_t iter = xcb_ewmh_get_wm_icon_iterator(&reply); - //Just use the first - bool done =false; - while(!done){ - //Now convert the current data into a Qt image - // - first 2 elements are width and height (removed via XCB functions) - // - data in rows from left to right and top to bottom - QImage image(iter.width, iter.height, QImage::Format_ARGB32); //initial setup - uint* dat = iter.data; - //dat+=2; //remember the first 2 element offset - for(int i=0; i<image.byteCount()/4; ++i, ++dat){ - ((uint*)image.bits())[i] = *dat; - } - icon.addPixmap(QPixmap::fromImage(image)); //layer this pixmap onto the icon - //Now see if there are any more icons available - done = (iter.rem<1); //number of icons remaining - if(!done){ xcb_ewmh_get_wm_icon_next(&iter); } //get the next icon data - } - xcb_ewmh_get_wm_icon_reply_wipe(&reply); - } - } //end type of window - win->setProperty(NativeWindow::Icon, icon); - } //end ICON property - - if(props.contains(NativeWindow::MinSize) || props.contains(NativeWindow::MaxSize) - || props.contains(NativeWindow::Size) || props.contains(NativeWindow::GlobalPos) ){ - //Try the ICCCM "Normal Hints" structure first (newer spec?) - xcb_get_property_cookie_t cookie = xcb_icccm_get_wm_normal_hints_unchecked(QX11Info::connection(), win->id()); - xcb_size_hints_t reply; - bool ok = false; - if(1==xcb_icccm_get_wm_normal_hints_reply(QX11Info::connection(), cookie, &reply, NULL) ){ ok = true; } - else{ - //Could not find normal hints, try the older "size hints" instead - cookie = xcb_icccm_get_wm_size_hints_unchecked(QX11Info::connection(), win->id(), XCB_ATOM_WM_SIZE_HINTS); - if(1==xcb_icccm_get_wm_size_hints_reply(QX11Info::connection(), cookie, &reply, NULL) ){ ok = true; } - } - if(ok){ - bool initsize = win->property(NativeWindow::Size).isNull(); //initial window size - if( (reply.flags&XCB_ICCCM_SIZE_HINT_US_POSITION)==XCB_ICCCM_SIZE_HINT_US_POSITION ){ win->setProperty(NativeWindow::GlobalPos, QPoint(reply.x,reply.y)); } - if( (reply.flags&XCB_ICCCM_SIZE_HINT_US_SIZE)==XCB_ICCCM_SIZE_HINT_US_SIZE ){ win->setProperty(NativeWindow::Size, QSize(reply.width, reply.height)); } - if( (reply.flags&XCB_ICCCM_SIZE_HINT_P_POSITION)==XCB_ICCCM_SIZE_HINT_P_POSITION ){ win->setProperty(NativeWindow::GlobalPos, QPoint(reply.x,reply.y)); } - if( (reply.flags&XCB_ICCCM_SIZE_HINT_P_SIZE)==XCB_ICCCM_SIZE_HINT_P_SIZE ){ win->setProperty(NativeWindow::Size, QSize(reply.width, reply.height)); } - if( (reply.flags&XCB_ICCCM_SIZE_HINT_P_MIN_SIZE)==XCB_ICCCM_SIZE_HINT_P_MIN_SIZE ){ win->setProperty(NativeWindow::MinSize, QSize(reply.min_width, reply.min_height)); } - if( (reply.flags&XCB_ICCCM_SIZE_HINT_P_MAX_SIZE)==XCB_ICCCM_SIZE_HINT_P_MAX_SIZE ){ win->setProperty(NativeWindow::MaxSize, QSize(reply.max_width, reply.max_height)); } - if( (reply.flags&XCB_ICCCM_SIZE_HINT_BASE_SIZE)==XCB_ICCCM_SIZE_HINT_BASE_SIZE && initsize ){ win->setProperty(NativeWindow::Size, QSize(reply.base_width, reply.base_height)); } - //if( (reply.flags&XCB_ICCCM_SIZE_HINT_P_RESIZE_INC)==XCB_ICCCM_SIZE_HINT_P_RESIZE_INC ){ hints.width_inc=reply.width_inc; hints.height_inc=reply.height_inc; } - //if( (reply.flags&XCB_ICCCM_SIZE_HINT_P_ASPECT)==XCB_ICCCM_SIZE_HINT_P_ASPECT ){ hints.min_aspect_num=reply.min_aspect_num; hints.min_aspect_den=reply.min_aspect_den; hints.max_aspect_num=reply.max_aspect_num; hints.max_aspect_den=reply.max_aspect_den;} - //if( (reply.flags&XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY)==XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY ){ hints.win_gravity=reply.win_gravity; } - } - } //end of geometry properties - - if(props.contains(NativeWindow::Name)){ - //Put the app/class name here (much more static than the "Title" properties - xcb_get_property_cookie_t cookie = xcb_icccm_get_wm_class_unchecked(QX11Info::connection(), win->id()); - xcb_icccm_get_wm_class_reply_t reply; - if(1 == xcb_icccm_get_wm_class_reply(QX11Info::connection(), cookie, &reply, NULL) ){ - //Returns: "<instance name>::::<class name>" - win->setProperty(NativeWindow::Name, ( QString::fromLocal8Bit(reply.instance_name)+"::::"+QString::fromLocal8Bit(reply.class_name) )); - xcb_icccm_get_wm_class_reply_wipe(&reply); - } - } //end NAME property - - if(props.contains(NativeWindow::Workspace)){ - xcb_get_property_cookie_t cookie = xcb_ewmh_get_wm_desktop_unchecked(&obj->EWMH, win->id()); - uint32_t num = 0; - int wkspace = -1; - if(1==xcb_ewmh_get_wm_desktop_reply(&obj->EWMH, cookie, &num, NULL) ){ - if(num!=0xFFFFFFFF){ wkspace = num; } - }/*else{ - //Error in fetching property (not set?) - // - put it on the current screen - out = WM_Get_Current_Desktop(); - }*/ - win->setProperty(NativeWindow::Workspace, wkspace); - } - if(props.contains(NativeWindow::FrameExtents)){ - //Just assign default values to this - need to automate it later - //win->setProperty(NativeWindow::FrameExtents, QVariant::fromValue<QList<int> >(QList<int>() << 5 << 5 << 5+QFontMetrics(QFont()).height() << 5) ); - } - if(props.contains(NativeWindow::RelatedWindows)){ - WId orig = win->id(); - WId tid = obj->getTransientFor(orig); - QList<WId> list; - while(tid != orig){ - list << tid; - orig = tid; - tid = obj->getTransientFor(orig); - } - win->setProperty(NativeWindow::RelatedWindows, QVariant::fromValue(list)); - } - if(props.contains(NativeWindow::Visible)){ - xcb_get_window_attributes_reply_t *attr = xcb_get_window_attributes_reply(QX11Info::connection(), xcb_get_window_attributes(QX11Info::connection(), win->id()) , NULL); - if(attr != 0){ - win->setProperty(NativeWindow::Visible, attr->map_state == XCB_MAP_STATE_VIEWABLE); - free(attr); - } - } - if(props.contains(NativeWindow::WinTypes)){ - QList< NativeWindow::Type> types; - types << NativeWindow::T_NORMAL; //make this load appropriately later - win->setProperty(NativeWindow::WinTypes, QVariant::fromValue< QList<NativeWindow::Type> >(types) ); - } -} - -void NativeWindowSystem::ChangeWindowProperties(NativeWindow* win, QList< NativeWindow::Property > props, QList<QVariant> vals){ - if(props.length() == 0 || vals.length()!=props.length() || win ==0 ){ return; } - //qDebug() << "Change Window Properties:" << props << vals; - if(props.contains(NativeWindow::Title)){ - - } - if(props.contains(NativeWindow::ShortTitle)){ - - } - if(props.contains(NativeWindow::Icon)){ - - } - if(props.contains(NativeWindow::Size) || props.contains(NativeWindow::GlobalPos) ){ - xcb_configure_window_value_list_t valList; - valList.x = 0; //Note that this is the relative position - should always be 0,0 relative to the embed widget - valList.y = 0; - QSize sz = win->property(NativeWindow::Size).toSize(); - if(props.contains(NativeWindow::Size)){ - sz = vals[ props.indexOf(NativeWindow::Size) ] .toSize(); - } - valList.width = sz.width(); - valList.height = sz.height(); - /*if(props.contains(NativeWindow::GlobalPos)){ - QPoint pt = vals[ props.indexOf(NativeWindow::GlobalPos) ] .toPoint(); - valList.x = pt.x(); - valList.y = pt.y(); - }else{ - valList.x = win->property(NativeWindow::GlobalPos).toPoint().x(); - valList.y = win->property(NativeWindow::GlobalPos).toPoint().y(); - }*/ - uint16_t mask = 0; - mask = mask | XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT;// | XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y; - qDebug() << "Configure window Geometry:" << sz; - xcb_configure_window_aux(QX11Info::connection(), win->id(), mask, &valList); - } - if(props.contains(NativeWindow::Name)){ - - } - if(props.contains(NativeWindow::Workspace)){ - int num = vals[ props.indexOf(NativeWindow::Workspace) ].toInt(); - xcb_ewmh_set_wm_desktop(&obj->EWMH, win->id(), (num<0 ? 0xFFFFFFFF : qAbs(num) ) ); - } - if(props.contains(NativeWindow::RelatedWindows)){ - - } - if(props.contains(NativeWindow::Visible)){ - //qDebug() << "Check Window Visibility:" << vals[ props.indexOf(NativeWindow::Visible) ]; - if( vals[ props.indexOf(NativeWindow::Visible) ].toBool() ){ - //qDebug() << " - Map it!"; - xcb_map_window(QX11Info::connection(), win->id()); - }else{ - //qDebug() << " - Unmap it!"; - xcb_unmap_window(QX11Info::connection(), win->id()); - } - } - if(props.contains(NativeWindow::Active)){ - //Only one window can be "Active" at a time - so only do anything if this window wants to be active - if(vals[props.indexOf(NativeWindow::Active)].toBool() ){ - xcb_ewmh_set_active_window(&obj->EWMH, QX11Info::appScreen(), (win->frameId()==0 ?win->id() : win->frameId())); - //Also send the active window a message to take input focus - //Send the window a WM_TAKE_FOCUS message - xcb_client_message_event_t event; - event.response_type = XCB_CLIENT_MESSAGE; - event.format = 32; - event.window = win->id(); - event.type = obj->ATOMS["WM_PROTOCOLS"]; - event.data.data32[0] = obj->ATOMS["WM_TAKE_FOCUS"]; - event.data.data32[1] = XCB_TIME_CURRENT_TIME; //CurrentTime; - event.data.data32[2] = 0; - event.data.data32[3] = 0; - event.data.data32[4] = 0; - - xcb_send_event(QX11Info::connection(), 0, win->id(), XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, (const char *) &event); - xcb_flush(QX11Info::connection()); - } - } - -} - -// === PUBLIC SLOTS === -//These are the slots which are typically only used by the desktop system itself or the NativeEventFilter -void NativeWindowSystem::RegisterVirtualRoot(WId id){ - //Convert to XCB array - xcb_window_t array[1]; - array[0] = id; - //Set the property - xcb_ewmh_set_virtual_roots(&obj->EWMH, QX11Info::appScreen(), 1, array); -} - -void NativeWindowSystem::setRoot_supportedActions(){ -//NET_WM standards (ICCCM implied - no standard way to list those) - xcb_atom_t list[] = {obj->EWMH._NET_WM_NAME, - obj->EWMH._NET_WM_ICON, - obj->EWMH._NET_WM_ICON_NAME, - obj->EWMH._NET_WM_DESKTOP, - obj->ATOMS["_NET_WM_WINDOW_OPACITY"], - /*_NET_WINDOW_TYPE (and all the various types - 15 in total*/ - obj->EWMH._NET_WM_WINDOW_TYPE, obj->EWMH._NET_WM_WINDOW_TYPE_DESKTOP, obj->EWMH._NET_WM_WINDOW_TYPE_DOCK, - obj->EWMH._NET_WM_WINDOW_TYPE_TOOLBAR, obj->EWMH._NET_WM_WINDOW_TYPE_MENU, obj->EWMH._NET_WM_WINDOW_TYPE_UTILITY, - obj->EWMH._NET_WM_WINDOW_TYPE_SPLASH, obj->EWMH._NET_WM_WINDOW_TYPE_DIALOG, obj->EWMH._NET_WM_WINDOW_TYPE_NORMAL, - obj->EWMH._NET_WM_WINDOW_TYPE_DROPDOWN_MENU, obj->EWMH._NET_WM_WINDOW_TYPE_POPUP_MENU, obj->EWMH._NET_WM_WINDOW_TYPE_TOOLTIP, - obj->EWMH._NET_WM_WINDOW_TYPE_NOTIFICATION, obj->EWMH._NET_WM_WINDOW_TYPE_COMBO, obj->EWMH._NET_WM_WINDOW_TYPE_DND, - }; - xcb_ewmh_set_supported(&obj->EWMH, QX11Info::appScreen(), 20,list); -} - -void NativeWindowSystem::setRoot_numberOfWorkspaces(QStringList names){ - if(names.isEmpty()){ names << "one"; } - //First set the overall number of workspaces - xcb_ewmh_set_number_of_desktops(&obj->EWMH, QX11Info::appScreen(), names.length()); - //Now set the names for the workspaces - //EWMH LIBRARY BROKEN - appears to be a mismatch in the function header (looking for a single char array, instead of a list of char arrays) - // Ken Moore - 6/27/17 - /* - char *array[ names.length() ]; - for(int i=0; i<names.length(); i++){array[i] = names[i].toUtf8().data(); } //Convert to an array of char arrays - xcb_ewmh_set_desktop_names(&obj->EWMH, QX11Info::appScreen(), names.length(), array); - */ -} - -void NativeWindowSystem::setRoot_currentWorkspace(int num){ - xcb_ewmh_set_current_desktop(&obj->EWMH, QX11Info::appScreen(), num); -} - -void NativeWindowSystem::setRoot_clientList(QList<WId> list, bool stackorder){ - //convert the QList into a generic array - xcb_window_t array[list.length()]; - for(int i=0; i<list.length(); i++){ array[i] = list[i]; } - if(stackorder){ - xcb_ewmh_set_client_list_stacking(&obj->EWMH, QX11Info::appScreen(), list.length(), array); - }else{ - xcb_ewmh_set_client_list(&obj->EWMH, QX11Info::appScreen(), list.length(), array); - } -} - -void NativeWindowSystem::setRoot_desktopGeometry(QRect geom){ - //This one is a combo function - // This will set the "DESKTOP_VIEWPORT" property (point) - // as well as the "DESKTOP_GEOMETRY" property (size) - //Turn the QList into xcb_ewmh_coordinates_t* - xcb_ewmh_coordinates_t array[1]; - array[0].x=geom.x(); array[0].y=geom.y(); - //Now set the property - xcb_ewmh_set_desktop_viewport(&obj->EWMH, QX11Info::appScreen(), 1, array); - xcb_ewmh_set_desktop_geometry(&obj->EWMH, QX11Info::appScreen(), geom.width(), geom.height()); -} - -void NativeWindowSystem::setRoot_desktopWorkarea(QList<QRect> list){ - //Convert to the XCB/EWMH data structures - xcb_ewmh_geometry_t array[list.length()]; - for(int i=0; i<list.length(); i++){ - array[i].x = list[i].x(); array[i].y = list[i].y(); - array[i].width = list[i].width(); array[i].height = list[i].height(); - } - //Now set the property - xcb_ewmh_set_workarea(&obj->EWMH, QX11Info::appScreen(), list.length(), array); -} - -void NativeWindowSystem::setRoot_activeWindow(WId win){ - xcb_ewmh_set_active_window(&obj->EWMH, QX11Info::appScreen(), win); - //Also send the active window a message to take input focus - //Send the window a WM_TAKE_FOCUS message - xcb_client_message_event_t event; - event.response_type = XCB_CLIENT_MESSAGE; - event.format = 32; - event.window = win; - event.type = obj->ATOMS["WM_PROTOCOLS"]; - event.data.data32[0] = obj->ATOMS["WM_TAKE_FOCUS"]; - event.data.data32[1] = XCB_TIME_CURRENT_TIME; //CurrentTime; - event.data.data32[2] = 0; - event.data.data32[3] = 0; - event.data.data32[4] = 0; - - xcb_send_event(QX11Info::connection(), 0, win, XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, (const char *) &event); - xcb_flush(QX11Info::connection()); -} - -int NativeWindowSystem::currentWorkspace(){ - xcb_get_property_cookie_t cookie = xcb_ewmh_get_current_desktop_unchecked(&obj->EWMH, QX11Info::appScreen()); - uint32_t num = 0; - if(1==xcb_ewmh_get_current_desktop_reply(&obj->EWMH, cookie, &num, NULL) ){ - return num; - }else{ - return 0; - } -} - -//NativeWindowEventFilter interactions -void NativeWindowSystem::NewWindowDetected(WId id){ - //Make sure this can be managed first - if(findWindow(id, false) != 0){ qDebug() << "Window Already Managed!!!!"; findWindow(id,false)->setProperty(NativeWindow::Visible, true, true); return; } //already managed - xcb_get_window_attributes_cookie_t cookie = xcb_get_window_attributes(QX11Info::connection(), id); - xcb_get_window_attributes_reply_t *attr = xcb_get_window_attributes_reply(QX11Info::connection(), cookie, NULL); - if(attr == 0){ return; } //could not get attributes of window - if(attr->override_redirect){ free(attr); return; } //window has override redirect set (do not manage) - free(attr); - //Now go ahead and create/populate the container for this window - NativeWindow *win = new NativeWindow(id); - //Register for events from this window - registerClientEvents(win->id()); - NWindows << win; - UpdateWindowProperties(win, NativeWindow::allProperties()); - qDebug() << "New Window [& associated ID's]:" << win->id() << win->frameId() << win->property(NativeWindow::RelatedWindows); - //Now setup the connections with this window - connect(win, SIGNAL(RequestClose(WId)), this, SLOT(RequestClose(WId)) ); - connect(win, SIGNAL(RequestKill(WId)), this, SLOT(RequestKill(WId)) ); - connect(win, SIGNAL(RequestPing(WId)), this, SLOT(RequestPing(WId)) ); - connect(win, SIGNAL(RequestReparent(WId, WId, QPoint)), this, SLOT(RequestReparent(WId, WId, QPoint)) ); - connect(win, SIGNAL(RequestPropertiesChange(WId, QList<NativeWindow::Property>, QList<QVariant>)), this, SLOT(RequestPropertiesChange(WId, QList<NativeWindow::Property>, QList<QVariant>)) ); - emit NewWindowAvailable(win); -} - -void NativeWindowSystem::NewTrayWindowDetected(WId id){ - //Make sure this can be managed first - if(findTrayWindow(id) != 0){ return; } //already managed - xcb_get_window_attributes_cookie_t cookie = xcb_get_window_attributes(QX11Info::connection(), id); - xcb_get_window_attributes_reply_t *attr = xcb_get_window_attributes_reply(QX11Info::connection(), cookie, NULL); - if(attr == 0){ return; } //could not get attributes of window - if(attr->override_redirect){ free(attr); return; } //window has override redirect set (do not manage) - free(attr); - //Register for events from this window - #define TRAY_WIN_EVENT_MASK (XCB_EVENT_MASK_BUTTON_PRESS | \ - XCB_EVENT_MASK_BUTTON_RELEASE | \ - XCB_EVENT_MASK_POINTER_MOTION | \ - XCB_EVENT_MASK_BUTTON_MOTION | \ - XCB_EVENT_MASK_EXPOSURE | \ - XCB_EVENT_MASK_STRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | \ - XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | \ - XCB_EVENT_MASK_ENTER_WINDOW) - - uint32_t value_list[1] = {TRAY_WIN_EVENT_MASK}; - xcb_change_window_attributes(QX11Info::connection(), id, XCB_CW_EVENT_MASK, value_list); - //Now go ahead and create/populate the container for this window - NativeWindow *win = new NativeWindow(id); - TWindows << win; - UpdateWindowProperties(win, NativeWindow::allProperties()); - emit NewTrayWindowAvailable(win); -} - -void NativeWindowSystem::WindowCloseDetected(WId id){ - NativeWindow *win = findWindow(id, false); - //qDebug() << "Got Window Closed" << id << win; - //qDebug() << "Old Window List:" << NWindows.length(); - if(win!=0){ - NWindows.removeAll(win); - //RequestReparent(id, QX11Info::appRootWindow(), QPoint(0,0)); - win->emit WindowClosed(id); - //qDebug() << "Visible Window Closed!!!"; - //win->deleteLater(); - }else{ - win = findTrayWindow(id); - if(win!=0){ - TWindows.removeAll(win); - win->emit WindowClosed(id); - win->deleteLater(); - } - } - //qDebug() << " - Now:" << NWindows.length(); -} - -void NativeWindowSystem::WindowPropertyChanged(WId id, NativeWindow::Property prop){ - //NOTE: This is triggered by the NativeEventFilter - not by changes to the NativeWindow objects themselves - NativeWindow *win = findWindow(id, prop!=NativeWindow::Visible); - if(win==0){ win = findTrayWindow(id); } - if(win!=0){ - UpdateWindowProperties(win, QList<NativeWindow::Property>() << prop); - } -} - -void NativeWindowSystem::WindowPropertyChanged(WId id, NativeWindow::Property prop, QVariant val){ - NativeWindow *win = findWindow(id,prop!=NativeWindow::Visible); - if(win==0){ win = findTrayWindow(id); } - if(win!=0){ - win->setProperty(prop, val); - } -} - -void NativeWindowSystem::WindowPropertiesChanged(WId id, QList<NativeWindow::Property> props, QList<QVariant> vals){ - NativeWindow *win = findWindow(id); - if(win==0){ win = findTrayWindow(id); } - if(win!=0){ - for(int i=0; i<props.length() && i<vals.length(); i++){ win->setProperty(props[i], vals[i]); } - } -} - -void NativeWindowSystem::RequestPropertyChange(WId id, NativeWindow::Property prop, QVariant val){ - //This is just a simplified version of the multiple-property function - RequestPropertiesChange(id, QList<NativeWindow::Property>() << prop, QList<QVariant>() << val); -} - -void NativeWindowSystem::RequestPropertiesChange(WId win, QList<NativeWindow::Property> props, QList<QVariant> vals){ - //Find the window object associated with this id - bool istraywin = false; //just in case we care later if it is a tray window or a regular window - NativeWindow *WIN = findWindow(win); - if(WIN==0){ istraywin = true; WIN = findTrayWindow(win); } - if(WIN==0){ return; } //invalid window ID - no longer available - //Now make any changes as needed - ChangeWindowProperties(WIN, props, vals); -} - -void NativeWindowSystem::GotPong(WId id){ - if(waitingForPong.contains(id)){ - waitingForPong.remove(id); - } - if(waitingForPong.isEmpty() && pingTimer!=0){ pingTimer->stop(); } -} - -void NativeWindowSystem::NewKeyPress(int keycode, WId win){ - emit NewInputEvent(); - if(screenLocked){ return; } - Qt::Key key = KeycodeToQt(keycode); - if(key!=Qt::Key_unknown){ emit KeyPressDetected(win, key); } -} - -void NativeWindowSystem::NewKeyRelease(int keycode, WId win){ - emit NewInputEvent(); - if(screenLocked){ return; } - Qt::Key key = KeycodeToQt(keycode); - if(key!=Qt::Key_unknown){ emit KeyReleaseDetected(win, key); } -} - -void NativeWindowSystem::NewMousePress(int buttoncode, WId win){ - emit NewInputEvent(); - if(screenLocked){ return; } - emit MousePressDetected(win, MouseToQt(buttoncode)); -} - -void NativeWindowSystem::NewMouseRelease(int buttoncode, WId win){ - emit NewInputEvent(); - if(screenLocked){ return; } - emit MouseReleaseDetected(win, MouseToQt(buttoncode)); -} - -void NativeWindowSystem::CheckDamageID(WId win){ - for(int i=0; i<NWindows.length(); i++){ - if(NWindows[i]->damageId() == win || NWindows[i]->id() == win || NWindows[i]->frameId()==win){ - NWindows[i]->emit VisualChanged(); - //qDebug() << "Got DAMAGE Event"; - return; - } - } - NativeWindow *WIN = findTrayWindow(win); - if(WIN!=0){ - UpdateWindowProperties(WIN, QList<NativeWindow::Property>() << NativeWindow::Icon); - } -} - -// === PRIVATE SLOTS === -//These are the slots which are built-in and automatically connected when a new NativeWindow is created - -void NativeWindowSystem::RequestClose(WId win){ - //Send the window a WM_DELETE_WINDOW message - xcb_client_message_event_t event; - event.response_type = XCB_CLIENT_MESSAGE; - event.format = 32; - event.window = win; - event.type = obj->ATOMS.value("WM_PROTOCOLS"); - event.data.data32[0] = obj->ATOMS.value("WM_DELETE_WINDOW"); - event.data.data32[1] = XCB_TIME_CURRENT_TIME; //CurrentTime; - event.data.data32[2] = 0; - event.data.data32[3] = 0; - event.data.data32[4] = 0; - - xcb_send_event(QX11Info::connection(), 0, win, XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, (const char *) &event); - xcb_flush(QX11Info::connection()); -} - -void NativeWindowSystem::RequestKill(WId win){ - xcb_kill_client(QX11Info::connection(), win); -} - -void NativeWindowSystem::RequestPing(WId win){ - waitingForPong.insert(win, QDateTime::currentDateTime().addSecs(5) ); - xcb_ewmh_send_wm_ping(&obj->EWMH, win, XCB_CURRENT_TIME); - if(pingTimer==0){ - pingTimer = new QTimer(this); - pingTimer->setInterval(2000); //2seconds - connect(pingTimer, SIGNAL(timeout()), this, SLOT(checkPings()) ); - } - pingTimer->start(); -} - -void NativeWindowSystem::RequestReparent(WId win, WId container, QPoint relorigin){ - NativeWindow *WIN = findWindow(win); - if(WIN==0){ return; } //could not find corresponding window structure -//Reparent the window into the container - xcb_reparent_window(QX11Info::connection(), win, container, relorigin.x(), relorigin.y()); - //xcb_map_window(QX11Info::connection(), win); - - //Now send the embed event to the app - //qDebug() << " - send _XEMBED event"; - xcb_client_message_event_t event; - event.response_type = XCB_CLIENT_MESSAGE; - event.format = 32; - event.window = win; - event.type = obj->ATOMS["_XEMBED"]; //_XEMBED - event.data.data32[0] = XCB_TIME_CURRENT_TIME; //CurrentTime; - event.data.data32[1] = 0; //XEMBED_EMBEDDED_NOTIFY - event.data.data32[2] = 0; - event.data.data32[3] = container; //WID of the container - event.data.data32[4] = 0; - - xcb_send_event(QX11Info::connection(), 0, win, XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, (const char *) &event); - - //Now setup any redirects and return - //this->SelectInput(win, true); //Notify of structure changes - registerClientEvents(win); - //xcb_composite_redirect_window(QX11Info::connection(), win, XCB_COMPOSITE_REDIRECT_MANUAL); //XCB_COMPOSITE_REDIRECT_[MANUAL/AUTOMATIC]); - - //Now map the window (will be a transparent child of the container) - xcb_map_window(QX11Info::connection(), win); - xcb_map_window(QX11Info::connection(), container); - //Now create/register the damage handler - // -- XCB (Note: The XCB damage registration is completely broken at the moment - 9/15/15, Ken Moore) - // -- Retested 6/29/17 (no change) Ken Moore - //xcb_damage_damage_t dmgID = xcb_generate_id(QX11Info::connection()); //This is a typedef for a 32-bit unsigned integer - //xcb_damage_create(QX11Info::connection(), dmgID, win, XCB_DAMAGE_REPORT_LEVEL_RAW_RECTANGLES); - // -- XLib (Note: This is only used because the XCB routine above does not work - needs to be fixed upstream in XCB itself). - Damage dmgID = XDamageCreate(QX11Info::display(), win, XDamageReportRawRectangles); - WIN->addDamageID( (uint) dmgID); //save this for later - //qDebug() << " - Done"; - //return ( (uint) dmgID ); -} -/* - xcb_reparent_window(QX11Info::connection(), client, parent, relorigin.x(), relorigin.y()); - - //Now ensure that we still get event for these windows - registerClientEvents(client); //make sure we re-do this after reparenting - registerClientEvents(parent); - xcb_map_window(QX11Info::connection(), parent); -}*/ diff --git a/src-qt5/core/libLumina/NativeWindowSystem.h b/src-qt5/core/libLumina/NativeWindowSystem.h deleted file mode 100644 index 97208c2f..00000000 --- a/src-qt5/core/libLumina/NativeWindowSystem.h +++ /dev/null @@ -1,138 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is a Qt5/Lumina wrapper around native graphics system calls -// It is primarily designed around the creation/modification of instances of -// the "NativeWindow" class for passing information around -//=========================================== -#ifndef _LUMINA_NATIVE_WINDOW_SYSTEM_H -#define _LUMINA_NATIVE_WINDOW_SYSTEM_H - -#include "NativeWindow.h" -#include <QDateTime> -#include <QTimer> -#include <QDebug> - -class NativeWindowSystem : public QObject{ - Q_OBJECT -private: - QList<NativeWindow*> NWindows; - QList<NativeWindow*> TWindows; - - //Simplifications to find an already-created window object - NativeWindow* findWindow(WId id, bool checkRelated = true); - - NativeWindow* findTrayWindow(WId id); - - //Now define a simple private_objects class so that each implementation - // has a storage container for defining/placing private objects as needed - class p_objects; - p_objects* obj; - - //Internal timers/variables for managing pings - QTimer *pingTimer; - QHash<WId, QDateTime> waitingForPong; - void checkPings(){ - QDateTime cur = QDateTime::currentDateTime(); - QList<WId> waiting = waitingForPong.keys(); - for(int i=0; i<waiting.length(); i++){ - if(waitingForPong.value(waiting[i]) < cur){ - waitingForPong.remove(waiting[i]); //Timeout on this window - if(waitingForPong.isEmpty() && pingTimer!=0){ pingTimer->stop(); } - NativeWindow *win = findWindow(waiting[i]); - if(win==0){ win = findTrayWindow(waiting[i]); } - if(win!=0){ win->emit WindowNotResponding(waiting[i]); } - } - } - } - - // Since some properties may be easier to update in bulk - // let the native system interaction do them in whatever logical groups are best - void UpdateWindowProperties(NativeWindow* win, QList< NativeWindow::Property > props); - void ChangeWindowProperties(NativeWindow* win, QList< NativeWindow::Property > props, QList<QVariant> vals); - - //Generic private variables - bool screenLocked; - -public: - //enum Property{ None, CurrentWorkspace, Workspaces, VirtualRoots, WorkAreas }; - enum MouseButton{NoButton, LeftButton, RightButton, MidButton, BackButton, ForwardButton, TaskButton, WheelUp, WheelDown, WheelLeft, WheelRight}; - - NativeWindowSystem(); - ~NativeWindowSystem(); - - //Overarching start/stop functions - bool start(); - void stop(); - - //General-purpose listing functions - QList<NativeWindow*> currentWindows(){ return NWindows; } - QList<NativeWindow*> currentTrayWindows(){ return TWindows; } - - //Small simplification functions - static Qt::Key KeycodeToQt(int keycode); - static NativeWindowSystem::MouseButton MouseToQt(int button); - -public slots: - //These are the slots which are typically only used by the desktop system itself or the NativeWindowEventFilter - - //This is called by the lock screen to keep the NWS aware of the current status - // it is **NOT** the function to call for the user to actually lock the session (that is in the screensaver/lockscreen class) - void ScreenLockChanged(bool lock){ - screenLocked = lock; - } - - //Root Window property registrations - void RegisterVirtualRoot(WId); - void setRoot_supportedActions(); - void setRoot_numberOfWorkspaces(QStringList names); - void setRoot_currentWorkspace(int); - void setRoot_clientList(QList<WId>, bool stackorder = false); - void setRoot_desktopGeometry(QRect); - void setRoot_desktopWorkarea(QList<QRect>); - void setRoot_activeWindow(WId); - - // - Workspaces - int currentWorkspace(); - //void GoToWorkspace(int); - - - //NativeWindowEventFilter interactions - void NewWindowDetected(WId); //will automatically create the new NativeWindow object - void NewTrayWindowDetected(WId); //will automatically create the new NativeWindow object - void WindowCloseDetected(WId); //will update the lists and make changes if needed - void WindowPropertyChanged(WId, NativeWindow::Property); //will rescan the window and update the object as needed - void WindowPropertyChanged(WId, NativeWindow::Property, QVariant); //will save that property/value to the right object - void WindowPropertiesChanged(WId, QList<NativeWindow::Property>, QList<QVariant>); - void RequestPropertyChange(WId, NativeWindow::Property, QVariant); - void RequestPropertiesChange(WId, QList<NativeWindow::Property>, QList<QVariant>); - void GotPong(WId); - - void NewKeyPress(int keycode, WId win = 0); - void NewKeyRelease(int keycode, WId win = 0); - void NewMousePress(int buttoncode, WId win = 0); - void NewMouseRelease(int buttoncode, WId win = 0); - void CheckDamageID(WId); - -private slots: - //These are the slots which are built-in and automatically connected when a new NativeWindow is created - void RequestClose(WId); - void RequestKill(WId); - void RequestPing(WId); - void RequestReparent(WId, WId, QPoint); //client, parent, relative origin point in parent - -signals: - void NewWindowAvailable(NativeWindow*); - void NewTrayWindowAvailable(NativeWindow*); - void NewInputEvent(); //a mouse or keypress was detected (lock-state independent); - void KeyPressDetected(WId, Qt::Key); //only emitted if lockstate = false - void KeyReleaseDetected(WId, Qt::Key); //only emitted if lockstate = false - void MousePressDetected(WId, NativeWindowSystem::MouseButton); //only emitted if lockstate = false - void MouseReleaseDetected(WId, NativeWindowSystem::MouseButton); //only emitted if lockstate = false - -}; - -#endif diff --git a/src-qt5/core/libLumina/OSInterface-template.cpp b/src-qt5/core/libLumina/OSInterface-template.cpp deleted file mode 100644 index 96b01e60..00000000 --- a/src-qt5/core/libLumina/OSInterface-template.cpp +++ /dev/null @@ -1,100 +0,0 @@ -//=========================================== -// Lumina desktop source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include <OSInterface.h> - -//=========== -// PUBLIC -//=========== - -//Simple functions used to determine if the current OS supports using this class, and what levels of support -QList<OSInterface::Interface> OSInterface::supportedNotifications(){ - //Which interfaces provide change notifications - return QList< OSInterface::Interface >(); -} - -QList<OSInterface::Interface> OSInterface::supportedStatus(){ - //Which interfaces are available for "status" requests - return QList< OSInterface::Interface >(); -} - -QList<OSInterface::Interface> OSInterface::supportedModify(){ - //Which interfaces are available for "modify" requests - return QList< OSInterface::Interface >(); -} - -//Start/stop interface watchers/notifications (each only called once per session) -void OSInterface::start(){ - //nothing to do -} - -void OSInterface::stop(){ - //nothing to do -} - -//Generic status update -QList<QVariant> OSInterface::status(OSInterface::Interface){ - // ==== Interface status output lists ==== - // Battery: [ float (percent charge), bool (is Charging), double (seconds remaining) ]; - // Volume: [int (percent volume) ] - // Devices: [ QStringList[ name, mountpoint, type (optional)] ] (List length depends on number of devices) - // Network: [bool (network access available)] - // PowerOff: [bool (can power off system)] - // Reboot: [bool (can reboot system)] - // Suspend: [bool (can suspend system)] - // Updates: [bool (is updating), bool (reboot required)] - // ========== - return QList<QVariant>(); -} - -//Individual Interface interactions -bool OSInterface::modify(OSInterface::Interface, QList<QVariant>){ //returns: success/failure - // ==== Interface modification argument lists ==== - // Battery: <NO MODIFICATION> - // Volume: [int (set percent volume) ] - // Devices: <NO MODIFICATION> - // Network: <NO MODIFICATION> - // PowerOff: [bool (skip updates - optional)] - // Reboot: [bool (skip updates - optional)] - // Suspend: [] (No input arguments) - // Updates: <NO MODIFICATION> - // ========== - return false; -} - -//================= -// PRIVATE SLOTS -//================= -//FileSystemWatcher slots -void OSInterface::watcherFileChanged(QString){ - -} - -void OSInterface::watcherDirChanged(QString){ - -} - -//IO Device slots -void OSInterface::iodeviceReadyRead(){ - -} - -void OSInterface::iodeviceAboutToClose(){ - -} - -//NetworkAccessManager slots -void OSInterface::netAccessChanged(QNetworkAccessManager::NetworkAccessibility){ - -} - -void OSInterface::netRequestFinished(QNetworkReply*){ - -} - -void OSInterface::netSslErrors(QNetworkReply*, const QList<QSslError>&){ - -} diff --git a/src-qt5/core/libLumina/OSInterface.h b/src-qt5/core/libLumina/OSInterface.h deleted file mode 100644 index acbd5c38..00000000 --- a/src-qt5/core/libLumina/OSInterface.h +++ /dev/null @@ -1,136 +0,0 @@ -//=========================================== -// Lumina desktop source code -// Copyright (c) 2017, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is the main interface for any OS-specific system calls -// To port Lumina to a different operating system, just create a file -// called "OSInterface-<Operating System>.cpp" -//=========================================== -#ifndef _LUMINA_LIBRARY_OS_INTERFACE_H -#define _LUMINA_LIBRARY_OS_INTERFACE_H - -#include <QString> -#include <QStringList> -#include <QList> -#include <QObject> -#include <QVariant> -#include <QHash> - -#include <QIODevice> -#include <QFileSystemWatcher> -#include <QNetworkAccessManager> -#include <QNetworkReply> -#include <QSslError> - -class OSInterface : public QObject{ - Q_OBJECT - -public: - enum Interface{ Battery, Volume, Devices, Network, PowerOff, Reboot, Suspend, Updates }; - -private slots: - //FileSystemWatcher slots - void watcherFileChanged(QString); - void watcherDirChanged(QString); - //IO Device slots - void iodeviceReadyRead(); - void iodeviceAboutToClose(); - //NetworkAccessManager slots - void netAccessChanged(QNetworkAccessManager::NetworkAccessibility); - void netRequestFinished(QNetworkReply*); - void netSslErrors(QNetworkReply*, const QList<QSslError>&); - -private: - //Internal persistant data storage, OS-specific usage implementation - QHash< OSInterface::Interface, QList<QVariant> > INFO; - - // ============ - // Internal possibilities for watching the system (OS-Specific usage/implementation) - // ============ - //File System Watcher - QFileSystemWatcher *watcher; - //IO Device (QLocalSocket, QTcpConnection, QFile, etc) - QIODevice *iodevice; - //Network Access Manager (check network connectivity, etc) - QNetworkAccessManager *netman; - - //Simplifications for connecting the various watcher objects to their respective slots - void connectWatcher(){ - if(watcher==0){ return; } - connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(watcherFileChanged(QString)) ); - connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(watcherDirChanged(QString)) ); - } - void connectIodevice(){ - if(iodevice==0){ return; } - connect(iodevice, SIGNAL(readyRead()), this, SLOT(iodeviceReadyRead()) ); - } - void connectNetman(){ - if(netman==0){ return; } - connect(netman, SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)), this, SLOT(netAccessChanged(QNetworkAccessManager::NetworkAccessibility)) ); - connect(netman, SIGNAL(requestFinished(QNetworkReply*)), this, SLOT(netRequestFinished(QNetworkReply*)) ); - connect(netman, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)), this, SLOT(netSslErrors(QNetworkReply*, const QList<QSslError>&)) ); - } - -public: - OSInterface(QObject *parent = 0) : QObject(parent){ - watcher = 0; - iodevice = 0; - netman = 0; - } - ~OSInterface(){ - if(watcher!=0){ - QStringList paths; paths << watcher->files() << watcher->directories(); - if(!paths.isEmpty()){ watcher->removePaths(paths); } - watcher->deleteLater(); - } - if(iodevice!=0){ - if(iodevice->isOpen()){ iodevice->close(); } - iodevice->deleteLater(); - } - if(netman!=0){ - netman->deleteLater(); - } - } - - //Simple functions used to determine if the current OS supports using this class, and what levels of support - QList<OSInterface::Interface> supportedNotifications(); //Which interfaces provide change notifications - QList<OSInterface::Interface> supportedStatus(); //Which interfaces are available for "status" requests - QList<OSInterface::Interface> supportedModify(); //Which interfaces are available for "modify" requests - - //Start/stop interface watchers/notifications (each only called once per session) - void start(); - void stop(); - - //Generic status update - QList<QVariant> status(OSInterface::Interface); - // ==== Interface status output lists ==== - // Battery: [ float (percent charge), bool (is Charging), double (seconds remaining) ]; - // Volume: [int (percent volume) ] - // Devices: [ QStringList[ name, mountpoint, type (optional)] ] (List length depends on number of devices) - // Network: [bool (network access available)] - // PowerOff: [bool (can power off system)] - // Reboot: [bool (can reboot system)] - // Suspend: [bool (can suspend system)] - // Updates: [bool (is updating), bool (reboot required)] - // ========== - - //Individual Interface interactions - bool modify(OSInterface::Interface, QList<QVariant> args); //returns: success/failure - // ==== Interface modification argument lists ==== - // Battery: <NO MODIFICATION> - // Volume: [int (set percent volume) ] - // Devices: <NO MODIFICATION> - // Network: <NO MODIFICATION> - // PowerOff: [bool (skip updates - optional)] - // Reboot: [bool (skip updates - optional)] - // Suspend: [] (No input arguments) - // Updates: <NO MODIFICATION> - // ========== - -signals: - void interfaceChanged(OSInterface::Interface); - -}; -#endif diff --git a/src-qt5/core/libLumina/ResizeMenu.cpp b/src-qt5/core/libLumina/ResizeMenu.cpp index 9f291134..cf5b124d 100644 --- a/src-qt5/core/libLumina/ResizeMenu.cpp +++ b/src-qt5/core/libLumina/ResizeMenu.cpp @@ -5,6 +5,7 @@ // See the LICENSE file for full details //=========================================== #include "ResizeMenu.h" +#include <QDebug> // ======================= // RESIZEMENU CLASS @@ -21,7 +22,7 @@ ResizeMenu::ResizeMenu(QWidget *parent) : QMenu(parent){ } ResizeMenu::~ResizeMenu(){ - + } void ResizeMenu::setContents(QWidget *con){ @@ -30,6 +31,15 @@ void ResizeMenu::setContents(QWidget *con){ this->addAction(cAct); contents = con; //save for later contents->setCursor(Qt::ArrowCursor); + resyncSize(); +} + +void ResizeMenu::resyncSize(){ + if(contents==0){ return; } + qDebug() << "Resync Size:" << this->size() << contents->size(); + this->resize(contents->size()); + qDebug() << " - after menu resize:" << this->size() << contents->size(); + emit MenuResized(this->size()); } void ResizeMenu::mouseMoveEvent(QMouseEvent *ev){ @@ -46,21 +56,21 @@ void ResizeMenu::mouseMoveEvent(QMouseEvent *ev){ this->setGeometry(geom); if(contents!=0){ contents->setFixedSize(QSize(geom.width()-2, geom.height()-2));} handled = true; - break; + break; case BOTTOM: if(gpos.y() <= geom.top()+1){ break; } geom.setBottom( gpos.y()); this->setGeometry(geom); if(contents!=0){ contents->setFixedSize(QSize(geom.width()-2, geom.height()-2));} handled = true; - break; + break; case LEFT: if(gpos.x() >= geom.right()-1){ break; } geom.setLeft(gpos.x()); this->setGeometry(geom); if(contents!=0){ contents->setFixedSize(QSize(geom.width()-2, geom.height()-2));} handled = true; - break; + break; case RIGHT: if(gpos.x() <= geom.left()+1){ break; } geom.setRight(gpos.x()); diff --git a/src-qt5/core/libLumina/ResizeMenu.h b/src-qt5/core/libLumina/ResizeMenu.h index ed909da3..029d2716 100644 --- a/src-qt5/core/libLumina/ResizeMenu.h +++ b/src-qt5/core/libLumina/ResizeMenu.h @@ -17,7 +17,7 @@ #include <QPoint> //Special subclass for a menu which the user can grab the edges and resize as necessary -// Note: Make sure that you don't set 0pixel contents margins on this menu +// Note: Make sure that you don't set 0pixel contents margins on this menu // - it needs at least 1 pixel margins for the user to be able to grab it class ResizeMenu : public QMenu{ Q_OBJECT @@ -26,13 +26,14 @@ public: virtual ~ResizeMenu(); void setContents(QWidget *con); + void resyncSize(); private: enum SideFlag{NONE, TOP, BOTTOM, LEFT, RIGHT}; SideFlag resizeSide; QWidget *contents; QWidgetAction *cAct; - + private slots: void clearFlags(){ resizeSide=NONE; diff --git a/src-qt5/core/libLumina/RootWindow-mgmt.cpp b/src-qt5/core/libLumina/RootWindow-mgmt.cpp deleted file mode 100644 index 00b3e336..00000000 --- a/src-qt5/core/libLumina/RootWindow-mgmt.cpp +++ /dev/null @@ -1,49 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "RootWindow.h" - -//Primary/private function -void RootWindow::arrangeWindows(RootSubWindow *primary, QString type){ - if(primary==0){ - //Get the currently active window and treat that as the primary - - } - //Now loop over the windows and arrange them as needed - -} - -// ================ -// Public slots for starting the arrangement routine(s) above -// ================ -void RootWindow::ArrangeWindows(WId primary, QString type){ - RootSubWindow* win = windowForId(primary); - if(type.isEmpty()){ type = ""; } //grab the default arrangement format - arrangeWindows(win, type); -} - -void RootWindow::TileWindows(WId primary, QString type){ - RootSubWindow* win = windowForId(primary); - if(type.isEmpty()){ type = ""; } //grab the default arrangement format for tiling - arrangeWindows(win, type); -} - -void RootWindow::CheckWindowPosition(WId id, bool newwindow){ - //used after a "drop" to validate/snap/re-arrange window(s) as needed - // if "newwindow" is true, then this is the first-placement routine for a window before it initially appears - RootSubWindow* win = windowForId(id); - if(win==0){ return; } //invalid window - QRect geom = win->nativeWindow()->geometry(); - bool changed = false; - //Make sure it is on the screen (quick check) - if(geom.x() < 0){ changed = true; geom.moveLeft(0); } - if(geom.y() < 0){ changed = true; geom.moveTop(0); } - if(geom.width() < 20){ changed = true; geom.setWidth(100); } - if(geom.height() < 20){ changed = true; geom.setHeight(100); } - if(changed){ win->setGeometry(geom); } - //Now run it through the window arrangement routine - ArrangeWindows(id); -} diff --git a/src-qt5/core/libLumina/XDGMime.cpp b/src-qt5/core/libLumina/XDGMime.cpp index 3983f6b5..cbbeff75 100644 --- a/src-qt5/core/libLumina/XDGMime.cpp +++ b/src-qt5/core/libLumina/XDGMime.cpp @@ -12,6 +12,9 @@ static QStringList mimeglobs; static qint64 mimechecktime; QString XDGMime::fromFileName(QString filename){ + if(QFile::exists(filename) && QFileInfo(filename).isDir()){ + return "inode/directory"; + } //Convert a filename into a mimetype return findAppMimeForFile(filename.section("/",-1),false); } diff --git a/src-qt5/core/libLumina/RootSubWindow-animations.cpp b/src-qt5/core/libLumina/obsolete/RootSubWindow-animations.cpp index ac813e3a..efab20fe 100644 --- a/src-qt5/core/libLumina/RootSubWindow-animations.cpp +++ b/src-qt5/core/libLumina/obsolete/RootSubWindow-animations.cpp @@ -11,16 +11,20 @@ QStringList RootSubWindow::validAnimations(NativeWindow::Property prop){ QStringList valid; if(prop == NativeWindow::Visible){ valid << "zoom" << "wipe-center-vertical" << "wipe-center-horizontal" << "shade-top" << "shade-right" << "shade-left" << "shade-bottom"; + }else if(prop == NativeWindow::Size){ + //Note: this is used for pretty much all geometry changes to the window where it is visible both before/after animation + valid << "direct"; } return valid; } void RootSubWindow::loadAnimation(QString name, NativeWindow::Property prop, QVariant nval){ + if(anim->state()==QAbstractAnimation::Running){ return; } //already running animResetProp.clear(); //Special case - random animation each time if(name=="random"){ QStringList valid = validAnimations(prop); - name = valid.at(qrand()%valid.length()); + if(!valid.isEmpty()){ name = valid.at(qrand()%valid.length()); } } //Now setup the animation if(prop == NativeWindow::Visible){ @@ -57,6 +61,7 @@ void RootSubWindow::loadAnimation(QString name, NativeWindow::Property prop, QVa } if(nval.toBool()){ this->setGeometry( anim->startValue().toRect() ); //ensure the window is the initial geom before it becomes visible + //QTimer::singleShot( anim->duration()+5, this, SLOT(activate()) ); }else{ QVariant tmp = anim->startValue(); anim->setStartValue(anim->endValue()); @@ -68,6 +73,19 @@ void RootSubWindow::loadAnimation(QString name, NativeWindow::Property prop, QVa anim->start(); this->show(); } //end of Visibility animation + else if(prop == NativeWindow::Size){ + //This is pretty much all geometry animations where the window is visible->visible + anim->setPropertyName("geometry"); + anim->setStartValue(this->geometry()); + anim->setEndValue(nval.toRect()); + /*if(name==""){ + // TO-DO modify the path from beginning->end somehow + }*/ + // Now start the animation + WinWidget->pause(); + anim->start(); + this->show(); + } } void RootSubWindow::animFinished(){ @@ -87,11 +105,12 @@ void RootSubWindow::animFinished(){ //qDebug() << "Sub Window geometry:" << clientg; WIN->setProperties(QList< NativeWindow::Property>() << NativeWindow::Size << NativeWindow::GlobalPos, QList<QVariant>() << clientg.size() << clientg.topLeft() ); - WinWidget->resyncWindow(); //also let the window know about the current geometry } } + WinWidget->resyncWindow(); //also let the window know about the current geometry } animResetProp = QVariant(); //clear the variable - WinWidget->resume(); - + //QTimer::singleShot(10, WinWidget, SLOT(resume()) ); + WinWidget->resume(); + emit windowAnimFinished(); } diff --git a/src-qt5/core/libLumina/RootSubWindow.cpp b/src-qt5/core/libLumina/obsolete/RootSubWindow.cpp index 6341f923..5040f2f9 100644 --- a/src-qt5/core/libLumina/RootSubWindow.cpp +++ b/src-qt5/core/libLumina/obsolete/RootSubWindow.cpp @@ -10,6 +10,7 @@ #include <QVBoxLayout> #include <QHBoxLayout> #include <QTimer> +#include <QScreen> #define WIN_BORDER 5 @@ -56,7 +57,7 @@ RootSubWindow::ModState RootSubWindow::getStateAtPoint(QPoint pt, bool setoffset if(setoffset){ offset.setX(pt.x()); offset.setY(pt.y()); } //difference from top-left corner return ResizeTopLeft; }else if(pt.x() > (this->width()*4.0/5.0)){ - if(setoffset){ offset.setX(this->width()-pt.x()); offset.setY(pt.y()); } //difference from top-right corner + if(setoffset){ offset.setX(pt.x()-this->width()); offset.setY(pt.y()); } //difference from top-right corner return ResizeTopRight; }else{ if(setoffset){ offset.setX(0); offset.setY(pt.y()); } //difference from top edge (X does not matter) @@ -65,13 +66,13 @@ RootSubWindow::ModState RootSubWindow::getStateAtPoint(QPoint pt, bool setoffset }else if(pt.y() > (this->height()-WIN_BORDER) ){ //One of the bottom options if(pt.x() < this->width()/5){ - if(setoffset){ offset.setX(pt.x()); offset.setY(this->height()-pt.y()); } //difference from bottom-left corner + if(setoffset){ offset.setX(pt.x()); offset.setY(pt.y()-this->height()); } //difference from bottom-left corner return ResizeBottomLeft; }else if(pt.x() > (this->width()*4.0/5.0)){ - if(setoffset){ offset.setX(this->width()-pt.x()); offset.setY(this->height()-pt.y()); } //difference from bottom-right corner + if(setoffset){ offset.setX(pt.x()-this->width()); offset.setY(pt.y()-this->height()); } //difference from bottom-right corner return ResizeBottomRight; }else{ - if(setoffset){ offset.setX(0); offset.setY(this->height() - pt.y()); } //difference from bottom edge (X does not matter) + if(setoffset){ offset.setX(0); offset.setY(pt.y()-this->height()); } //difference from bottom edge (X does not matter) return ResizeBottom; } }else if(pt.x() < WIN_BORDER){ @@ -80,7 +81,7 @@ RootSubWindow::ModState RootSubWindow::getStateAtPoint(QPoint pt, bool setoffset if(setoffset){ offset.setX(pt.x()); offset.setY(pt.y()); } //difference from top-left corner return ResizeTopLeft; }else if(pt.y() > (this->height()*4.0/5.0)){ - if(setoffset){ offset.setX(pt.x()); offset.setY(this->height()-pt.y()); } //difference from bottom-left corner + if(setoffset){ offset.setX(pt.x()); offset.setY(pt.y()-this->height()); } //difference from bottom-left corner return ResizeBottomLeft; }else{ if(setoffset){ offset.setX(pt.x()); offset.setY(0); } //difference from left edge (Y does not matter) @@ -89,13 +90,13 @@ RootSubWindow::ModState RootSubWindow::getStateAtPoint(QPoint pt, bool setoffset }else if(pt.x() > (this->width()-WIN_BORDER) ){ //Right side options if(pt.y() < this->height()/5){ - if(setoffset){ offset.setX(this->width()-pt.x()); offset.setY(pt.y()); } //difference from top-right corner + if(setoffset){ offset.setX(pt.x()-this->width()); offset.setY(pt.y()); } //difference from top-right corner return ResizeTopRight; }else if(pt.y() > (this->height()*4.0/5.0)){ - if(setoffset){ offset.setX(this->width()-pt.x()); offset.setY(this->height()-pt.y()); } //difference from bottom-right corner + if(setoffset){ offset.setX(pt.x()-this->width()); offset.setY(pt.y()-this->height()); } //difference from bottom-right corner return ResizeBottomRight; }else{ - if(setoffset){ offset.setX(this->width()-pt.x()); offset.setY(0); } //difference from right edge (Y does not matter) + if(setoffset){ offset.setX(pt.x()-this->width()); offset.setY(0); } //difference from right edge (Y does not matter) return ResizeRight; } }else{ @@ -186,12 +187,14 @@ void RootSubWindow::initWindowFrame(){ titleBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); mainLayout->addWidget(titleBar); mainLayout->addWidget(WinWidget); + mainLayout->setAlignment(titleBar, Qt::AlignTop); //Setup the cursors for the buttons closeB->setCursor(Qt::ArrowCursor); minB->setCursor(Qt::ArrowCursor); maxB->setCursor(Qt::ArrowCursor); - otherM->setCursor(Qt::ArrowCursor); + otherB->setCursor(Qt::ArrowCursor); titleLabel->setCursor(Qt::ArrowCursor); + WinWidget->setCursor(Qt::ArrowCursor); //Now all the stylesheet options this->setObjectName("WindowFrame"); closeB->setObjectName("Button_Close"); @@ -239,6 +242,16 @@ void RootSubWindow::enableFrame(bool on){ WIN->setProperty(NativeWindow::FrameExtents, QVariant::fromValue< QList<int> >(extents) ); //save to structure now } +void RootSubWindow::enableFrame(QList<NativeWindow::Type> types){ + static QList<NativeWindow::Type> noframe; + if(noframe.isEmpty()){ noframe << NativeWindow::T_DESKTOP << NativeWindow::T_DOCK << NativeWindow::T_TOOLBAR << NativeWindow::T_MENU << NativeWindow::T_SPLASH << NativeWindow::T_DROPDOWN_MENU << NativeWindow::T_POPUP_MENU << NativeWindow::T_TOOLTIP << NativeWindow::T_NOTIFICATION << NativeWindow::T_COMBO << NativeWindow::T_DND; } + for(int i=0; i<types.length(); i++){ + if(noframe.contains(types[i])){ enableFrame(false); return; } + } + enableFrame(true); + //Now make buttons visible as appropriate for the type + //NativeWindow::T_UTILITY, NativeWindow::T_DIALOG, , NativeWindow::T_NORMAL +} void RootSubWindow::LoadProperties( QList< NativeWindow::Property> list){ QList<QVariant> vals; //Always ensure that visibility changes are evaluated last @@ -277,12 +290,44 @@ void RootSubWindow::LoadAllProperties(){ //Button Actions - public so they can be tied to key shortcuts and stuff as well void RootSubWindow::toggleMinimize(){ - WIN->setProperty(NativeWindow::Visible, false); - QTimer::singleShot(2000, this, SLOT(toggleMaximize()) ); + WIN->toggleVisibility(); } void RootSubWindow::toggleMaximize(){ - WIN->setProperty(NativeWindow::Visible, true); + //Get the current screen that this window is on + QList<QScreen*> screens = QApplication::screens(); + QRect rect; + int primaryscreen = 0; //fallback value + for(int i=0; i<screens.length(); i++){ + QRect intersect = screens[i]->geometry().intersected(this->geometry()); + if( (intersect.width()-rect.width() + intersect.height()-rect.height()) > 0){ + rect = intersect; + primaryscreen = i; + } + } + //Now that we have the screen dimensions, lets check/change the window + rect = screens[primaryscreen]->availableGeometry(); + QList< NativeWindow::State > states = WIN->property(NativeWindow::States).value< QList< NativeWindow::State> >(); + if(rect == this->geometry() || states.contains(NativeWindow::S_MAX_VERT) || states.contains(NativeWindow::S_MAX_HORZ)){ + //Already maximized - try to restore it to the previous size/location + if(!lastMaxGeom.isNull()){ + rect = lastMaxGeom; + }else{ + // no last geometry - started out maximized? + // make it half the screen size and centered on the screen + QPoint center = rect.center(); + rect.setWidth( rect.width()/2 ); + rect.setHeight( rect.height()/2 ); + rect.moveTopLeft( center - QPoint(rect.width()/2, rect.height()/2) ); + } + lastMaxGeom = QRect(); //clear this saved geom + }else{ + //Not maximized yet - go ahead and make it so + lastMaxGeom = this->geometry(); //save this for later; + } + //qDebug() << "Toggle Maximize:" << this->geometry() << rect; + QString anim_type = DesktopSettings::instance()->value(DesktopSettings::Animation, "window/move", "random").toString(); + loadAnimation(anim_type, NativeWindow::Size, rect); } void RootSubWindow::triggerClose(){ @@ -290,11 +335,18 @@ void RootSubWindow::triggerClose(){ } void RootSubWindow::toggleSticky(){ - + QList< NativeWindow::State> states = WIN->property(NativeWindow::States).value< QList< NativeWindow::State > >(); + if(states.contains(NativeWindow::S_STICKY)){ + states.removeAll(NativeWindow::S_STICKY); + }else{ + states << NativeWindow::S_STICKY; + } + WIN->requestProperty(NativeWindow::States, QVariant::fromValue<QList <NativeWindow::State> >(states) ); } void RootSubWindow::activate(){ - WIN->requestProperty(NativeWindow::Active, true); + //WinWidget->raiseWindow(); + WIN->requestProperty(NativeWindow::Active, true, true); } //Mouse Interactivity @@ -309,13 +361,15 @@ void RootSubWindow::startMoving(){ activeState = Move; offset = this->mapFromGlobal(curpt); setMouseCursor(activeState, true); //this one is an override cursor - //WinWidget->pause(); - //Also need to capture the mouse + WinWidget->pause(); this->grabMouse(); } void RootSubWindow::startResizing(){ - + activeState = getStateAtPoint( this->mapFromGlobal(QCursor::pos()), true); //also have it set the offset variable + setMouseCursor(activeState, true); //this one is an override cursor + WinWidget->pause(); + this->grabMouse(); } // === PRIVATE SLOTS === @@ -325,9 +379,11 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList //qDebug() << "RootSubWindow: Property Changed:" << props[i] << vals[i]; switch(props[i]){ case NativeWindow::Visible: - //qDebug() << "Got Visibility Change:" << vals[i] << this->geometry() << WIN->geometry(); - if(vals[i].toBool()){ loadAnimation( DesktopSettings::instance()->value(DesktopSettings::Animation, "window/appear", "random").toString(), NativeWindow::Visible, vals[i]); } - else{ loadAnimation( DesktopSettings::instance()->value(DesktopSettings::Animation, "window/disappear", "random").toString(), NativeWindow::Visible, vals[i]); } + if(!WinWidget->isPaused() && (this->isVisible()!=vals[i].toBool()) && activeState==Normal ){ + //qDebug() << "Got Visibility Change:" << vals[i] << this->geometry() << WIN->geometry(); + if(vals[i].toBool()){ loadAnimation( DesktopSettings::instance()->value(DesktopSettings::Animation, "window/appear", "random").toString(), NativeWindow::Visible, vals[i]); } + else{ loadAnimation( DesktopSettings::instance()->value(DesktopSettings::Animation, "window/disappear", "random").toString(), NativeWindow::Visible, vals[i]); } + } break; case NativeWindow::Title: titleLabel->setText(vals[i].toString()); @@ -338,6 +394,10 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList else{ otherB->setIcon(vals[i].value<QIcon>()); } break; case NativeWindow::GlobalPos: + if(vals[i].toPoint()!=QPoint(0,0)){ + WinWidget->resyncWindow(); + } + break; case NativeWindow::Size: //qDebug() << " - SIZE CHANGE"; if(WIN->property(NativeWindow::FrameExtents).isNull() && (i<props.indexOf(NativeWindow::FrameExtents)) ){ @@ -345,9 +405,11 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList props << props.takeAt(i); vals << vals.takeAt(i); i--; - }else if(anim->state() != QPropertyAnimation::Running ){ - if(WIN->property(NativeWindow::Size).toSize() != WinWidget->size() && activeState==Normal ){ - this->setGeometry(WIN->geometry()); + }else if(!WinWidget->isPaused() && activeState==Normal){ + if(WIN->property(NativeWindow::Size).toSize() != WinWidget->size()){ + //qDebug() << "Got Direct Geometry Change:" << WIN->geometry(); + this->setGeometry( QRect(this->geometry().topLeft(), WIN->geometry().size()) ); + WinWidget->resyncWindow(); } } break; @@ -370,7 +432,7 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList WinWidget->setMaximumSize(vals[i].toSize()); break; case NativeWindow::Active: - //if(vals[i].toBool()){ WinWidget->setFocus(); } + if(vals[i].toBool()){ activate(); } //WinWidget->raiseWindow(); } break; /*case NativeWindow::FrameExtents: qDebug() << " - FRAME CHANGE"; @@ -382,7 +444,8 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList mainLayout->setContentsMargins( vals[i].value< QList<int> >().at(0),vals[i].value< QList<int> >().at(2) - titleLabel->height(),vals[i].value< QList<int> >().at(1),vals[i].value< QList<int> >().at(3)); break;*/ case NativeWindow::WinTypes: - enableFrame(vals[i].value< QList<NativeWindow::Type> >().contains(NativeWindow::T_NORMAL) ); + //qDebug() << "Got Window Types:" << vals[i].value< QList<NativeWindow::Type> >(); + enableFrame(vals[i].value< QList<NativeWindow::Type> >() ); break; default: qDebug() << "Window Property Unused:" << props[i] << vals[i]; @@ -394,27 +457,24 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList void RootSubWindow::mousePressEvent(QMouseEvent *ev){ activate(); this->raise(); + QFrame::mousePressEvent(ev); //qDebug() << "Frame Mouse Press Event"; - offset.setX(0); offset.setY(0); if(activeState != Normal){ return; } // do nothing - already in a state of grabbed mouse - //this->activate(); - if(this->childAt(ev->pos())!=0){ - //Check for any non-left-click event and skip it - if(ev->button()!=Qt::LeftButton){ return; } - activeState = Move; - offset.setX(ev->pos().x()); offset.setY(ev->pos().y()); - }else{ - //Clicked on the frame somewhere - activeState = getStateAtPoint(ev->pos(), true); //also have it set the offset variable + offset.setX(0); offset.setY(0); + if(ev->button()==Qt::LeftButton){ + if(this->childAt(ev->pos())!=0){ + //Clicked on the titlebar + startMoving(); + }else{ + //Clicked on the frame somewhere + startResizing(); + } } - setMouseCursor(activeState, true); //this one is an override cursor - //if(activeState!=Normal){WinWidget->pause(); } - if(activeState!=Normal && activeState!=Move){WinWidget->pause(); } - QFrame::mousePressEvent(ev); + } void RootSubWindow::mouseMoveEvent(QMouseEvent *ev){ - activate(); //make sure this window is "Active" + QFrame::mouseMoveEvent(ev); if(activeState == Normal){ setMouseCursor( getStateAtPoint(ev->pos()) ); //just update the mouse cursor }else{ @@ -489,10 +549,15 @@ void RootSubWindow::mouseMoveEvent(QMouseEvent *ev){ break; } //if( (geom.width()%2==0 && geom.height()%2==0) || activeState==Move){ - this->setGeometry(geom); + //qDebug() << " Change Window:" << this->geometry() << geom; + if(activeState==Move){ this->setGeometry(geom); } + else{ + //qDebug() << " Change Window Dimensions:" << this->geometry() << geom; + //qDebug() << " - Mouse Pos:" << ev->globalPos() << ev->pos() << "Offset" << offset; + this->setGeometry(geom); + } //} } - QFrame::mouseMoveEvent(ev); } void RootSubWindow::mouseReleaseEvent(QMouseEvent *ev){ @@ -500,28 +565,37 @@ void RootSubWindow::mouseReleaseEvent(QMouseEvent *ev){ //qDebug() << "Frame Mouse Release Event"; QFrame::mouseReleaseEvent(ev); if( (activeState==Normal) && (titleBar->geometry().contains(ev->pos())) && (ev->button()==Qt::RightButton) ){ + //WinWidget->raiseWindow();//need to ensure the native window is always on top of this frame but under the menu otherM->popup(ev->globalPos()); return; } - if(activeState!=Normal){ WinWidget->resume(); } - if(activeState!=Normal && activeState!=Move){WinWidget->resume(); } - activeState = Normal; - QApplication::restoreOverrideCursor(); - setMouseCursor( getStateAtPoint(ev->pos()) ); + if(activeState!=Normal){ + if(WinWidget->isPaused()){ WinWidget->resume(); } + activeState = Normal; + QApplication::restoreOverrideCursor(); + setMouseCursor( getStateAtPoint(ev->pos()) ); + } if(QFrame::mouseGrabber() == this){ this->releaseMouse(); } + activate(); + //QTimer::singleShot(0, WinWidget, SLOT(raiseWindow()) ); } -void RootSubWindow::leaveEvent(QEvent *ev){ +/*void RootSubWindow::enterEvent(QEvent *ev){ + QFrame::enterEvent(ev); + WinWidget->raiseWindow(); +}*/ +/*void RootSubWindow::leaveEvent(QEvent *ev){ QFrame::leaveEvent(ev); if(activeState == Normal){ setMouseCursor(Normal); } -} + if(!QRect(QPoint(0,0),this->size()).contains( this->mapFromGlobal(QCursor::pos())) ){ WinWidget->lowerWindow(); } +}*/ void RootSubWindow::moveEvent(QMoveEvent *ev){ //qDebug() << "Got Move Event:" << ev->pos() << WinWidget->geometry(); QFrame::moveEvent(ev); - if(!closing && anim->state()!=QAbstractAnimation::Running){ + if(!closing && !WinWidget->isPaused()){ moveTimer->start(); } } diff --git a/src-qt5/core/libLumina/RootSubWindow.h b/src-qt5/core/libLumina/obsolete/RootSubWindow.h index 0af77009..598298e2 100644 --- a/src-qt5/core/libLumina/RootSubWindow.h +++ b/src-qt5/core/libLumina/obsolete/RootSubWindow.h @@ -55,16 +55,22 @@ private: QPropertyAnimation *anim; QVariant animResetProp; QTimer *moveTimer; - QRect lastGeom; //frame coordinates + QRect lastGeom, lastMaxGeom; //frame coordinates void initWindowFrame(); void enableFrame(bool); + void enableFrame(QList<NativeWindow::Type> types); void LoadProperties( QList< NativeWindow::Property> list); static QStringList validAnimations(NativeWindow::Property); public slots: + void ensureVisible(){ WIN->setProperty(NativeWindow::Visible, true); } + void giveMouseFocus(){ WinWidget->raiseWindow(); } + void removeMouseFocus(){ WinWidget->lowerWindow(); } + void giveKeyboardFocus(){ WIN->requestProperty(NativeWindow::Active, true, true); } + void clientClosed(); void LoadAllProperties(); @@ -91,11 +97,13 @@ protected: void mousePressEvent(QMouseEvent*); void mouseMoveEvent(QMouseEvent*); void mouseReleaseEvent(QMouseEvent*); - void leaveEvent(QEvent *ev); - + //void leaveEvent(QEvent *ev); + //void enterEvent(QEvent *ev); void moveEvent(QMoveEvent *ev); - +signals: + void windowMoved(RootSubWindow*); + void windowAnimFinished(); }; #endif diff --git a/src-qt5/core/libLumina/obsolete/RootWindow-mgmt.cpp b/src-qt5/core/libLumina/obsolete/RootWindow-mgmt.cpp new file mode 100644 index 00000000..24ea639b --- /dev/null +++ b/src-qt5/core/libLumina/obsolete/RootWindow-mgmt.cpp @@ -0,0 +1,95 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2016, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "RootWindow.h" + +//Primary/private function +void RootWindow::arrangeWindows(RootSubWindow *primary, QString type, bool primaryonly){ + if(type.isEmpty()){ type = "center"; } + if(primary==0){ + //Get the currently active window and treat that as the primary + for(int i=0; i<WINDOWS.length(); i++){ + if(WINDOWS[i]->nativeWindow()->property(NativeWindow::Active).toBool()){ primary = WINDOWS[i]; } + } + if(primary==0 && !WINDOWS.isEmpty()){ primary = WINDOWS[0]; } //just use the first one in the list + } + //Now get the current screen that the mouse cursor is over (and valid area) + QScreen *screen = screenUnderMouse(); + QRect desktopArea = screen->availableGeometry(); + //qDebug() << "Arrange Windows:" << primary->geometry() << type << primaryonly << desktopArea; + //Now start filtering out all the windows that need to be ignored + int wkspace = primary->nativeWindow()->property(NativeWindow::Workspace).toInt(); + QList<RootSubWindow*> winlist = WINDOWS; + for(int i=0; i<winlist.length(); i++){ + if(winlist[i]->nativeWindow()->property(NativeWindow::Workspace).toInt()!=wkspace + || !winlist[i]->nativeWindow()->property(NativeWindow::Visible).toBool() + || desktopArea.intersected(winlist[i]->geometry()).isNull() ){ + //window is outside of the desired area or invisible - ignore it + winlist.removeAt(i); + i--; + } + } + if(!winlist.contains(primary)){ winlist << primary; } //could be doing this on a window right before it is shown + else if(primaryonly){ winlist.removeAll(primary); winlist << primary; } //move primary window to last + //QRegion used; + for(int i=0; i<winlist.length(); i++){ + if(primaryonly && winlist[i]!=primary){ continue; } //skip this window + //Now loop over the windows and arrange them as needed + QRect geom = winlist[i]->geometry(); + //verify that the window is contained by the desktop area + if(geom.width()>desktopArea.width()){ geom.setWidth(desktopArea.width()); } + if(geom.height()>desktopArea.height()){ geom.setHeight(desktopArea.height()); } + //Now apply the proper placement routine + if(type=="center"){ + QPoint ct = desktopArea.center(); + winlist[i]->setGeometry( ct.x()-(geom.width()/2), ct.y()-(geom.height()/2), geom.width(), geom.height()); + }else if(type=="snap"){ + + }else if(type=="single_max"){ + winlist[i]->setGeometry( desktopArea.x(), desktopArea.y(), desktopArea.width(), desktopArea.height()); + }else if(type=="under-mouse"){ + QPoint ct = QCursor::pos(); + geom = QRect(ct.x()-(geom.width()/2), ct.y()-(geom.height()/2), geom.width(), geom.height() ); + //Now verify that the top of the window is still contained within the desktop area + if(geom.y() < desktopArea.y() ){ geom.moveTop(desktopArea.y()); } + winlist[i]->setGeometry(geom); + + } + //qDebug() << " - New Geometry:" << winlist[i]->geometry(); + } //end loop over winlist +} + +// ================ +// Public slots for starting the arrangement routine(s) above +// ================ +void RootWindow::ArrangeWindows(WId primary, QString type){ + RootSubWindow* win = windowForId(primary); + if(type.isEmpty()){ type = "center"; } //grab the default arrangement format + arrangeWindows(win, type); +} + +void RootWindow::TileWindows(WId primary, QString type){ + RootSubWindow* win = windowForId(primary); + if(type.isEmpty()){ type = "single_max"; } //grab the default arrangement format for tiling + arrangeWindows(win, type); +} + +void RootWindow::CheckWindowPosition(WId id, bool newwindow){ + //used after a "drop" to validate/snap/re-arrange window(s) as needed + // if "newwindow" is true, then this is the first-placement routine for a window before it initially appears + RootSubWindow* win = windowForId(id); + if(win==0){ return; } //invalid window + QRect geom = win->nativeWindow()->geometry(); + bool changed = false; + //Make sure it is on the screen (quick check) + if(geom.x() < 0){ changed = true; geom.moveLeft(0); } + if(geom.y() < 0){ changed = true; geom.moveTop(0); } + if(geom.width() < 20){ changed = true; geom.setWidth(100); } + if(geom.height() < 20){ changed = true; geom.setHeight(100); } + if(changed){ win->setGeometry(geom); } + //Now run it through the window arrangement routine + arrangeWindows(win, newwindow ?"center" : "snap", true); +} diff --git a/src-qt5/core/libLumina/RootWindow.cpp b/src-qt5/core/libLumina/obsolete/RootWindow.cpp index 48c37c86..705297be 100644 --- a/src-qt5/core/libLumina/RootWindow.cpp +++ b/src-qt5/core/libLumina/obsolete/RootWindow.cpp @@ -10,12 +10,14 @@ #include <QScreen> #include <QDebug> -#define DEBUG 1 +#define DEBUG 0 // === PUBLIC === RootWindow::RootWindow() : QWidget(0, Qt::Window | Qt::BypassWindowManagerHint | Qt::WindowStaysOnBottomHint){ qRegisterMetaType<WId>("WId"); autoResizeTimer = 0; + lastActiveMouse = 0; + mouseFocusTimer = 0; this->setMouseTracking(true); } @@ -33,6 +35,12 @@ void RootWindow::start(){ connect(QApplication::desktop(), SIGNAL(resized(int)), autoResizeTimer, SLOT(start()) ); connect(QApplication::desktop(), SIGNAL(screenCountChanged(int)), autoResizeTimer, SLOT(start()) ); } + if(mouseFocusTimer==0){ + mouseFocusTimer = new QTimer(this); + mouseFocusTimer->setInterval(100); + connect(mouseFocusTimer, SIGNAL(timeout()), this, SLOT(checkMouseFocus()) ); + + } this->show(); ResizeRoot(); emit RegisterVirtualRoot(this->winId()); @@ -108,6 +116,16 @@ RootSubWindow* RootWindow::windowForId(WId id){ return tmp; } +QScreen* RootWindow::screenUnderMouse(){ + QPoint mpos = QCursor::pos(); + QList<QScreen*> scrns = QApplication::screens(); + for(int i=0; i<scrns.length(); i++){ + if(scrns[i]->geometry().contains(mpos)){ return scrns[i]; } + } + //Could not find an exact match - just return the first one + return scrns.first(); +} + // === PUBLIC SLOTS === void RootWindow::ResizeRoot(){ if(DEBUG){ qDebug() << "Resize Root..."; } @@ -182,6 +200,32 @@ void RootWindow::ChangeWallpaper(QString id, RootWindow::ScaleType scale, QStrin } +void RootWindow::checkMouseFocus(){ + QPoint cpos = QCursor::pos(); + if(lastCursorPos != cpos){ emit MouseMoved(); } + lastCursorPos = cpos; + QWidget *child = this->childAt(QCursor::pos()); + while(child!=0 && child->whatsThis()!="RootSubWindow"){ + child = child->parentWidget(); + if(child==this){ child = 0;} //end of the line + } + + if(child==lastActiveMouse){ return; } //nothing new to do + //Make sure the child is actually a RootSubWindow + if(lastActiveMouse!=0){ lastActiveMouse->removeMouseFocus(); lastActiveMouse = 0; } + if(child!=0){ + lastActiveMouse = static_cast<RootSubWindow*>(child); + + if(DesktopSettings::instance()->value(DesktopSettings::WM, "focusFollowsMouse", true).toBool()){ + lastActiveMouse->giveKeyboardFocus(); + if(DesktopSettings::instance()->value(DesktopSettings::WM, "raiseOnFocus", false).toBool()){ + lastActiveMouse->raise(); + } + } + lastActiveMouse->giveMouseFocus(); //always give mouse focus on mouseover + } +} + void RootWindow::NewWindow(NativeWindow *win){ RootSubWindow *subwin = 0; //qDebug() << "Got New Window:" << win->property(NativeWindow::Title); @@ -190,19 +234,29 @@ void RootWindow::NewWindow(NativeWindow *win){ } if(subwin==0){ subwin = new RootSubWindow(this, win); + subwin->setWhatsThis("RootSubWindow"); connect(win, SIGNAL(WindowClosed(WId)), this, SLOT(CloseWindow(WId)) ); + connect(subwin, SIGNAL(windowAnimFinished()), this, SLOT(checkMouseFocus()) ); WINDOWS << subwin; } + //QApplication::processEvents(); CheckWindowPosition(win->id(), true); //first-time run - //win->setProperty(NativeWindow::Visible, true); + //QTimer::singleShot(300, subwin, SLOT(ensureVisible())); + win->setProperty(NativeWindow::Visible, true); //win->requestProperty( NativeWindow::Active, true); - win->requestProperties(QList<NativeWindow::Property>() << NativeWindow::Visible << NativeWindow::Active, QList<QVariant>() << true << true); + //win->requestProperties(QList<NativeWindow::Property>() << NativeWindow::Visible << NativeWindow::Active, QList<QVariant>() << true << true, true); + if(!mouseFocusTimer->isActive()){ mouseFocusTimer->start(); } } void RootWindow::CloseWindow(WId win){ for(int i=0; i<WINDOWS.length(); i++){ - if(WINDOWS[i]->id() == win){ WINDOWS.takeAt(i)->clientClosed(); break; } + if(WINDOWS[i]->id() == win){ + if(lastActiveMouse==WINDOWS[i]){ lastActiveMouse = 0; } //no longer valid + WINDOWS.takeAt(i)->clientClosed(); + break; + } } + if(WINDOWS.isEmpty()){ mouseFocusTimer->stop(); } //no windows to look for } // === PRIVATE SLOTS === @@ -210,11 +264,11 @@ void RootWindow::CloseWindow(WId win){ // === PROTECTED === void RootWindow::paintEvent(QPaintEvent *ev){ //qDebug() << "RootWindow: PaintEvent:" << ev->rect(); //<< QDateTime::currentDateTime()->toString(QDateTime::ShortDate); - QWidget::paintEvent(ev); + //QWidget::paintEvent(ev); bool found = false; QPainter painter(this); QRect geom = ev->rect(); - geom.adjust(-10,-10,10,10); //give it a few more pixels in each direction to repaint (noticing some issues in Qt 5.7.1) + geom.adjust(-100,-100,100,100); //give it a few more pixels in each direction to repaint (noticing some issues in Qt 5.7.1) for(int i=0; i<WALLPAPERS.length(); i++){ if(WALLPAPERS[i].area.intersects(geom) ){ found = true; diff --git a/src-qt5/core/libLumina/RootWindow.h b/src-qt5/core/libLumina/obsolete/RootWindow.h index 9b1334dc..c5cd44a0 100644 --- a/src-qt5/core/libLumina/RootWindow.h +++ b/src-qt5/core/libLumina/obsolete/RootWindow.h @@ -18,6 +18,8 @@ #include <QTimer> #include <QApplication> #include <QPaintEvent> +#include <QScreen> +#include <QDebug> #include "RootSubWindow.h" @@ -43,7 +45,9 @@ private: ScaleType scale; QPixmap wallpaper; //Note: This pixmap will always be the same size as "area" }; - QTimer *autoResizeTimer; + QTimer *autoResizeTimer, *mouseFocusTimer; + RootSubWindow *lastActiveMouse; + QPoint lastCursorPos; QList<screeninfo> WALLPAPERS; void updateScreenPixmap(screeninfo *info); //used for recalculating the wallpaper pixmap based on file/area/scale as needed @@ -51,12 +55,16 @@ private: //Window Management QList<RootSubWindow*> WINDOWS; RootSubWindow* windowForId(WId id); - void arrangeWindows(RootSubWindow *primary = 0, QString type = ""); + void arrangeWindows(RootSubWindow *primary = 0, QString type = "", bool primaryonly = false); + + QScreen* screenUnderMouse(); + public slots: void ResizeRoot(); void ChangeWallpaper(QString id, RootWindow::ScaleType scale, QString file); //Note: for "SingleColor" scaling the "file" variable should be "rgb(R,G,B)" or "#hexcode" + void checkMouseFocus(); void NewWindow(NativeWindow*); void CloseWindow(WId); //automatically connected for any new native window @@ -76,6 +84,8 @@ signals: void RootResized(QRect); void NewScreens(QStringList); // [screen_id_1, screen_id_2, etc..] void RemovedScreens(QStringList); // [screen_id_1, screen_id_2, etc..] + void WorkspaceChanged(int); + void MouseMoved(); }; diff --git a/src-qt5/core/libLumina/RootWindow.pri b/src-qt5/core/libLumina/obsolete/RootWindow.pri index 9426b6b4..9426b6b4 100644 --- a/src-qt5/core/libLumina/RootWindow.pri +++ b/src-qt5/core/libLumina/obsolete/RootWindow.pri diff --git a/src-qt5/core/lumina-checkpass/main.c b/src-qt5/core/lumina-checkpass/main.c index e12e7c78..70caf396 100644 --- a/src-qt5/core/lumina-checkpass/main.c +++ b/src-qt5/core/lumina-checkpass/main.c @@ -14,23 +14,58 @@ //=========================================== //Standard C libary #include <unistd.h> // Standard C +#include <stdlib.h> #include <stdio.h> // Usage output #include <pwd.h> // User DB information +#include <string.h> //PAM/security libraries #include <sys/types.h> #include <security/pam_appl.h> #include <security/openpam.h> +void showUsage(){ + puts("lumina-checkpass: Simple user-level check for password validity (for screen unlockers and such)."); + puts("Usage:"); + //puts(" lumina-checkpass <password>"); + puts(" lumina-checkpass -fd <file descriptor>"); + puts(" lumina-checkpass -f <file path>"); + puts("Returns: 0 for a valid password, 1 for invalid"); +} + int main(int argc, char** argv){ //Check the inputs - if(argc!=2){ + if(argc!=3){ //Invalid inputs - show the help text - puts("lumina-checkpass: Simple user-level check for password validity (for screen unlockers and such)."); - puts("Usage: lumina-checkpass <password>"); - puts("Returns: 0 for a valid password, 1 for invalid"); + showUsage(); return 1; } + char*pass = 0; + if(argc==3 && 0==strcmp(argv[1],"-fd") ){ + FILE *fp = fdopen(atoi(argv[2]), "r"); + size_t len; + if(fp!=0){ + ssize_t slen = getline(&pass, &len, fp); + if(pass[slen-1]=='\n'){ pass[slen-1] = '\0'; } + } + fclose(fp); + }else if(argc==3 && 0==strcmp(argv[1],"-f") ){ + FILE *fp = fopen(argv[2], "r"); + size_t len; + if(fp!=0){ + ssize_t slen = getline(&pass, &len, fp); + if(pass[slen-1]=='\n'){ pass[slen-1] = '\0'; } + }else{ + puts("[ERROR] Unknown option provided"); + puts("----------------"); + showUsage(); + return 1; + } + fclose(fp); + } + if(pass == 0){ puts("Could not read password!!"); return 1; } //error in reading password + //puts("Read Password:"); + //puts(pass); //Validate current user (make sure current UID matches the logged-in user, char* cUser = getlogin(); struct passwd *pwd = 0; @@ -44,7 +79,7 @@ int main(int argc, char** argv){ int ret = pam_start( "system", cUser, &pamc, &pamh); if(ret != PAM_SUCCESS){ return 1; } //could not init PAM //char* cPassword = argv[1]; - ret = pam_set_item(pamh, PAM_AUTHTOK, argv[1]); + ret = pam_set_item(pamh, PAM_AUTHTOK, pass); //Authenticate with PAM ret = pam_authenticate(pamh,0); //this can be true without verifying password if pam_self.so is used in the auth procedures (common) if( ret == PAM_SUCCESS ){ ret = pam_acct_mgmt(pamh,0); } //Check for valid, unexpired account and verify access restrictions diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/JsonMenu.h b/src-qt5/core/lumina-desktop-unified/JsonMenu.h index 5a6b2237..2624153d 100644 --- a/src-qt5/core/lumina-desktop-unified/src-DE/JsonMenu.h +++ b/src-qt5/core/lumina-desktop-unified/JsonMenu.h @@ -4,21 +4,13 @@ // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== -// This menu is used to automatically generate menu contents +// This menu is used to automatically generate menu contents // based on the JSON output of an external script/utility //=========================================== #ifndef _LUMINA_DESKTOP_JSON_MENU_H #define _LUMINA_DESKTOP_JSON_MENU_H -#include <QMenu> -#include <QString> -#include <QJsonDocument> -#include <QJsonObject> -#include <QJsonArray> - -#include <LUtils.h> -#include <LuminaXDG.h> -#include "LSession.h" +#include <global-objects.h> class JsonMenu : public QMenu{ Q_OBJECT @@ -38,7 +30,7 @@ private slots: QString type = obj.value("type").toString(); if(type.toLower()=="item"){ QAction *act = this->addAction(label); - if(obj.contains("icon")){ act->setIcon( LXDG::findIcon(obj.value("icon").toString(),"") ); } + if(obj.contains("icon")){ LIconCache::instance()->loadIcon(act, obj.value("icon").toString()); } if(obj.contains("action")){ act->setWhatsThis( obj.value("action").toString() ); } else{ act->setEnabled(false); } //not interactive }else if(type.toLower()=="menu"){ @@ -48,7 +40,7 @@ private slots: if(!obj.contains("exec")){ return; } JsonMenu *menu = new JsonMenu(obj.value("exec").toString(), this); menu->setTitle(label); - if(obj.contains("icon")){ menu->setIcon(LXDG::findIcon(obj.value("icon").toString(),"") ); } + if(obj.contains("icon")){ LIconCache::instance()->loadIcon(menu, obj.value("icon").toString()); } this->addMenu(menu); } } @@ -73,7 +65,7 @@ private slots: QString cmd = act->whatsThis(); QString bin = cmd.section(" ",0,0); if( !LUtils::isValidBinary(bin) ){ cmd.prepend("lumina-open "); } - LSession::handle()->LaunchApplication(cmd); + LSession::instance()->LaunchApplication(cmd); } }; #endif diff --git a/src-qt5/core/lumina-desktop-unified/LSession.cpp b/src-qt5/core/lumina-desktop-unified/LSession.cpp index c6f79584..e1251c01 100644 --- a/src-qt5/core/lumina-desktop-unified/LSession.cpp +++ b/src-qt5/core/lumina-desktop-unified/LSession.cpp @@ -11,7 +11,7 @@ #include "BootSplash.h" #ifndef DEBUG -#define DEBUG 0 +#define DEBUG 1 #endif //Initialize all the global objects to null pointers @@ -28,6 +28,7 @@ LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lu qRegisterMetaType< Qt::Key >("Qt::Key"); qRegisterMetaType< NativeWindow::Property >("NativeWindow::Property"); qRegisterMetaType< QList< NativeWindow::Property > >("QList<NativeWindow::Property>"); + qRegisterMetaType< NativeWindowSystem::MouseButton >("NativeWindowSystem::MouseButton"); mediaObj = 0; //private object used for playing login/logout chimes if(this->isPrimaryProcess()){ @@ -50,10 +51,10 @@ LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lu Lumina::SS = new LScreenSaver(); //Now put the Native Window System into it's own thread to keep things snappy Lumina::EVThread = new QThread(); - Lumina::NWS->moveToThread(Lumina::EVThread); - Lumina::EVThread->start(); + //Lumina::NWS->moveToThread(Lumina::EVThread); + //Lumina::EVThread->start(); + Lumina::APPLIST = XDGDesktopList::instance(); Lumina::ROOTWIN = new RootWindow(); - Lumina::APPLIST = new XDGDesktopList(0, true); //keep this list up to date Lumina::SHORTCUTS = new LShortcutEvents(); //this can be moved to it's own thread eventually as well setupGlobalConnections(); @@ -103,7 +104,7 @@ void LSession::setupSession(){ splash.showScreen("user"); if(DEBUG){ qDebug() << " - Init User Files:" << timer->elapsed();} //checkUserFiles(); //adds these files to the watcher as well - + Lumina::ROOTWIN->start(); //Initialize the internal variables //DESKTOPS.clear(); @@ -115,7 +116,6 @@ void LSession::setupSession(){ if(DEBUG){ qDebug() << " - Populate App List:" << timer->elapsed();} Lumina::APPLIST->updateList(); //appmenu = new AppMenu(); - splash.showScreen("menus"); //if(DEBUG){ qDebug() << " - Init SettingsMenu:" << timer->elapsed();} //settingsmenu = new SettingsMenu(); @@ -128,15 +128,16 @@ void LSession::setupSession(){ QList<QScreen*> scrns= QApplication::screens(); for(int i=0; i<scrns.length(); i++){ qDebug() << " --- Load Wallpaper for Screen:" << scrns[i]->name(); - Lumina::ROOTWIN->ChangeWallpaper(scrns[i]->name(), RootWindow::Stretch, LOS::LuminaShare()+"desktop-background.jpg"); + RootDesktopObject::instance()->ChangeWallpaper(scrns[i]->name(),QUrl::fromLocalFile(LOS::LuminaShare()+"desktop-background.jpg").toString() ); } - Lumina::ROOTWIN->start(); Lumina::NWS->setRoot_numberOfWorkspaces(QStringList() << "one" << "two"); Lumina::NWS->setRoot_currentWorkspace(0); - DesktopContextMenu *cmenu = new DesktopContextMenu(Lumina::ROOTWIN); + if(DEBUG){ qDebug() << " - Create Desktop Context Menu"; } + + /*DesktopContextMenu *cmenu = new DesktopContextMenu(Lumina::ROOTWIN); connect(cmenu, SIGNAL(showLeaveDialog()), this, SLOT(StartLogout()) ); - cmenu->start(); + cmenu->start();*/ //desktopFiles = QDir(QDir::homePath()+"/Desktop").entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs, QDir::Name | QDir::IgnoreCase | QDir::DirsFirst); //updateDesktops(); @@ -165,6 +166,7 @@ void LSession::setupSession(){ if(DEBUG){ qDebug() << " - Init Finished:" << timer->elapsed(); delete timer;} Lumina::SHORTCUTS->start(); //Startup the shortcut handler now + //for(int i=0; i<4; i++){ LSession::processEvents(); } //Again, just a few event loops here so thing can settle before we close the splash screen //launchStartupApps(); QTimer::singleShot(500, this, SLOT(launchStartupApps()) ); @@ -226,11 +228,15 @@ void LSession::setupGlobalConnections(){ //Root window connections connect(Lumina::ROOTWIN, SIGNAL(RegisterVirtualRoot(WId)), Lumina::NWS, SLOT(RegisterVirtualRoot(WId)) ); connect(Lumina::ROOTWIN, SIGNAL(RootResized(QRect)), Lumina::NWS, SLOT(setRoot_desktopGeometry(QRect)) ); + connect(RootDesktopObject::instance(), SIGNAL(mouseMoved()), Lumina::SS, SLOT(newInputEvent()) ); + connect(RootDesktopObject::instance(), SIGNAL(startLogout()), this, SLOT(StartLogout()) ); + connect(RootDesktopObject::instance(), SIGNAL(lockScreen()), Lumina::SS, SLOT(LockScreenNow()) ); //Native Window Class connections connect(Lumina::NEF, SIGNAL(WindowCreated(WId)), Lumina::NWS, SLOT(NewWindowDetected(WId))); connect(Lumina::NEF, SIGNAL(WindowDestroyed(WId)), Lumina::NWS, SLOT(WindowCloseDetected(WId))); connect(Lumina::NEF, SIGNAL(WindowPropertyChanged(WId, NativeWindow::Property)), Lumina::NWS, SLOT(WindowPropertyChanged(WId, NativeWindow::Property))); + connect(Lumina::NEF, SIGNAL(WindowPropertiesChanged(WId, QList<NativeWindow::Property>)), Lumina::NWS, SLOT(WindowPropertiesChanged(WId, QList<NativeWindow::Property>)) ); connect(Lumina::NEF, SIGNAL(WindowPropertyChanged(WId, NativeWindow::Property, QVariant)), Lumina::NWS, SLOT(WindowPropertyChanged(WId, NativeWindow::Property, QVariant))); connect(Lumina::NEF, SIGNAL(WindowPropertiesChanged(WId, QList<NativeWindow::Property>, QList<QVariant>)), Lumina::NWS, SLOT(WindowPropertiesChanged(WId, QList<NativeWindow::Property>, QList<QVariant>)) ); connect(Lumina::NEF, SIGNAL(RequestWindowPropertyChange(WId, NativeWindow::Property, QVariant)), Lumina::NWS, SLOT(RequestPropertyChange(WId, NativeWindow::Property, QVariant))); @@ -288,7 +294,7 @@ void LSession::playAudioFile(QString filepath){ if( !QFile::exists(filepath) ){ return; } //Setup the audio output systems for the desktop if(DEBUG){ qDebug() << "Play Audio File"; } - if(mediaObj==0){ qDebug() << " - Initialize media player"; mediaObj = new QMediaPlayer(); } + if(mediaObj==0){ qDebug() << " - Initialize media player"; mediaObj = new QMediaPlayer(0,QMediaPlayer::LowLatency); } if(mediaObj !=0 ){ if(DEBUG){ qDebug() << " - starting playback:" << filepath; } mediaObj->setVolume(100); @@ -352,12 +358,12 @@ void LSession::launchStartupApps(){ void LSession::checkUserFiles(){ //internal version conversion examples: // [1.0.0 -> 1000000], [1.2.3 -> 1002003], [0.6.1 -> 6001] - QString OVS = DesktopSettings::instance()->value(DesktopSettings::System,"DesktopVersion","0").toString(); //Old Version String + /*QString OVS = DesktopSettings::instance()->value(DesktopSettings::System,"DesktopVersion","0").toString(); //Old Version String bool changed = LDesktopUtils::checkUserFiles(OVS); if(changed){ //Save the current version of the session to the settings file (for next time) DesktopSettings::instance()->setValue(DesktopSettings::System,"DesktopVersion", this->applicationVersion()); - } + }*/ } @@ -382,10 +388,28 @@ void LSession::StartReboot(bool skipupdates){ } void LSession::LaunchApplication(QString exec){ + qDebug() << "Launch Application:" << exec; ExternalProcess::launch(exec); } +void LSession::LaunchDesktopApplication(QString app, QString action){ + qDebug() << "Launch Desktop Application:" << app << action; + XDGDesktop *xdg = Lumina::APPLIST->findAppFile(app); + bool cleanup = false; + if(xdg==0){ + xdg = new XDGDesktop(app); + cleanup = true; + } + if(xdg->isValid()){ + QString exec = xdg->generateExec(QStringList(), action); + ExternalProcess::launch(exec, QStringList(), xdg->startupNotify); + } + + if(cleanup && xdg!=0){ xdg->deleteLater(); } +} + void LSession::LaunchStandardApplication(QString app, QStringList args){ + qDebug() << "Launch Standard Application:" << app << args; //Find/replace standardized apps with thier mimetypes if(app.startsWith("--")){ app = "application/"+app.section("--",-1).simplified(); } //First see if this is a mimetype with a default application @@ -393,24 +417,18 @@ void LSession::LaunchStandardApplication(QString app, QStringList args){ QString mimeapp = XDGMime::findDefaultAppForMime(app); if(!mimeapp.isEmpty()){ app = mimeapp; } } - if(app.endsWith(".desktop")){ + if(!app.endsWith(".desktop")){ + //actual command/binary - just launch it + ExternalProcess::launch(app, args, false); // do not use startup notify cursor + }else{ //Get the XDGDesktop structure XDGDesktop *desk = 0; bool cleanup = false; if(app.startsWith("/") && QFile::exists(app)){ desk = new XDGDesktop(app); cleanup = true; } - if(!desk->isValid()){ + if(desk==0 || !desk->isValid()){ //Need to find the app within the current list - QHash<QString, XDGDesktop*>applist = Lumina::APPLIST->files; if(cleanup){ desk->deleteLater(); desk = 0; cleanup = false; } app = app.section("/",-1); //make sure this is a relative path - QStringList list = applist.keys().filter("/"+app); - if(!list.filter(QDir::homePath()).isEmpty()){ desk = applist[list.filter(QDir::homePath()).first()]; } //prefer user-override files - if(desk==0 || !desk->isValid()){ - desk = 0; - for(int i=0; i<list.length() && desk==0; i++){ - XDGDesktop *tmp = applist[list[i]]; - if(tmp->isValid()){ desk = tmp; } - } - } + desk = Lumina::APPLIST->findAppFile(app); } if(desk!=0 && desk->isValid()){ //Got the application - go ahead and assemble the startup command @@ -418,8 +436,6 @@ void LSession::LaunchStandardApplication(QString app, QStringList args){ ExternalProcess::launch(exec, QStringList(), desk->startupNotify); } if(cleanup){ desk->deleteLater(); } - }else{ - ExternalProcess::launch(app, args, false); // do not use startup notify cursor } } diff --git a/src-qt5/core/lumina-desktop-unified/LSession.h b/src-qt5/core/lumina-desktop-unified/LSession.h index 85cc050c..61da559b 100644 --- a/src-qt5/core/lumina-desktop-unified/LSession.h +++ b/src-qt5/core/lumina-desktop-unified/LSession.h @@ -15,6 +15,9 @@ public: LSession(int &argc, char **argv); ~LSession(); + static LSession* instance(){ + return ( static_cast<LSession*>(QApplication::instance()) ); + } private: void CleanupSession(); void setupGlobalConnections(); @@ -33,6 +36,7 @@ public slots: void StartShutdown(bool skipupdates = false); void StartReboot(bool skipupdates = false); void LaunchApplication(QString exec); + void LaunchDesktopApplication(QString app, QString action = ""); void LaunchStandardApplication(QString app, QStringList args = QStringList()); void reloadIconTheme(); //will emit the IconThemeChanged signal when ready diff --git a/src-qt5/core/lumina-desktop-unified/defaults/compton.conf b/src-qt5/core/lumina-desktop-unified/defaults/compton.conf deleted file mode 100644 index a14fee29..00000000 --- a/src-qt5/core/lumina-desktop-unified/defaults/compton.conf +++ /dev/null @@ -1,89 +0,0 @@ -# Shadow -shadow = true; -no-dnd-shadow = true; -no-dock-shadow = true; -clear-shadow = true; -shadow-radius = 5; -shadow-offset-x = -5; -shadow-offset-y = -5; -# shadow-opacity = 0.7; -# shadow-red = 0.0; -# shadow-green = 0.0; -# shadow-blue = 0.0; -shadow-exclude = [ - "name = 'Notification'", - "class_g = 'Conky'", - "class_g ?= 'Notify-osd'", - "class_g = 'Cairo-clock'", - "_GTK_FRAME_EXTENTS@:c" -]; -# shadow-exclude = "n:e:Notification"; -# shadow-exclude-reg = "x10+0+0"; -# xinerama-shadow-crop = true; - -# Opacity -menu-opacity = 0.9; -inactive-opacity = 0.9; -# active-opacity = 0.8; -frame-opacity = 1.0; -inactive-opacity-override = false; -alpha-step = 0.06; -# inactive-dim = 0.2; -# inactive-dim-fixed = true; -# blur-background = true; -# blur-background-frame = true; -blur-kern = "3x3box" -# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" -# blur-background-fixed = true; -blur-background-exclude = [ - "window_type = 'dock'", - "window_type = 'desktop'", - "_GTK_FRAME_EXTENTS@:c" -]; -# opacity-rule = [ "80:class_g = 'URxvt'" ]; - -# Fading -fading = true; -# fade-delta = 30; -fade-in-step = 0.2; -fade-out-step = 0.2; -# no-fading-openclose = true; -# no-fading-destroyed-argb = true; -fade-exclude = [ ]; - -# Other -backend = "xrender" -mark-wmwin-focused = true; -mark-ovredir-focused = true; -# use-ewmh-active-win = true; -detect-rounded-corners = true; -detect-client-opacity = true; -refresh-rate = 0; -vsync = "none"; -dbe = false; -paint-on-overlay = true; -# sw-opti = true; -# unredir-if-possible = true; -# unredir-if-possible-delay = 5000; -# unredir-if-possible-exclude = [ ]; -focus-exclude = [ "class_g = 'Cairo-clock'" ]; -detect-transient = true; -detect-client-leader = true; -invert-color-include = [ ]; -# resize-damage = 1; - -# GLX backend -# glx-no-stencil = true; -glx-copy-from-front = false; -# glx-use-copysubbuffermesa = true; -# glx-no-rebind-pixmap = true; -glx-swap-method = "undefined"; -# glx-use-gpushader4 = true; -# xrender-sync = true; -# xrender-sync-fence = true; - -# Window type settings -wintypes: -{ - tooltip = { fade = true; shadow = true; opacity = 0.85; focus = true; }; -}; diff --git a/src-qt5/core/lumina-desktop-unified/defaults/desktop/keys.conf b/src-qt5/core/lumina-desktop-unified/defaults/desktop/keys.conf index 59959194..1a993ca3 100644 --- a/src-qt5/core/lumina-desktop-unified/defaults/desktop/keys.conf +++ b/src-qt5/core/lumina-desktop-unified/defaults/desktop/keys.conf @@ -2,7 +2,5 @@ Ctrl+Alt+Backspace=Logout Pause=Lockscreen Alt+L=Lockscreen - -[desktop] Alt+F1=Launch: --terminal Print=Launch: --screenshot diff --git a/src-qt5/core/lumina-desktop-unified/defaults/desktop/screensaver.conf b/src-qt5/core/lumina-desktop-unified/defaults/desktop/screensaver.conf new file mode 100644 index 00000000..b4bfec59 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/defaults/desktop/screensaver.conf @@ -0,0 +1,3 @@ +[General] +default_plugin="random" +plugin_VGA-0="random" diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/LICENCE b/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/LICENCE deleted file mode 100644 index aa601d5e..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/LICENCE +++ /dev/null @@ -1,7 +0,0 @@ -These audio files are BSD-licensed and were created/owned by the TrueOS Project: - - Login.ogg - - Logout.ogg - -These audio files are freely available on jewelbeat.com: -"Music by JewelBeat. Download your free music and free sound effects at www.jewelbeat.com." - - low-battery.ogg (http://www.jewelbeat.com/free/free-sound-effects/musical%20effects/Tympani_2.mp3 - converted to OGG afterward) diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/Login.ogg b/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/Login.ogg Binary files differdeleted file mode 100644 index 43a07e27..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/Login.ogg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/Logout.ogg b/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/Logout.ogg Binary files differdeleted file mode 100644 index e63ae07f..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/Logout.ogg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/low-battery.ogg b/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/low-battery.ogg Binary files differdeleted file mode 100644 index d129a2b3..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/audiofiles/low-battery.ogg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/lumina-desktop.desktop b/src-qt5/core/lumina-desktop-unified/extrafiles/lumina-desktop.desktop deleted file mode 100644 index 7d87f93a..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/lumina-desktop.desktop +++ /dev/null @@ -1,34 +0,0 @@ -[Desktop Entry] -Exec=start-lumina-desktop -TryExec=start-lumina-desktop -Icon=Lumina-DE -Type=Application -Name=Lumina -Name[de]=Lumina -Name[en_GB]=Lumina -Name[en_ZA]=Lumina -Name[et]=Lumina -Name[fr]=Lumina -Name[fr_CA]=Lumina -Name[hi]=ल्यूमिना -Name[ja]=Lumina -Name[mt]=Lumina -Name[pl]=Lumina -Name[pt_BR]=Lumina -Name[ru]=Lumina -Name[uk]=Lumina -Name[vi]=Lumina -Comment=A Lightweight Desktop for FreeBSD -Comment[de]=Eine leichtgewichtige Arbeitsplatzumgebung für FreeBSD -Comment[en_GB]=A Lightweight Desktop for FreeBSD -Comment[en_ZA]=A Lightweight Desktop for FreeBSD -Comment[et]=Minimalistlik töölauakeskkond FreeBSD-le -Comment[fr]=Un environnement bureau léger pour FreeBSD -Comment[fr_CA]=Un environnement bureau léger pour FreeBSD -Comment[hi]=एक हल्का डेस्कटॉप फ्री बी.एस.डी के लिए -Comment[ja]=FreeBSD の為に作られた軽快なデスクトップ環境 -Comment[mt]=A Desktop irqiq għal FreeBSD -Comment[pl]=Lekkie Środowisko graficzne dla FreeBSD -Comment[pt_BR]=Um ambiente de trabalho leve para FreeBSD -Comment[uk]=Легковісне оточення стільниці для FreeBSD -Comment[vi]=Một máy tính để bàn nhẹ cho FreeBSD diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Fireflies.json b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Fireflies.json new file mode 100644 index 00000000..c09de308 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Fireflies.json @@ -0,0 +1,26 @@ +{ + "name" : { + "default" : "Fireflies" + }, + "description" : { + "default" : "Dancing balls of light on the screen" + }, + "author" : { + "name" : "Ken Moore", + "email" : "ken@ixsystems.com", + "website" : "https://github.com/beanpole135", + "company" : "iXsystems", + "company_website" : "http://ixsystems.com" + }, + "meta" : { + "license" : "3-clause BSD", + "license_url" : "https://github.com/trueos/lumina/blob/master/LICENSE", + "copyright" : "Copyright (c) 2017, Ken Moore (ken@ixsystems.com)", + "date_created" : "20171010", + "version" : "1.0" + }, + "qml" : { + "exec" : "qml_scripts/Fireflies.qml", + "additional_files" : ["qml_scripts/Firefly.qml"] + } +} diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/README.md b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/README.md new file mode 100644 index 00000000..d9093b44 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/README.md @@ -0,0 +1,79 @@ +## Screensaver Format +The screensaver system for the Lumina desktop allows for the creation and use of scripts written in the QML language, with a number of screensavers and other examples installed out-of-box. There are only a couple warnings/caveats to consider when developing a new screensaver: + +1. The root object in your QML script will be automatically sized to fit the screen as needed. Avoid trying to hard-code specific screen dimensions within your script as it will not work properly. +2. A JSON manifest file must be created (format listed below) and placed into one of the screensaver plugin directories for it to be recognized as a valid screensaver by the desktop. + + +### JSON Manifest +The manifest file contains all the information needed to actually validate/launch the screensaver, as well as additional information about the author and/or the screensaver itself. + +Example JSON manifest file (sample.json): +``` +{ + "name" : { + "default" : "sample", + "en_US" : "US English localization of the name", + "en" : "Generic english localization of the name" + }, + + "description" : { + "default" : "sample screensaver", + "en_US" : "US English Localization of the description" + }, + + "author" : { + "name" : "Me", + "email" : "Me@myself.net", + "website" : "http://mywebsite.net", + "company" : "iXsystems", + "company_website" : "http://ixsystems.com" + }, + + "meta" : { + "license" : "3-clause BSD", + "license_url" : "https://github.com/trueos/lumina/blob/master/LICENSE", + "copyright" : "Copyright (c) 2017, Ken Moore (ken@ixsystems.com)", + "date_created" : "20171010", + "date_updated" : "20171011", + "version" : "1.0" + }, + + "qml" : { + "exec" : "absolute/or/relative/path/to/script.qml", + "additional_files" : ["file/which/must/exist.png"], + "qt_min_version" : "5.0", + "qt_max_version" : "6.0" + } +} +``` + +Details of the individual items in the manifest: +* NOTE: for locale codes, both long and short version are acceptable: + Example 1: If the current locale is "en_GB", but the JSON manifest lists translations for "en_US" and "en", then the "en" translation will be used. + Example 2: If the current locale is "en_GB", but neither "en_GB" nor "en" translations exist, then the "default" version will be used. + +* **name** : (required) This is the official name of the screensaver to show to users + * *default* : (required) Non-translated name of the screensaver + * *[locale]* : (optional) Translated name for specific [locale] +* **description** : (required) This is a short description of the screensaver to show to users + * *default* : (required) Non-translated description of the screensaver + * *[locale]* : (optional) Translated description for specific [locale] +* **author** : (all optional) Additional information about the author(s) of the screensaver + * *name* : Name of the author + * *email* : Email to contact the author (useful for licensing questions and such) + * *website* : Personal website for the author (github/facebook/twitter profile, etc) + * *company* : Company for which the author is creating this screensaver + * *company_website* : Website for the company +* **meta** : (all optional) Additional information about the screensaver itself + * *license* : License the screensaver is released under + * *license_url* : Website which contains the full text of the license + * *copyright* : Copyright notice for this screensaver + * *date_created* : (yyyyMMdd) Date the screensaver was initially created + * *date_updated* : (yyyyMMdd) Date the screensaver was last updated + * *version* : Current version of the screensaver (typically updated every time "date_updated" is changed) +* **qml** : (required) Information about launching the screensaver and checking validity + * *exec* : (required) Absolute or relative path to the QML script (relative to the directory which contains the JSON manifest) + * *additional_files* : (optional) Array of paths for other files/scripts which must exist for the screensaver to work properly. + * *qt_min_version* : (optional) Minimum version of the Qt libraries that this screensaver supports + * *qt_max_version* : (optional) Maximum version of the Qt libraries that this screensaver supports diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Video.json b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Video.json new file mode 100644 index 00000000..2fa6e6da --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Video.json @@ -0,0 +1,25 @@ +{ + "name" : { + "default" : "Video" + }, + "description" : { + "default" : "Play a single video or a list of videos in a loop" + }, + "author" : { + "name" : "Zackary Welch", + "email" : "zwelch@ixsystems.com", + "website" : "https://github.com/ZackaryWelch", + "company" : "iXsystems", + "company_website" : "http://ixsystems.com" + }, + "meta" : { + "license" : "3-clause BSD", + "license_url" : "https://github.com/trueos/lumina/blob/master/LICENSE", + "copyright" : "Copyright (c) 2017, Ken Moore (ken@ixsystems.com)", + "date_created" : "20171025", + "version" : "1.0" + }, + "qml" : { + "exec" : "qml_scripts/Video.qml" + } +} diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Warp.json b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Warp.json new file mode 100644 index 00000000..888df01f --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/Warp.json @@ -0,0 +1,25 @@ +{ + "name" : { + "default" : "Warp" + }, + "description" : { + "default" : "Warp trail through the stars" + }, + "author" : { + "name" : "Ken Moore", + "email" : "ken@ixsystems.com", + "website" : "https://github.com/beanpole135", + "company" : "iXsystems", + "company_website" : "http://ixsystems.com" + }, + "meta" : { + "license" : "3-clause BSD", + "license_url" : "https://github.com/trueos/lumina/blob/master/LICENSE", + "copyright" : "Copyright (c) 2017, Ken Moore (ken@ixsystems.com)", + "date_created" : "20171012", + "version" : "1.0" + }, + "qml" : { + "exec" : "qml_scripts/Warp.qml" + } +} diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Fireflies.qml b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Fireflies.qml new file mode 100644 index 00000000..d8dcc1ed --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Fireflies.qml @@ -0,0 +1,19 @@ +import QtQuick 2.0 +import QtGraphicalEffects 1.0 +import "." as QML + +Rectangle { + id : canvas + anchors.fill: parent + color: "black" + + Repeater { + model: Math.round(Math.random()*canvas.width/10)+100 + QML.Firefly { + parent: canvas + x: Math.round(Math.random()*canvas.width) + y: Math.round(Math.random()*canvas.height) + } + } //end of Repeater + +} //end of canvas rectangle diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Firefly.qml b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Firefly.qml new file mode 100644 index 00000000..7b65d8ec --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Firefly.qml @@ -0,0 +1,63 @@ +import QtQuick 2.0 +import QtQuick.Window 2.2 +import QtGraphicalEffects 1.0 + +Item { + + RectangularGlow { + anchors.fill: fly + glowRadius: Math.round(fly.radius /2) + spread: 0.5 + color: Qt.rgba(1,1,1,0.3) + cornerRadius: fly.radius + glowRadius + } + + Rectangle { + id: fly + width: Math.round(Math.random()*canvas.width/200)+2 + height: width + x: parent.x + y: parent.y + color: Qt.rgba(Math.random(),Math.random(),0,0.5) + radius: Math.floor(width/2) + property int jitterX: Math.round(Math.random()*100)+10 + property int jitterY: Math.round(Math.random()*100)+10 + + Behavior on color { + ColorAnimation { + duration: 500 + } + } + Behavior on x { + SmoothedAnimation { + velocity: 10+Math.random()*canvas.width/100 + } + } + Behavior on y { + SmoothedAnimation { + velocity: 10+Math.random()*canvas.height/100 + } + } + + } + + + + Timer { + interval: 5 + repeat: true + running: true + property bool starting: true + onTriggered: { + if(starting){ interval = Math.round(Math.random()*1000)+500; starting = false; } + if ( (fly.x+fly.jitterX)>parent.width || (fly.x+fly.jitterX)<0 ){ fly.jitterX = 0-fly.jitterX } + fly.x = fly.x+fly.jitterX + if( (fly.y+fly.jitterY)>parent.height || (fly.y+fly.jitterY)<0 ){ fly.jitterY = 0-fly.jitterY } + fly.y = fly.y+fly.jitterY + fly.jitterX = (Math.round(Math.random())*2 - 1) *fly.jitterX + fly.jitterY = (Math.round(Math.random())*2 - 1) *fly.jitterY + fly.color = Qt.rgba(Math.random(),Math.random(),Math.random(),0.5) + + } + } //end of timer +} //end of item diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Grav.qml b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Grav.qml new file mode 100644 index 00000000..d1e5d3c9 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Grav.qml @@ -0,0 +1,132 @@ +import QtQuick 2.7 +import QtGraphicalEffects 1.0 + +Rectangle { + id : canvas + anchors.fill: parent + width: Screen.width + height: Screen.height + color: "black" + + //TODO Add orbital trails option + //TODO Fix jitteryness and start position + //TODO Make orbits more extreme + + //Between 5 and 15 planets, read from settings + property int planets: Math.round(( Math.random() * 10 ) + 5 ) + property int cx: Math.round(width/2) + property int cy: Math.round(height/2) + + //Create planets + Repeater { + id: planetRepeater + model: planets + + Rectangle { + id : index + parent: canvas + + //Creates random distance for elipse + property double c: Math.random() * 250 + property double b: Math.random() * 150 + c + property double a: Math.sqrt(b*b+c*c) + //Random angle of rotation + property double th: Math.random() * Math.PI + property var path: [] + + //Calculates starting position + x: Math.round(cx + a * Math.cos(th)) + y: Math.round(cy + b * Math.sin(th)) + + //Planet size between 14 and 32 pixels + width: Math.round(1.75 * (((Math.random() * 10) + 8 ))) + height: width + + //Make each rectangle look circular + radius: width / 2 + + //Give each planet a random color, semi-transparent + color: Qt.rgba(Math.random(), Math.random(), Math.random(), 0.5) + + /*Timer { + //Each planet updates between 1ms and 51ms (smaller times=faster) + interval: Math.round(Math.random() * 50 ) + 1 + repeat: true + running: true + property int time: 0 + + onTriggered: { + //Parametric equation that calculates the position of the general ellipse. Completes a loop ever 314 cycles. Credit to + x = cx+a*Math.cos(2*Math.PI*(time/314.0))*Math.cos(th) - b*Math.sin(2*Math.PI*(time/314.0))*Math.sin(th) + y = cy+a*Math.cos(2*Math.PI*(time/314.0))*Math.sin(th) + b*Math.sin(2*Math.PI*(time/314.0))*Math.cos(th) + time++; + + //Move a planet 80 pixels away from the sun if the planet is too close + if(x > cx && Math.abs(cx-x) < 80) { + x+=80 + }else if(x < cx && Math.abs(cx-x) < 80) { + x-=80 + } + + if(y > cy && Math.abs(cy-y) < 80) { + y+=80 + }else if(y < cy && Math.abs(cy-y) < 80) { + y-=80 + } + } + }*/ + + Component.onCompleted: { + pahtX[0] = x + pahtY[0] = y + for(int i = 1; i <= 200; i++) { + pathX[i] = cx+a*Math.cos(2*Math.PI*(i/200.0)*Math.cos(th) - b*Math.sin(2*Math.PI*(i/200.0)*Math.sin(th) + pathY[i] = cy+a*Math.cos(2*Math.PI*(i/200.0)*Math.sin(th) + b*Math.sin(2*Math.PI*(i/200.0)*Math.cos(th) + } + } + } + } + + //Create the star + Rectangle{ + id: star + parent: canvas + + //Centers in star in the center of the canvas, with an offset to center the animation + x: cx - 30 + y: cy - 30 + + width: 60 + height: width + + //Create the wobble animation + SequentialAnimation on height { + loops: Animation.Infinite + PropertyAnimation { duration: 2000; to: 90 } + PropertyAnimation { duration: 2000; to: 60 } + } + + SequentialAnimation on width { + loops: Animation.Infinite + PropertyAnimation { duration: 2000; to: 90 } + PropertyAnimation { duration: 2000; to: 60 } + } + + color: "black" + radius: width / 2 + + //Creates a radial gradient to make the star look cool + RadialGradient { + anchors.fill: parent + gradient: Gradient { + GradientStop { position:0 ;color: Qt.rgba(0,0,0,0)} + GradientStop { position:0.18 ;color: Qt.rgba(0,0,0,0)} + GradientStop { position:0.2 ;color: Qt.rgba(0.32,0.47,0.30,0.13)} + GradientStop { position:0.3 ;color: Qt.rgba(0.62,0.92,0.58,0.25)} + GradientStop { position:0.4 ;color: Qt.rgba(1.00,0.93,0.59,0.51)} + GradientStop { position:0.5 ;color: Qt.rgba(0,0,0,0)} + } + } + + } +} diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Video.qml b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Video.qml new file mode 100644 index 00000000..9948537b --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Video.qml @@ -0,0 +1,48 @@ +import QtQuick 2.0 +import QtMultimedia 5.7 +import QtQuick.Window 2.2 +import Qt.labs.folderlistmodel 2.1 + +Rectangle { + width: Screen.width + height: Screen.height + color: "black" + + FolderListModel { + id: folderModel + folder: "/usr/local/videos" + } + + Repeater { + model: folderModel + Component { + Item { + Component.onCompleted: { playlist.addItem(fileURL) } + } + } + } + + Playlist { + id: playlist + playbackMode: Playlist.Random + PlaylistItem { source: "/" } + onError: { console.log("ERROR") } + } + + MediaPlayer { + id: player + autoPlay: true + playlist: playlist + } + + VideoOutput { + id: videoOutput + source: player + anchors.fill: parent + } + + Component.onCompleted: { + playlist.shuffle() + console.log(playlist.itemCount) + } +} diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Warp.qml b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Warp.qml new file mode 100644 index 00000000..1cf9bc37 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/extrafiles/screensavers/qml_scripts/Warp.qml @@ -0,0 +1,64 @@ +import QtQuick 2.0 +import QtGraphicalEffects 1.0 + +Rectangle { + id : canvas + anchors.fill: parent + color: "black" + + function getStarColor(num){ + if(num < 1) { return "white" } + if(num < 2) { return "mistyrose" } + return "lightblue" + } + + // CREATE STARFIELD + Repeater { + model: Math.round(Math.random()*canvas.width/10)+500 + Rectangle { + parent: canvas + x: Math.round(Math.random()*canvas.width) + y: Math.round(Math.random()*canvas.height) + width: Math.round(Math.random()*3)+3 + height: width + radius: width/2 + color: getStarColor( (index%3) ) + + } + } //end of Repeater + + // NOW CREATE THE WARP EFFECT + ZoomBlur { + id: blur + anchors.fill: canvas + source: canvas + samples: 24 + length: canvas.width / 20 + horizontalOffset: 0 + verticalOffset: 0 + + Behavior on horizontalOffset{ + NumberAnimation{ + duration: 3000 + } + } + Behavior on verticalOffset{ + NumberAnimation{ + duration: 3000 + } + } + } //end of zoom blur + + Timer { + interval: 5 + repeat: true + running: true + property bool starting: true + onTriggered: { + if(starting){ interval = 3010; starting = false; } + blur.horizontalOffset = (Math.random()*canvas.width/4) - (canvas.width/8) + blur.verticalOffset = (Math.random()*canvas.height/4) - (canvas.height/8) + } + } //end of timer + +} //end of canvas rectangle diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_blue-grey-zoom.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_blue-grey-zoom.jpg Binary files differdeleted file mode 100644 index 481ca438..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_blue-grey-zoom.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_blue-grey.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_blue-grey.jpg Binary files differdeleted file mode 100644 index 9da67596..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_blue-grey.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_gold.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_gold.jpg Binary files differdeleted file mode 100644 index cba03cee..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_gold.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_green.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_green.jpg Binary files differdeleted file mode 100644 index 80b0d3e3..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_green.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_grey-blue-zoom.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_grey-blue-zoom.jpg Binary files differdeleted file mode 100644 index 4f753ed5..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_grey-blue-zoom.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_grey-blue.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_grey-blue.jpg Binary files differdeleted file mode 100644 index c214cd78..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_grey-blue.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_purple.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_purple.jpg Binary files differdeleted file mode 100644 index e4c3d7a8..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_purple.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_red.jpg b/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_red.jpg Binary files differdeleted file mode 100644 index a092f636..00000000 --- a/src-qt5/core/lumina-desktop-unified/extrafiles/wallpapers/Lumina_Wispy_red.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop-unified/global-includes.h b/src-qt5/core/lumina-desktop-unified/global-includes.h index 8b8cd16c..40987ad4 100644 --- a/src-qt5/core/lumina-desktop-unified/global-includes.h +++ b/src-qt5/core/lumina-desktop-unified/global-includes.h @@ -19,6 +19,7 @@ #include <QMouseEvent> #include <QAction> #include <QPoint> +#include <QTemporaryFile> #include <QFile> #include <QDir> #include <QString> @@ -50,6 +51,17 @@ #include <QMediaPlayer> #include <QVideoWidget> #include <QMediaPlaylist> +#include <QJsonObject> +#include <QJsonArray> +#include <QJsonDocument> +#include <QQuickView> +#include <QQmlContext> +#include <QQmlEngine> +#include <QQuickImageProvider> + +// C++ Backend classes for QML interface +#include <RootDesktopObject.h> +#include <ScreenObject.h> // libLumina includes #include <LuminaX11.h> @@ -60,15 +72,14 @@ #include <LDesktopUtils.h> #include <LuminaSingleApplication.h> #include <DesktopSettings.h> -#include <RootWindow.h> #include <ExternalProcess.h> #include <NativeWindow.h> #include <NativeWindowSystem.h> #include <NativeEventFilter.h> #include <XDGMime.h> +#include <LIconCache.h> +#include <LFileInfo.h> -// Standard C includes -#include <unistd.h> //Setup any global defines (no classes or global objects: use "global-objects.h" for that) diff --git a/src-qt5/core/lumina-desktop-unified/global-objects.h b/src-qt5/core/lumina-desktop-unified/global-objects.h index 474412eb..c204587f 100644 --- a/src-qt5/core/lumina-desktop-unified/global-objects.h +++ b/src-qt5/core/lumina-desktop-unified/global-objects.h @@ -25,6 +25,11 @@ #include "src-screensaver/LScreenSaver.h" //#include "src-WM/LWindowManager.h" +#include <RootWindow.h> +#include "LSession.h" + +// Standard C includes +#include <unistd.h> //Any special defines for settings/testing #define ANIMTIME 80 //animation time in milliseconds diff --git a/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro b/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro index 04d5b602..ebc13b6f 100644 --- a/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro +++ b/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro @@ -1,26 +1,31 @@ include($${PWD}/../../OS-detect.pri) -QT += core gui network -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets x11extras multimedia multimediawidgets concurrent svg +lessThan(QT_MAJOR_VERSION, 5) { + message("[ERROR] Qt 5.4+ is required to use the Lumina Desktop!") + exit +} +lessThan(QT_MINOR_VERSION, 4){ + message("[ERROR] Qt 5.4+ is required to use the Lumina Desktop!") + exit +} +QT *= core gui network widgets x11extras multimedia multimediawidgets concurrent svg quick qml TARGET = lumina-desktop-unified target.path = $${L_BINDIR} #include all the special classes from the Lumina tree -include(../libLumina/ResizeMenu.pri) include(../libLumina/LDesktopUtils.pri) #includes LUtils and LOS include(../libLumina/LuminaXDG.pri) -#include(../libLumina/LuminaX11.pri) include(../libLumina/LuminaSingleApplication.pri) -include(../libLumina/LuminaThemes.pri) include(../libLumina/DesktopSettings.pri) -include(../libLumina/RootWindow.pri) include(../libLumina/ExternalProcess.pri) -include(../libLumina/NativeWindow.pri) +include(../../src-cpp/NativeWindow.pri) include(../libLumina/XDGMime.pri) +include(../../src-cpp/plugins-screensaver.pri) + #include all the main individual source groups include(src-screensaver/screensaver.pri) include(src-events/events.pri) @@ -52,6 +57,9 @@ desktop.files = lumina-desktop.desktop defaults.path = $${L_SHAREDIR}/lumina-desktop defaults.files = defaults/* +extrafiles.path = $${L_SHAREDIR}/lumina-desktop +extrafiles.files = extrafiles/* + TRANSLATIONS = i18n/lumina-desktop_af.ts \ i18n/lumina-desktop_ar.ts \ i18n/lumina-desktop_az.ts \ @@ -116,9 +124,9 @@ TRANSLATIONS = i18n/lumina-desktop_af.ts \ i18n/lumina-desktop_zu.ts dotrans.path=$${L_SHAREDIR}/lumina-desktop/i18n/ -dotrans.extra=cd i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ +dotrans.extra=cd $$PWD/i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ -INSTALLS += target desktop defaults +INSTALLS += target desktop defaults extrafiles WITH_I18N{ INSTALLS += dotrans diff --git a/src-qt5/core/lumina-desktop-unified/main.cpp b/src-qt5/core/lumina-desktop-unified/main.cpp index ef15cfcd..ed2b9b4c 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... + setenv("QT_QPA_PLATFORMTHEME", "lthemeengine",1); //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-DE/AppMenu.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/AppMenu.cpp deleted file mode 100644 index 798d8b6d..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/AppMenu.cpp +++ /dev/null @@ -1,183 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "AppMenu.h" -#include "LSession.h" -#include <LuminaOS.h> - -AppMenu::AppMenu(QWidget* parent) : QMenu(parent){ - appstorelink = LOS::AppStoreShortcut(); //Default application "store" to display (AppCafe in TrueOS) - controlpanellink = LOS::ControlPanelShortcut(); //Default control panel - sysApps = new XDGDesktopList(this, true); //have this one automatically keep in sync - APPS.clear(); - //watcher = new QFileSystemWatcher(this); - //connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(watcherUpdate()) ); - //QTimer::singleShot(200, this, SLOT(start()) ); //Now start filling the menu - start(); //do the initial run during session init so things are responsive immediately. - connect(QApplication::instance(), SIGNAL(LocaleChanged()), this, SLOT(watcherUpdate()) ); - connect(QApplication::instance(), SIGNAL(IconThemeChanged()), this, SLOT(watcherUpdate()) ); -} - -AppMenu::~AppMenu(){ - -} - -QHash<QString, QList<XDGDesktop*> >* AppMenu::currentAppHash(){ - return &APPS; -} - -//=========== -// PRIVATE -//=========== -void AppMenu::updateAppList(){ - //watcher->removePaths(watcher->directories()); - //Make sure the title/icon are updated as well (in case of locale/icon change) - this->setTitle(tr("Applications")); - this->setIcon( LXDG::findIcon("system-run","") ); - //Now update the lists - this->clear(); - APPS.clear(); //NOTE: Don't delete these pointers - the pointers are managed by the sysApps class and these are just references to them - //qDebug() << "New Apps List:"; - if(LSession::handle()->sessionSettings()->value("AutomaticDesktopAppLinks",true).toBool() && !lastHashUpdate.isNull() ){ - QString desktop = QDir::homePath()+"/"+tr("Desktop")+"/"; //translated desktop folder - if(!QFile::exists(desktop)){ - desktop = QDir::homePath()+"/Desktop/"; //desktop folder - if(!QFile::exists(desktop)){ - desktop = QDir::homePath()+"/desktop/"; //lowercase desktop folder - if(!QFile::exists(desktop)){ desktop.clear(); } - } - } - //qDebug() << "Update Desktop Folder:" << desktop << sysApps->removedApps << sysApps->newApps; - QStringList tmp = sysApps->removedApps; - for(int i=0; i<tmp.length() && !desktop.isEmpty(); i++){ - //Remove any old symlinks first - QString filename = tmp[i].section("/",-1); - //qDebug() << "Check for symlink:" << filename; - if( QFileInfo(desktop+filename).isSymLink() ){ QFile::remove(desktop+filename); } - } - tmp = sysApps->newApps; - for(int i=0; i<tmp.length() && !desktop.isEmpty(); i++){ - XDGDesktop *desk = sysApps->files.value(tmp[i]); - if(desk->isHidden || !desk->isValid(false) ){ continue; } //skip this one - //qDebug() << "New App: " << tmp[i] << desk.filePath << "Hidden:" << desk.isHidden; - //Create a new symlink for this file if one does not exist - QString filename = tmp[i].section("/",-1); - //qDebug() << "Check for symlink:" << filename; - if(!QFile::exists(desktop+filename) ){ QFile::link(tmp[i], desktop+filename); } - } - } - QList<XDGDesktop*> allfiles = sysApps->apps(false,false); //only valid, non-hidden apps - APPS = LXDG::sortDesktopCats(allfiles); - APPS.insert("All", LXDG::sortDesktopNames(allfiles)); - lastHashUpdate = QDateTime::currentDateTime(); - //Now fill the menu - //Add link to the file manager - //this->addAction( LXDG::findIcon("user-home", ""), tr("Browse Files"), this, SLOT(launchFileManager()) ); - //--Look for the app store - XDGDesktop store(appstorelink); - if(store.isValid()){ - this->addAction( LXDG::findIcon(store.icon, ""), tr("Manage Applications"), this, SLOT(launchStore()) ); - } - //--Look for the control panel - XDGDesktop controlp(controlpanellink); - if(controlp.isValid()){ - this->addAction( LXDG::findIcon(controlp.icon, ""), tr("Control Panel"), this, SLOT(launchControlPanel()) ); - } - this->addSeparator(); - //--Now create the sub-menus - QStringList cats = APPS.keys(); - cats.sort(); //make sure they are alphabetical - for(int i=0; i<cats.length(); i++){ - //Make sure they are translated and have the right icons - QString name, icon; - if(cats[i]=="All"){continue; } //skip this listing for the menu - else if(cats[i] == "Multimedia"){ name = tr("Multimedia"); icon = "applications-multimedia"; } - else if(cats[i] == "Development"){ name = tr("Development"); icon = "applications-development"; } - else if(cats[i] == "Education"){ name = tr("Education"); icon = "applications-education"; } - else if(cats[i] == "Game"){ name = tr("Games"); icon = "applications-games"; } - else if(cats[i] == "Graphics"){ name = tr("Graphics"); icon = "applications-graphics"; } - else if(cats[i] == "Network"){ name = tr("Network"); icon = "applications-internet"; } - else if(cats[i] == "Office"){ name = tr("Office"); icon = "applications-office"; } - else if(cats[i] == "Science"){ name = tr("Science"); icon = "applications-science"; } - else if(cats[i] == "Settings"){ name = tr("Settings"); icon = "preferences-system"; } - else if(cats[i] == "System"){ name = tr("System"); icon = "applications-system"; } - else if(cats[i] == "Utility"){ name = tr("Utility"); icon = "applications-utilities"; } - else if(cats[i] == "Wine"){ name = tr("Wine"); icon = "wine"; } - else{ name = tr("Unsorted"); icon = "applications-other"; } - - QMenu *menu = new QMenu(name, this); - menu->setIcon(LXDG::findIcon(icon,"")); - connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(launchApp(QAction*)) ); - QList<XDGDesktop*> appL = APPS.value(cats[i]); - for( int a=0; a<appL.length(); a++){ - if(appL[a]->actions.isEmpty()){ - //Just a single entry point - no extra actions - QAction *act = new QAction(LXDG::findIcon(appL[a]->icon, ""), appL[a]->name, this); - act->setToolTip(appL[a]->comment); - act->setWhatsThis(appL[a]->filePath); - menu->addAction(act); - }else{ - //This app has additional actions - make this a sub menu - // - first the main menu/action - QMenu *submenu = new QMenu(appL[a]->name, this); - submenu->setIcon( LXDG::findIcon(appL[a]->icon,"") ); - //This is the normal behavior - not a special sub-action (although it needs to be at the top of the new menu) - QAction *act = new QAction(LXDG::findIcon(appL[a]->icon, ""), appL[a]->name, this); - act->setToolTip(appL[a]->comment); - act->setWhatsThis(appL[a]->filePath); - submenu->addAction(act); - //Now add entries for every sub-action listed - for(int sa=0; sa<appL[a]->actions.length(); sa++){ - QAction *sact = new QAction(LXDG::findIcon(appL[a]->actions[sa].icon, appL[a]->icon), appL[a]->actions[sa].name, this); - sact->setToolTip(appL[a]->comment); - sact->setWhatsThis("-action \""+appL[a]->actions[sa].ID+"\" \""+appL[a]->filePath+"\""); - submenu->addAction(sact); - } - menu->addMenu(submenu); - } - } - this->addMenu(menu); - } - // watcher->addPaths(LXDG::systemApplicationDirs()); - emit AppMenuUpdated(); -} - -//================= -// PRIVATE SLOTS -//================= -void AppMenu::start(){ - //Setup the watcher - connect(sysApps, SIGNAL(appsUpdated()), this, SLOT(watcherUpdate()) ); - sysApps->updateList(); - //Now fill the menu the first time - updateAppList(); -} - -void AppMenu::watcherUpdate(){ - updateAppList(); //Update the menu listings -} - -void AppMenu::launchStore(){ - LSession::LaunchApplication("lumina-open \""+appstorelink+"\""); -} - -void AppMenu::launchControlPanel(){ - LSession::LaunchApplication("lumina-open \""+controlpanellink+"\""); -} - -void AppMenu::launchFileManager(){ - QString fm = "lumina-open \""+QDir::homePath()+"\""; - LSession::LaunchApplication(fm); -} - -void AppMenu::launchApp(QAction *act){ - QString appFile = act->whatsThis(); - if(appFile.startsWith("-action")){ - LSession::LaunchApplication("lumina-open "+appFile); //already has quotes put in place properly - }else{ - LSession::LaunchApplication("lumina-open \""+appFile+"\""); - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/AppMenu.h b/src-qt5/core/lumina-desktop-unified/src-DE/AppMenu.h deleted file mode 100644 index 5baaab7a..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/AppMenu.h +++ /dev/null @@ -1,58 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This menu auto-updates to keep the list of available applications -// current at all times - and can launch them as necessary -//=========================================== -#ifndef _LUMINA_DESKTOP_APP_MENU_H -#define _LUMINA_DESKTOP_APP_MENU_H - -// Qt includes -#include <QMenu> -#include <QFileSystemWatcher> -#include <QString> -#include <QList> -#include <QTimer> -#include <QDateTime> -#include <QHash> -#include <QAction> -#include <QSettings> -//#include <QProcess> - -// libLumina includes -#include <LuminaXDG.h> - -class AppMenu : public QMenu{ - Q_OBJECT -public: - AppMenu(QWidget *parent = 0); - ~AppMenu(); - - QHash<QString, QList<XDGDesktop*> > *currentAppHash(); - QDateTime lastHashUpdate; - -private: - //QFileSystemWatcher *watcher; - QString appstorelink, controlpanellink; - QList<QMenu> MLIST; - XDGDesktopList *sysApps; - QHash<QString, QList<XDGDesktop*> > APPS; - - void updateAppList(); //completely update the menu lists - -private slots: - void start(); //This is called in a new thread after initialization - void watcherUpdate(); - void launchStore(); - void launchControlPanel(); - void launchFileManager(); - void launchApp(QAction *act); - -signals: - void AppMenuUpdated(); -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktop.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/LDesktop.cpp deleted file mode 100644 index de7d086e..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktop.cpp +++ /dev/null @@ -1,553 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LDesktop.h" -#include "LSession.h" - -#include <LuminaOS.h> -#include <LuminaX11.h> -#include "LWinInfo.h" -#include "JsonMenu.h" - -#include <QScreen> - -#define DEBUG 0 - -LDesktop::LDesktop(int deskNum, bool setdefault) : QObject(){ - screenID = QApplication::screens().at(deskNum)->name(); - DPREFIX = "desktop-"+screenID+"/"; - //desktopnumber = deskNum; - //desktop = QApplication::desktop(); - defaultdesktop = setdefault; //(desktop->screenGeometry(desktopnumber).x()==0); - //desktoplocked = true; - issyncing = bgupdating = false; - usewinmenu=false; - - //Setup the internal variables - settings = new QSettings(QSettings::UserScope, "lumina-desktop","desktopsettings", this); - //qDebug() << " - Desktop Settings File:" << settings->fileName(); - if(!QFile::exists(settings->fileName())){ settings->setValue(DPREFIX+"background/filelist",QStringList()<<"default"); settings->sync(); } - //bgWindow = 0; - bgDesktop = 0; - QTimer::singleShot(1,this, SLOT(InitDesktop()) ); - -} - -LDesktop::~LDesktop(){ - delete deskMenu; - delete winMenu; - //delete bgWindow; - delete workspacelabel; - delete wkspaceact; -} - -int LDesktop::Screen(){ - QList<QScreen*> scrns = QApplication::screens(); - for(int i=0; i<scrns.length(); i++){ - if(scrns[i]->name()==screenID){ return i; } - } - return -1; -} - -void LDesktop::show(){ - //if(bgWindow!=0){ bgWindow->show(); } - if(bgDesktop!=0){ bgDesktop->show(); } - for(int i=0; i<PANELS.length(); i++){ PANELS[i]->show(); } -} - -void LDesktop::hide(){ - //if(bgWindow!=0){ bgWindow->hide(); } - if(bgDesktop!=0){ bgDesktop->hide(); } - for(int i=0; i<PANELS.length(); i++){ PANELS[i]->hide(); } -} - -void LDesktop::prepareToClose(){ - //Get any panels ready to close - issyncing = true; //Stop handling any watcher events - for(int i=0; i<PANELS.length(); i++){ PANELS[i]->prepareToClose(); PANELS.takeAt(i)->deleteLater(); i--; } - //Now close down any desktop plugins - //desktoplocked = true; //make sure that plugin settings are preserved during removal - //Remove all the current containers - bgDesktop->cleanup(); -} - -WId LDesktop::backgroundID(){ - if(bgDesktop!=0){ return bgDesktop->winId(); } - else{ return QX11Info::appRootWindow(); } -} - -QRect LDesktop::availableScreenGeom(){ - //Return a QRect containing the (global) screen area that is available (not under any panels) - if(bgDesktop!=0){ - return globalWorkRect; //saved from previous calculations - }else{ - return LSession::handle()->screenGeom( Screen() ); - } -} - -void LDesktop::UpdateGeometry(){ - //First make sure there is something different about the geometry - //if(desktop->screenGeometry(Screen())==bgWindow->geometry()){ return; } - //Now update the screen - // NOTE: This functionality is highly event-driven based on X changes - so we need to keep things in order (no signals/slots) - //qDebug() << "Changing Desktop Geom:" << Screen(); - //bgWindow->setGeometry(desktop->screenGeometry(Screen())); - /*for(int i=0; i<PANELS.length(); i++){ - PANELS[i]->UpdatePanel(true); //geom only updates - do this before adjusting the background - }*/ - //qDebug() << " - Update Desktop Plugin Area"; - UpdateDesktopPluginArea(); - //qDebug() << " - Done With Desktop Geom Updates"; - QTimer::singleShot(0, this, SLOT(UpdatePanels())); -} - -void LDesktop::SystemLock(){ - QProcess::startDetached("xscreensaver-command -lock"); -} - -void LDesktop::SystemLogout(){ - LSession::handle()->systemWindow(); -} - -void LDesktop::SystemTerminal(){ - LSession::handle()->sessionSettings()->sync(); //make sure it is up to date - QString term = LXDG::findDefaultAppForMime("application/terminal"); //LSession::handle()->sessionSettings()->value("default-terminal","xterm").toString(); - if(term.isEmpty() ||(!term.endsWith(".desktop") && !LUtils::isValidBinary(term)) ){ term = "xterm"; } - LSession::LaunchApplication("lumina-open \""+term+"\""); -} - -void LDesktop::SystemFileManager(){ - //Just open the home directory - QString fm = "lumina-open \""+QDir::homePath()+"\""; - LSession::LaunchApplication(fm); -} - -void LDesktop::SystemApplication(QAction* act){ - if(!act->whatsThis().isEmpty() && act->parent()==deskMenu){ - LSession::LaunchApplication("lumina-open \""+act->whatsThis()+"\""); - } -} - -void LDesktop::checkResolution(){ - //Compare the current screen resolution with the last one used/saved and adjust config values *only* - //NOTE: This is only run the first time this desktop is created (before loading all the interface) - not on each desktop change - int oldWidth = settings->value(DPREFIX+"screen/lastWidth",-1).toInt(); - int oldHeight = settings->value(DPREFIX+"screen/lastHeight",-1).toInt(); - QRect scrn = LSession::handle()->screenGeom( Screen() ); - if(scrn.isNull()){ return; } - issyncing = true; - settings->setValue(DPREFIX+"screen/lastWidth",scrn.width()); - settings->setValue(DPREFIX+"screen/lastHeight",scrn.height()); - - if(oldWidth<1 || oldHeight<1 || scrn.width()<1 || scrn.height()<1){ - //nothing to do - something invalid - }else if(scrn.width()==oldWidth && scrn.height()==oldHeight){ - //nothing to do - same as before - }else{ - //Calculate the scale factor between the old/new sizes in each dimension - // and forward that on to all the interface elements - double xscale = scrn.width()/((double) oldWidth); - double yscale = scrn.height()/((double) oldHeight); - if(DEBUG){ - qDebug() << "Screen Resolution Changed:" << screenID; - qDebug() << " - Old:" << QString::number(oldWidth)+"x"+QString::number(oldHeight); - qDebug() << " - New:" << QString::number(scrn.width())+"x"+QString::number(scrn.height()); - qDebug() << " - Scale Factors:" << xscale << yscale; - } - //Update any panels in the config file - for(int i=0; i<4; i++){ - QString PPREFIX = "panel"+QString::number(Screen())+"."+QString::number(i)+"/"; - int ht = settings->value(PPREFIX+"height",-1).toInt(); - if(ht<1){ continue; } //no panel height defined - QString loc = settings->value(PPREFIX+"location","top").toString().toLower(); - if(loc=="top" || loc=="bottom"){ - settings->setValue(PPREFIX+"height", (int) ht*yscale); //vertical dimension - }else{ - settings->setValue(PPREFIX+"height", (int) ht*xscale); //horizontal dimension - } - } - //Update any desktop plugins - QStringList plugs = settings->value(DPREFIX+"pluginlist").toStringList(); - QFileInfoList files = LSession::handle()->DesktopFiles(); - for(int i=0; i<files.length(); i++){ - plugs << "applauncher::"+files[i].absoluteFilePath()+"---"+DPREFIX; - } - //QString pspath = QDir::homePath()+"/.lumina/desktop-plugins/%1.conf"; - QSettings *DP = LSession::handle()->DesktopPluginSettings(); - QStringList keys = DP->allKeys(); - for(int i=0; i<plugs.length(); i++){ - QStringList filter = keys.filter(plugs[i]); - for(int j=0; j<filter.length(); j++){ - //Has existing settings - need to adjust it - if(filter[j].endsWith("location/height")){ DP->setValue( filter[j], qRound(DP->value(filter[j]).toInt()*yscale) ); } - if(filter[j].endsWith("location/width")){ DP->setValue( filter[j], qRound(DP->value(filter[j]).toInt()*xscale) ); } - if(filter[j].endsWith("location/x")){ DP->setValue( filter[j], qRound(DP->value(filter[j]).toInt()*xscale) ); } - if(filter[j].endsWith("location/y")){ DP->setValue( filter[j], qRound(DP->value(filter[j]).toInt()*yscale) ); } - if(filter[j].endsWith("IconSize")){ DP->setValue( filter[j], qRound(DP->value(filter[j]).toInt()*yscale) ); } - if(filter[j].endsWith("iconsize")){ DP->setValue( filter[j], qRound(DP->value(filter[j]).toInt()*yscale) ); } - } - } - DP->sync(); //make sure it gets saved to disk right away - - } - issyncing = false; -} - -// ===================== -// PRIVATE SLOTS -// ===================== -void LDesktop::InitDesktop(){ - //This is called *once* during the main initialization routines - checkResolution(); //Adjust the desktop config file first (if necessary) - if(DEBUG){ qDebug() << "Init Desktop:" << Screen(); } - //connect(desktop, SIGNAL(resized(int)), this, SLOT(UpdateGeometry(int))); - if(DEBUG){ qDebug() << "Desktop #"<<Screen()<<" -> "<< LSession::desktop()->screenGeometry(Screen()) << LSession::handle()->screenGeom(Screen()); } - deskMenu = new QMenu(0); - connect(deskMenu, SIGNAL(triggered(QAction*)), this, SLOT(SystemApplication(QAction*)) ); - winMenu = new QMenu(0); - winMenu->setTitle(tr("Window List")); - winMenu->setIcon( LXDG::findIcon("preferences-system-windows","") ); - connect(winMenu, SIGNAL(triggered(QAction*)), this, SLOT(winClicked(QAction*)) ); - workspacelabel = new QLabel(0); - workspacelabel->setAlignment(Qt::AlignCenter); - wkspaceact = new QWidgetAction(0); - wkspaceact->setDefaultWidget(workspacelabel); - bgtimer = new QTimer(this); - bgtimer->setSingleShot(true); - connect(bgtimer, SIGNAL(timeout()), this, SLOT(UpdateBackground()) ); - - connect(QApplication::instance(), SIGNAL(DesktopConfigChanged()), this, SLOT(SettingsChanged()) ); - connect(QApplication::instance(), SIGNAL(DesktopFilesChanged()), this, SLOT(UpdateDesktop()) ); - connect(QApplication::instance(), SIGNAL(LocaleChanged()), this, SLOT(LocaleChanged()) ); - connect(QApplication::instance(), SIGNAL(WorkspaceChanged()), this, SLOT(UpdateBackground()) ); - //if(DEBUG){ qDebug() << "Create bgWindow"; } - /*bgWindow = new QWidget(); //LDesktopBackground(); - bgWindow->setObjectName("bgWindow"); - bgWindow->setContextMenuPolicy(Qt::CustomContextMenu); - bgWindow->setFocusPolicy(Qt::StrongFocus); - bgWindow->setWindowFlags(Qt::WindowStaysOnBottomHint | Qt::CustomizeWindowHint | Qt::FramelessWindowHint); - LSession::handle()->XCB->SetAsDesktop(bgWindow->winId()); - bgWindow->setGeometry(LSession::handle()->screenGeom(Screen())); - bgWindow->setWindowOpacity(0.0); - connect(bgWindow, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowMenu()) );*/ - if(DEBUG){ qDebug() << "Create bgDesktop"; } - bgDesktop = new LDesktopPluginSpace(); - int grid = settings->value(DPREFIX+"GridSize",-1).toInt(); - if(grid<0 && LSession::desktop()->screenGeometry(Screen()).height() > 2000){ grid = 200; } - else if(grid<0){ grid = 100; } - bgDesktop->SetIconSize( grid ); - bgDesktop->setContextMenuPolicy(Qt::CustomContextMenu); - //LSession::handle()->XCB->SetAsDesktop(bgDesktop->winId()); - connect(bgDesktop, SIGNAL(PluginRemovedByUser(QString)), this, SLOT(RemoveDeskPlugin(QString)) ); - connect(bgDesktop, SIGNAL(IncreaseIcons()), this, SLOT(IncreaseDesktopPluginIcons()) ); - connect(bgDesktop, SIGNAL(DecreaseIcons()), this, SLOT(DecreaseDesktopPluginIcons()) ); - connect(bgDesktop, SIGNAL(HideDesktopMenu()), deskMenu, SLOT(hide())); - connect(bgDesktop, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowMenu()) ); - if(DEBUG){ qDebug() << " - Desktop Init Done:" << screenID; } - //Start the update processes - QTimer::singleShot(10,this, SLOT(UpdateMenu()) ); - QTimer::singleShot(0,this, SLOT(UpdateBackground()) ); - QTimer::singleShot(1,this, SLOT(UpdateDesktop()) ); - QTimer::singleShot(2,this, SLOT(UpdatePanels()) ); -} - -void LDesktop::SettingsChanged(){ - if(issyncing){ return; } //don't refresh for internal modifications to the - issyncing = true; - qDebug() << "Found Settings Change:" << screenID; - settings->sync(); //make sure to sync with external settings changes - UpdateBackground(); - UpdateDesktop(); - UpdatePanels(); - UpdateMenu(); - issyncing = false; - QTimer::singleShot(100, this, SLOT(UnlockSettings()) ); //give it a few moments to settle before performing another sync -} - -void LDesktop::LocaleChanged(){ - //Update any elements which require a re-translation - UpdateMenu(false); //do the full menu refresh -} - -void LDesktop::UpdateMenu(bool fast){ - if(DEBUG){ qDebug() << " - Update Menu:" << screenID; } - //Put a label at the top - int num = LSession::handle()->XCB->CurrentWorkspace(); //LX11::GetCurrentDesktop(); - if(DEBUG){ qDebug() << "Found workspace number:" << num; } - if(num < 0){ workspacelabel->setText( "<b>"+tr("Lumina Desktop")+"</b>"); } - else{ workspacelabel->setText( "<b>"+QString(tr("Workspace %1")).arg(QString::number(num+1))+"</b>"); } - if(fast && usewinmenu){ UpdateWinMenu(); } - if(fast){ return; } //already done - deskMenu->clear(); //clear it for refresh - deskMenu->addAction(wkspaceact); - deskMenu->addSeparator(); - //Now load the user's menu setup and fill the menu - QStringList items = settings->value("menu/itemlist", QStringList()<< "terminal" << "filemanager" <<"applications" << "line" << "settings" ).toStringList(); - usewinmenu=false; - for(int i=0; i<items.length(); i++){ - if(items[i]=="terminal"){ deskMenu->addAction(LXDG::findIcon("utilities-terminal",""), tr("Terminal"), this, SLOT(SystemTerminal()) ); } - else if(items[i]=="lockdesktop"){ deskMenu->addAction(LXDG::findIcon("system-lock-screen",""), tr("Lock Session"), this, SLOT(SystemLock()) ); } - else if(items[i]=="filemanager"){ deskMenu->addAction( LXDG::findIcon("user-home",""), tr("Browse Files"), this, SLOT(SystemFileManager()) ); } - else if(items[i]=="applications"){ deskMenu->addMenu( LSession::handle()->applicationMenu() ); } - else if(items[i]=="line"){ deskMenu->addSeparator(); } - else if(items[i]=="settings"){ deskMenu->addMenu( LSession::handle()->settingsMenu() ); } - else if(items[i]=="windowlist"){ deskMenu->addMenu( winMenu); usewinmenu=true;} - else if(items[i].startsWith("app::::") && items[i].endsWith(".desktop")){ - //Custom *.desktop application - QString file = items[i].section("::::",1,1).simplified(); - XDGDesktop xdgf(file);// = LXDG::loadDesktopFile(file, ok); - if(xdgf.type!=XDGDesktop::BAD){ - deskMenu->addAction( LXDG::findIcon(xdgf.icon,""), xdgf.name)->setWhatsThis(file); - }else{ - qDebug() << "Could not load application file:" << file; - } - }else if(items[i].startsWith("jsonmenu::::")){ - //Custom JSON menu system (populated on demand via external scripts/tools - QStringList info = items[i].split("::::"); //FORMAT:[ "jsonmenu",exec,name, icon(optional)] - if(info.length()>=3){ - qDebug() << "Custom JSON Menu Loaded:" << info; - JsonMenu *tmp = new JsonMenu(info[1], deskMenu); - tmp->setTitle(info[2]); - connect(tmp, SIGNAL(triggered(QAction*)), this, SLOT(SystemApplication(QAction*)) ); - if(info.length()>=4){ tmp->setIcon( LXDG::findIcon(info[3],"") ); } - deskMenu->addMenu(tmp); - } - } - } - //Now add the system quit options - deskMenu->addSeparator(); - deskMenu->addAction(LXDG::findIcon("system-log-out",""), tr("Leave"), this, SLOT(SystemLogout()) ); -} - -void LDesktop::UpdateWinMenu(){ - winMenu->clear(); - //Get the current list of windows - QList<WId> wins = LSession::handle()->XCB->WindowList(); - //Now add them to the menu - for(int i=0; i<wins.length(); i++){ - LWinInfo info(wins[i]); - bool junk; - QAction *act = winMenu->addAction( info.icon(junk), info.text() ); - act->setData( QString::number(wins[i]) ); - } -} - -void LDesktop::winClicked(QAction* act){ - LSession::handle()->XCB->ActivateWindow( act->data().toString().toULong() ); -} - -void LDesktop::UpdateDesktop(){ - if(DEBUG){ qDebug() << " - Update Desktop Plugins for screen:" << screenID; } - QStringList plugins = settings->value(DPREFIX+"pluginlist", QStringList()).toStringList(); - if(defaultdesktop && plugins.isEmpty()){ - //plugins << "sample" << "sample" << "sample"; - } - bool changed=false; //in case the plugin list needs to be changed - //First make sure all the plugin names are unique - for(int i=0; i<plugins.length(); i++){ - if(!plugins[i].contains("---") ){ - int num=1; - while( plugins.contains(plugins[i]+"---"+QString::number(Screen())+"."+QString::number(num)) ){ - num++; - } - plugins[i] = plugins[i]+"---"+screenID+"."+QString::number(num); - //plugins[i] = plugins[i]+"---"+QString::number(Screen())+"."+QString::number(num); - changed=true; - } - } - if(changed){ - //save the modified plugin list to file (so per-plugin settings are preserved) - issyncing=true; //don't let the change cause a refresh - settings->setValue(DPREFIX+"pluginlist", plugins); - settings->sync(); - QTimer::singleShot(200, this, SLOT(UnlockSettings()) ); - } - //If generating desktop file launchers, add those in - QStringList filelist; - if(settings->value(DPREFIX+"generateDesktopIcons",false).toBool()){ - QFileInfoList files = LSession::handle()->DesktopFiles(); - for(int i=0; i<files.length(); i++){ - filelist << files[i].absoluteFilePath(); - } - } - UpdateDesktopPluginArea(); - bgDesktop->LoadItems(plugins, filelist); -} - -void LDesktop::RemoveDeskPlugin(QString ID){ - //This is called after a plugin is manually removed by the user - // just need to ensure that the plugin is also removed from the settings file - QStringList plugs = settings->value(DPREFIX+"pluginlist", QStringList()).toStringList(); - if(plugs.contains(ID)){ - plugs.removeAll(ID); - issyncing=true; //don't let the change cause a refresh - settings->setValue(DPREFIX+"pluginlist", plugs); - settings->sync(); - QTimer::singleShot(200, this, SLOT(UnlockSettings()) ); - } -} - -void LDesktop::IncreaseDesktopPluginIcons(){ - int cur = settings->value(DPREFIX+"GridSize",-1).toInt(); - if(cur<0 &&LSession::desktop()->screenGeometry(Screen()).height() > 2000){ cur = 200; } - else if(cur<0){ cur = 100; } - cur+=16; - issyncing=true; //don't let the change cause a refresh - settings->setValue(DPREFIX+"GridSize",cur); - settings->sync(); - QTimer::singleShot(200, this, SLOT(UnlockSettings()) ); - bgDesktop->SetIconSize(cur); -} - -void LDesktop::DecreaseDesktopPluginIcons(){ - int cur = settings->value(DPREFIX+"GridSize",-1).toInt(); - if(cur<0 &&LSession::desktop()->screenGeometry(Screen()).height() > 2000){ cur = 200; } - else if(cur<0){ cur = 100; } - if(cur<32){ return; } //cannot get smaller than 16x16 - cur-=16; - issyncing=true; //don't let the change cause a refresh - settings->setValue(DPREFIX+"GridSize",cur); - settings->sync(); - QTimer::singleShot(200, this, SLOT(UnlockSettings()) ); - bgDesktop->SetIconSize(cur); -} - -void LDesktop::UpdatePanels(){ - if(DEBUG){ qDebug() << " - Update Panels For Screen:" << Screen(); } - int panels = settings->value(DPREFIX+"panels", -1).toInt(); - //if(panels==-1 && defaultdesktop){ panels=1; } //need at least 1 panel on the primary desktop - //Remove all extra panels - for(int i=0; i<PANELS.length(); i++){ - if(panels <= PANELS[i]->number()){ - if(DEBUG){ qDebug() << " -- Remove Panel:" << PANELS[i]->number(); } - PANELS[i]->prepareToClose(); - PANELS.takeAt(i)->deleteLater(); - i--; - } - } - for(int i=0; i<panels; i++){ - //Check for a panel with this number - bool found = false; - for(int p=0; p<PANELS.length() && !found; p++){ - if(PANELS[p]->number() == i){ - found = true; - if(DEBUG){ qDebug() << " -- Update panel "<< i; } - //panel already exists - just update it - QTimer::singleShot(0, PANELS[p], SLOT(UpdatePanel()) ); - } - } - if(!found){ - if(DEBUG){ qDebug() << " -- Create panel "<< i; } - //New panel - LPanel *pan = new LPanel(settings, screenID, i, bgDesktop); - PANELS << pan; - pan->show(); - } - } - //Give it a 1/2 second before ensuring that the visible desktop area is correct - QTimer::singleShot(500, this, SLOT(UpdateDesktopPluginArea()) ); -} - -void LDesktop::UpdateDesktopPluginArea(){ - QRegion visReg(LSession::desktop()->screenGeometry(Screen()) ); //visible region (not hidden behind a panel) - QRect rawRect = visReg.boundingRect(); //initial value (screen size) - //qDebug() << "Update Desktop Plugin Area:" << bgWindow->geometry(); - for(int i=0; i<PANELS.length(); i++){ - QRegion shifted = visReg; - QString loc = settings->value(PANELS[i]->prefix()+"location","top").toString().toLower(); - int vis = PANELS[i]->visibleWidth(); - if(loc=="top"){ - if(!shifted.contains(QRect(rawRect.x(), rawRect.y(), rawRect.width(), vis))){ continue; } - shifted.translate(0, (rawRect.top()+vis)-shifted.boundingRect().top() ); - }else if(loc=="bottom"){ - if(!shifted.contains(QRect(rawRect.x(), rawRect.bottom()-vis, rawRect.width(), vis))){ continue; } - shifted.translate(0, (rawRect.bottom()-vis)-shifted.boundingRect().bottom()); - }else if(loc=="left"){ - if( !shifted.contains(QRect(rawRect.x(), rawRect.y(), vis,rawRect.height())) ){ continue; } - shifted.translate((rawRect.left()+vis)-shifted.boundingRect().left() ,0); - }else{ //right - if(!shifted.contains(QRect(rawRect.right()-vis, rawRect.y(), vis,rawRect.height())) ){ continue; } - shifted.translate((rawRect.right()-vis)-shifted.boundingRect().right(),0); - } - visReg = visReg.intersected( shifted ); - } - //Now make sure the desktop plugin area is only the visible area - QRect rec = visReg.boundingRect(); - //qDebug() << " - DPArea: Panel-Adjusted rectangle:" << rec; - //LSession::handle()->XCB->SetScreenWorkArea((unsigned int) Screen(), rec); - //Now remove the X offset to place it on the current screen (needs widget-coords, not global) - globalWorkRect = rec; //save this for later - rec.moveTopLeft( QPoint( rec.x()-LSession::desktop()->screenGeometry(Screen()).x() , rec.y()-LSession::desktop()->screenGeometry(Screen()).y() ) ); - //qDebug() << "DPlug Area:" << rec << bgDesktop->geometry() << LSession::handle()->desktop()->availableGeometry(bgDesktop); - if(rec.size().isNull() || rec == bgDesktop->geometry()){return; } //nothing changed - bgDesktop->setGeometry( LSession::desktop()->screenGeometry(Screen())); - bgDesktop->setDesktopArea( rec ); - bgDesktop->UpdateGeom(); //just in case the plugin space itself needs to do anything - QTimer::singleShot(10, this, SLOT(UpdateBackground()) ); - //Re-paint the panels (just in case a plugin was underneath it and the panel is transparent) - //for(int i=0; i<PANELS.length(); i++){ PANELS[i]->update(); } - //Make sure to re-disable any WM control flags - LSession::handle()->XCB->SetDisableWMActions(bgDesktop->winId()); -} - -void LDesktop::UpdateBackground(){ - //Get the current Background - if(bgupdating || bgDesktop==0){ return; } //prevent multiple calls to this at the same time - bgupdating = true; - if(DEBUG){ qDebug() << " - Update Desktop Background for screen:" << Screen(); } - //Get the list of background(s) to show - QStringList bgL = settings->value(DPREFIX+"background/filelist-workspace-"+QString::number( LSession::handle()->XCB->CurrentWorkspace()), QStringList()).toStringList(); - if(bgL.isEmpty()){ bgL = settings->value(DPREFIX+"background/filelist", QStringList()).toStringList(); } - - //qDebug() << " - List:" << bgL << CBG; - //Remove any invalid files - for(int i=0; i<bgL.length(); i++){ - if( (!QFile::exists(bgL[i]) && bgL[i]!="default" && !bgL[i].startsWith("rgb(") ) || bgL[i].isEmpty()){ bgL.removeAt(i); i--; } - } - if(bgL.isEmpty()){ bgL << "default"; } //always fall back on the default - //Determine if the background needs to be changed - //qDebug() << "BG List:" << bgL << oldBGL << CBG << bgtimer->isActive(); - if(bgL==oldBGL && !CBG.isEmpty() && bgtimer->isActive()){ - //No background change scheduled - just update the widget - bgDesktop->update(); - bgupdating=false; - return; - } - oldBGL = bgL; //save this for later - //Determine which background to use next - int index ( qrand() % bgL.length() ); - if(index== bgL.indexOf(CBG)){ //if the current wallpaper was selected by the randomization again - //Go to the next in the list - if(index < 0 || index >= bgL.length()-1){ index = 0; } //if invalid or last item in the list - go to first - else{ index++; } //go to next - } - QString bgFile = bgL[index]; - //Save this file as the current background - CBG = bgFile; - //qDebug() << " - Set Background to:" << CBG << index << bgL; - if( (bgFile.toLower()=="default")){ bgFile = LOS::LuminaShare()+"desktop-background.jpg"; } - //Now set this file as the current background - QString format = settings->value(DPREFIX+"background/format","stretch").toString(); - //bgWindow->setBackground(bgFile, format); - QPixmap backPix = LDesktopBackground::setBackground(bgFile, format, LSession::handle()->screenGeom(Screen())); - bgDesktop->setBackground(backPix); - //Now reset the timer for the next change (if appropriate) - if(bgtimer->isActive()){ bgtimer->stop(); } - if(bgL.length() > 1){ - //get the length of the timer (in minutes) - int min = settings->value(DPREFIX+"background/minutesToChange",5).toInt(); - //restart the internal timer - if(min > 0){ - bgtimer->start(min*60000); //convert from minutes to milliseconds - } - } - //Now update the panel backgrounds - for(int i=0; i<PANELS.length(); i++){ - PANELS[i]->update(); - PANELS[i]->show(); - } - bgupdating=false; -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktop.h b/src-qt5/core/lumina-desktop-unified/src-DE/LDesktop.h deleted file mode 100644 index b6034c18..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktop.h +++ /dev/null @@ -1,107 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_LDESKTOP_H -#define _LUMINA_DESKTOP_LDESKTOP_H - -#include <QCoreApplication> - - -#include <QSettings> -#include <QFile> -#include <QList> -#include <QDebug> -#include <QTimer> -#include <QFileSystemWatcher> -#include <QLabel> -#include <QWidgetAction> -#include <QMdiArea> -#include <QMdiSubWindow> -#include <QRegion> - - -#include <LuminaXDG.h> - -#include "LPanel.h" -//#include "Globals.h" -#include "AppMenu.h" -#include "LDesktopPluginSpace.h" -#include "desktop-plugins/LDPlugin.h" -//#include "desktop-plugins/NewDP.h" -#include "LDesktopBackground.h" - -class LDesktop : public QObject{ - Q_OBJECT -public: - LDesktop(int deskNum=0, bool setdefault = false); - ~LDesktop(); - - int Screen(); //return the screen number this object is managing - void show(); - void hide(); - void prepareToClose(); - - WId backgroundID(); - QRect availableScreenGeom(); - - void UpdateGeometry(); - -public slots: - void SystemLock(); - void SystemLogout(); - void SystemTerminal(); - void SystemFileManager(); - void SystemApplication(QAction*); - - void checkResolution(); - -private: - QSettings *settings; - QTimer *bgtimer; - //QDesktopWidget *desktop; - QString DPREFIX, screenID; - //int desktopnumber; - QRegion availDPArea; - bool defaultdesktop, issyncing, usewinmenu, bgupdating; - QStringList oldBGL; - QList<LPanel*> PANELS; - LDesktopPluginSpace *bgDesktop; //desktop plugin area - //QWidget *bgWindow; //full screen background - QMenu *deskMenu, *winMenu; - QLabel *workspacelabel; - QWidgetAction *wkspaceact; - QList<LDPlugin*> PLUGINS; - QString CBG; //current background - QRect globalWorkRect; - -private slots: - void InitDesktop(); - void SettingsChanged(); - void UnlockSettings(){ issyncing=false; } - void LocaleChanged(); - - //Menu functions - void UpdateMenu(bool fast = false); - void ShowMenu(){ - UpdateMenu(true); //run the fast version - deskMenu->popup(QCursor::pos()); //} - } - void UpdateWinMenu(); - void winClicked(QAction*); - - //Desktop plugin system functions - void UpdateDesktop(); - void RemoveDeskPlugin(QString); - void IncreaseDesktopPluginIcons(); - void DecreaseDesktopPluginIcons(); - - void UpdatePanels(); - - void UpdateDesktopPluginArea(); //make sure the area is not underneath any panels - - void UpdateBackground(); -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopBackground.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopBackground.cpp deleted file mode 100644 index 6b458c24..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopBackground.cpp +++ /dev/null @@ -1,90 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Henry Hu -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LDesktopBackground.h" - -#include <QPainter> -#include <QPaintEvent> -#include <QDebug> - -#include "LSession.h" - -void LDesktopBackground::paintEvent(QPaintEvent *ev) { - //return; //do nothing - always invisible - if (bgPixmap != NULL) { - //qDebug() << "Wallpaper paint Event:" << ev->rect(); - //QPainter painter(this); - //painter.setBrush(*bgPixmap); - //painter.drawRect(ev->rect().adjusted(-1,-1,2,2)); - }else{ - QWidget::paintEvent(ev); - } -} - -QPixmap LDesktopBackground::setBackground(const QString& bgFile, const QString& format, QRect geom) { - //if (bgPixmap != NULL) delete bgPixmap; - QPixmap bgPixmap(geom.size());// = new QPixmap(size()); - - if (bgFile.startsWith("rgb(")) { - QStringList colors = bgFile.section(")",0,0).section("(",1,1).split(","); - QColor color = QColor(colors[0].toInt(), colors[1].toInt(), colors[2].toInt()); - bgPixmap.fill(color); - } else { - bgPixmap.fill(Qt::black); - - // Load the background file and scale - QPixmap bgImage(bgFile); - if (format == "stretch" || format == "full" || format == "fit") { - Qt::AspectRatioMode mode; - if (format == "stretch") { - mode = Qt::IgnoreAspectRatio; - } else if (format == "full") { - mode = Qt::KeepAspectRatioByExpanding; - } else { - mode = Qt::KeepAspectRatio; - } - if(bgImage.height() != geom.height() && bgImage.width() != geom.width() ){ bgImage = bgImage.scaled(geom.size(), mode); } - //bgImage = bgImage.scaled(size(), mode); - } - - // Calculate the offset - int dx = 0, dy = 0; - int drawWidth = bgImage.width(), drawHeight = bgImage.height(); - if (format == "fit" || format == "center" || format == "full") { - dx = (geom.width() - bgImage.width()) / 2; - dy = (geom.height() - bgImage.height()) / 2; - } else if (format == "tile") { - drawWidth = geom.width(); - drawHeight = geom.height(); - } else { - if (format.endsWith("right")) { - dx = geom.width() - bgImage.width(); - } - if (format.startsWith("bottom")) { - dy = geom.height() - bgImage.height(); - } - } - - // Draw the background image - QPainter painter(&bgPixmap); - painter.setBrush(bgImage); - painter.setBrushOrigin(dx, dy); - painter.drawRect(dx, dy, drawWidth, drawHeight); - } - //this->repaint(); //make sure the entire thing gets repainted right away - //LSession::handle()->XCB->paintRoot(geom, &bgPixmap); - return bgPixmap; - //show(); -} - -LDesktopBackground::LDesktopBackground() : QWidget() { - bgPixmap = NULL; - this->setWindowOpacity(0); -} - -LDesktopBackground::~LDesktopBackground() { - if (bgPixmap != NULL) delete bgPixmap; -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopBackground.h b/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopBackground.h deleted file mode 100644 index a2e46748..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopBackground.h +++ /dev/null @@ -1,27 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Henry Hu -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_LDESKTOPBACKGROUND_H_ -#define _LUMINA_DESKTOP_LDESKTOPBACKGROUND_H_ - -#include <QString> -#include <QWidget> -#include <QPixmap> - -class LDesktopBackground: public QWidget { - Q_OBJECT -public: - LDesktopBackground(); - virtual ~LDesktopBackground(); - - virtual void paintEvent(QPaintEvent*); - static QPixmap setBackground(const QString&, const QString&, QRect geom); - -private: - QPixmap *bgPixmap; -}; - -#endif // _LUMINA_DESKTOP_LDESKTOPBACKGROUND_H_ diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopPluginSpace.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopPluginSpace.cpp deleted file mode 100644 index 18126dfa..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopPluginSpace.cpp +++ /dev/null @@ -1,333 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LDesktopPluginSpace.h" -#include "LSession.h" -#include "desktop-plugins/NewDP.h" - -#include <LuminaXDG.h> -#include <QDesktopWidget> - -#define DEBUG 0 - -// =================== -// PUBLIC -// =================== -LDesktopPluginSpace::LDesktopPluginSpace() : QWidget(){ - this->setObjectName("LuminaDesktopPluginSpace"); - this->setAttribute(Qt::WA_TranslucentBackground); - //this->setAttribute(Qt::WA_NoSystemBackground); - this->setAutoFillBackground(false); - this->setStyleSheet("QWidget#LuminaDesktopPluginSpace{ border: none; background: transparent; }"); - this->setWindowFlags(Qt::WindowStaysOnBottomHint | Qt::CustomizeWindowHint | Qt::FramelessWindowHint); - this->setAcceptDrops(true); - this->setContextMenuPolicy(Qt::NoContextMenu); - this->setMouseTracking(true); - TopToBottom = true; - GRIDSIZE = 100.0; //default value if not set - plugsettings = LSession::handle()->DesktopPluginSettings(); - LSession::handle()->XCB->SetAsDesktop(this->winId()); - //this->setWindowOpacity(0.0); -} - -LDesktopPluginSpace::~LDesktopPluginSpace(){ - -} - -void LDesktopPluginSpace::LoadItems(QStringList plugs, QStringList files){ - if(DEBUG){ qDebug() << "Loading Desktop Items:" << plugs << files << "Area:" << this->size() << GRIDSIZE; } - bool changes = false; - if(plugs != plugins){ plugins = plugs; changes = true; } - if(files != deskitems){ deskitems = files; changes = true; } - if(changes){ QTimer::singleShot(0,this, SLOT(reloadPlugins())); } - this->show(); -} - -void LDesktopPluginSpace::SetIconSize(int size){ - if(DEBUG){ qDebug() << "Set Desktop Icon Size:" << size; } - //QSize newsize = calculateItemSize(size); - int oldsize = GRIDSIZE; - GRIDSIZE = size; //turn the int into a float; - //itemSize = QSize(1,1); //save this for all the later icons which are generated (grid size) - UpdateGeom(oldsize); - //Now re-set the item icon size - //reloadPlugins(true); -} - -void LDesktopPluginSpace::cleanup(){ - //Perform any final cleanup actions here - for(int i=0; i<ITEMS.length(); i++){ - ITEMS.takeAt(i)->deleteLater(); - i--; - } - plugins.clear(); - deskitems.clear(); - this->hide(); -} - -void LDesktopPluginSpace::setBackground(QPixmap pix){ - wallpaper = pix; - this->repaint(); -} - -void LDesktopPluginSpace::setDesktopArea(QRect area){ - desktopRect = area; -} - -// =================== -// PUBLIC SLOTS -// =================== -void LDesktopPluginSpace::UpdateGeom(int oldgrid){ - if(DEBUG){ qDebug() << "Updated Desktop Geom:" << desktopRect.size() << GRIDSIZE << desktopRect.size()/GRIDSIZE; } - //Go through and check the locations/sizes of all items (particularly the ones on the bottom/right edges) - //bool reload = false; - for(int i=0; i<ITEMS.length(); i++){ - QRect grid = geomToGrid(ITEMS[i]->geometry(), oldgrid); - if(DEBUG){ qDebug() << " - Check Plugin:" << ITEMS[i]->whatsThis() << grid; } - if( !ValidGrid(grid) ){ - //This plugin is too far out of the screen - find new location for it - if(DEBUG){ qDebug() << " -- Out of bounds - Find a new spot"; } - grid = findOpenSpot(grid, ITEMS[i]->whatsThis(), true); //Reverse lookup spot - } - if(!ValidGrid(grid)){ - qDebug() << "No Place for plugin:" << ITEMS[i]->whatsThis(); - qDebug() << " - Removing it for now..."; - ITEMS.takeAt(i)->deleteLater(); - i--; - }else{ - //NOTE: We are not doing the ValidGeometry() checks because we are only resizing existing plugin with pre-set & valid grid positions - grid = gridToGeom(grid); //convert to pixels before saving/sizing - MovePlugin(ITEMS[i], grid); - /*ITEMS[i]->setGeometry( grid ); - ITEMS[i]->setFixedSize(grid.size()); - ITEMS[i]->savePluginGeometry(grid);*/ - } - } - //if(reload){ QTimer::singleShot(0,this, SLOT(reloadPlugins())); } -} - -// =================== -// PRIVATE -// =================== -void LDesktopPluginSpace::addDesktopItem(QString filepath){ - addDesktopPlugin("applauncher::"+filepath+"---dlink"+QString::number(LSession::handle()->desktop()->screenNumber(this)) ); -} - -void LDesktopPluginSpace::addDesktopPlugin(QString plugID){ - //This is used for generic plugins (QWidget-based) - if(DEBUG){ qDebug() << "Adding Desktop Plugin:" << plugID; } - LDPlugin *plug = NewDP::createPlugin(plugID, this); - if(plug==0){ return; } //invalid plugin - //plug->setAttribute(Qt::WA_TranslucentBackground); - plug->setWhatsThis(plugID); - //Now get the geometry for the plugin - QRect geom = plug->loadPluginGeometry(); //in pixel coords - if(!geom.isNull()){ geom = geomToGrid(geom); } //convert to grid coordinates - if(geom.isNull()){ - //No previous location - need to calculate initial geom - QSize sz = plug->defaultPluginSize(); //in grid coordinates - geom.setSize(sz); - //if an applauncher - add from top-left, otherwise add in from bottom-right - if(plugID.startsWith("applauncher")){ geom = findOpenSpot(geom.width(), geom.height() ); } - else{ geom = findOpenSpot(geom.width(), geom.height(), RoundUp(this->height()/GRIDSIZE), RoundUp(this->width()/GRIDSIZE), true); } - }else if(!ValidGeometry(plugID, gridToGeom(geom)) ){ - //Find a new location for the plugin (saved location is invalid) - geom = findOpenSpot(geom.width(), geom.height(), geom.y(), geom.x(), false); //try to get it within the same general area first - } - if(geom.x() < 0 || geom.y() < 0){ - qDebug() << "No available space for desktop plugin:" << plugID << " - IGNORING"; - delete plug; - }else{ - if(DEBUG){ qDebug() << " - New Plugin Geometry (grid):" << geom; } - //Now place the item in the proper spot/size - MovePlugin(plug, gridToGeom(geom)); - //plug->setGeometry( gridToGeom(geom) ); - plug->show(); - if(DEBUG){ qDebug() << " - New Plugin Geometry (px):" << plug->geometry(); } - ITEMS << plug; - connect(plug, SIGNAL(StartMoving(QString)), this, SLOT(StartItemMove(QString)) ); - connect(plug, SIGNAL(StartResizing(QString)), this, SLOT(StartItemResize(QString)) ); - connect(plug, SIGNAL(RemovePlugin(QString)), this, SLOT(RemoveItem(QString)) ); - connect(plug, SIGNAL(IncreaseIconSize()), this, SIGNAL(IncreaseIcons()) ); - connect(plug, SIGNAL(DecreaseIconSize()), this, SIGNAL(DecreaseIcons()) ); - connect(plug, SIGNAL(CloseDesktopMenu()), this, SIGNAL(HideDesktopMenu()) ); - } -} - -QRect LDesktopPluginSpace::findOpenSpot(int gridwidth, int gridheight, int startRow, int startCol, bool reversed, QString plugID){ - //Note about the return QPoint: x() is the column number, y() is the row number - QPoint pt(0,0); - //qDebug() << "FIND OPEN SPOT:" << gridwidth << gridheight << startRow << startCol << reversed; - int row = startRow; int col = startCol; - if(row<0){ row = 0; } //just in case - since this can be recursively called - if(col<0){ col = 0; } //just in case - since this can be recursively called - bool found = false; - int rowCount, colCount; - rowCount = RoundUp(desktopRect.height()/GRIDSIZE); - colCount = RoundUp(desktopRect.width()/GRIDSIZE); - if( (row+gridheight)>rowCount){ row = rowCount-gridheight; startRow = row; } - if( (col+gridwidth)>colCount){ col = colCount-gridwidth; startCol = col; } - QRect geom(0, 0, gridwidth*GRIDSIZE, gridheight*GRIDSIZE); //origin point will be adjusted in a moment - if(DEBUG){ qDebug() << "Search for plugin space:" << rowCount << colCount << gridheight << gridwidth << this->size(); } - if(TopToBottom && reversed && (startRow>0 || startCol>0) ){ - //Arrange Top->Bottom (work backwards) - //qDebug() << "Search backwards for space:" << rowCount << colCount << startRow << startCol << gridheight << gridwidth; - while(col>=0 && !found){ - while(row>=0 && !found){ - bool ok = true; - geom.moveTo(col*GRIDSIZE, row*GRIDSIZE); - //qDebug() << " - Check Geom:" << geom << col << row; - //Check all the existing items to ensure no overlap - for(int i=0; i<ITEMS.length() && ok; i++){ - if(ITEMS[i]->whatsThis()==plugID){ continue; } //same plugin - this is not a conflict - if(geom.intersects(ITEMS[i]->geometry())){ - //Collision - move the next searchable row/column index - ok = false; - //qDebug() << "Collision:" << col << row; - row = ((ITEMS[i]->geometry().y()-GRIDSIZE/2)/GRIDSIZE) -gridheight; //use top edge for next search (minus item height) - //qDebug() << " - new row:" << row; - } - } - if(ok){ pt = QPoint(col,row); found = true; } //found an open spot - } - if(!found){ col--; row=rowCount-gridheight; } //go to the previous column - } - }else if(TopToBottom){ - //Arrange Top->Bottom - while(col<(colCount-gridwidth) && !found){ - while(row<(rowCount-gridheight) && !found){ - bool ok = true; - geom.moveTo(col*GRIDSIZE, row*GRIDSIZE); - //qDebug() << " - Check Geom:" << geom << col << row; - //Check all the existing items to ensure no overlap - for(int i=0; i<ITEMS.length() && ok; i++){ - if(ITEMS[i]->whatsThis()==plugID){ continue; } //same plugin - this is not a conflict - if(geom.intersects(ITEMS[i]->geometry())){ - //Collision - move the next searchable row/column index - ok = false; - row = posToGrid(ITEMS[i]->geometry().bottomLeft()).y(); //use bottom edge for next search - } - } - if(ok){ pt = QPoint(col,row); found = true; } //found an open spot - //else{ row++; } - } - if(!found){ col++; row=0; } //go to the next column - } - }else if(reversed && (startRow>0 || startCol>0) ){ - //Arrange Left->Right (work backwards) - while(row>=0 && !found){ - while(col>=0 && !found){ - bool ok = true; - geom.moveTo(col*GRIDSIZE, row*GRIDSIZE); - //Check all the existing items to ensure no overlap - for(int i=0; i<ITEMS.length() && ok; i++){ - if(ITEMS[i]->whatsThis()==plugID){ continue; } //same plugin - this is not a conflict - if(geom.intersects(ITEMS[i]->geometry())){ - //Collision - move the next searchable row/column index - ok = false; - col = (ITEMS[i]->geometry().x()-GRIDSIZE/2)/GRIDSIZE - gridwidth; // Fill according to row/column - } - } - if(ok){ pt = QPoint(col,row); found = true; } //found an open spot - //else{ col++; } - } - if(!found){ row--; col=colCount-gridwidth;} //go to the previous row - } - }else{ - //Arrange Left->Right - while(row<(rowCount-gridheight) && !found){ - while(col<(colCount-gridwidth) && !found){ - bool ok = true; - geom.moveTo(col*GRIDSIZE, row*GRIDSIZE); - //Check all the existing items to ensure no overlap - for(int i=0; i<ITEMS.length() && ok; i++){ - if(ITEMS[i]->whatsThis()==plugID){ continue; } //same plugin - this is not a conflict - if(geom.intersects(ITEMS[i]->geometry())){ - //Collision - move the next searchable row/column index - ok = false; - col = posToGrid(ITEMS[i]->geometry().topRight()).x(); // Fill according to row/column - } - } - if(ok){ pt = QPoint(col,row); found = true; } //found an open spot - //else{ col++; } - } - if(!found){ row++; col=0;} //go to the next row - } - } - if(!found){ - //qDebug() << "Could not find a spot:" << startRow << startCol << gridheight << gridwidth; - if( (startRow!=0 || startCol!=0) && !reversed){ - //Did not check the entire screen yet - gradually work it's way back to the top/left corner - //qDebug() << " - Start backwards search"; - return findOpenSpot(gridwidth, gridheight,startRow,startCol, true); //reverse the scan - }else if(gridwidth>1 && gridheight>1){ - //Decrease the size of the item by 1x1 grid points and try again - //qDebug() << " - Out of space: Decrease item size and try again..."; - return findOpenSpot(gridwidth-1, gridheight-1, 0, 0); - }else{ - //qDebug() << " - Could not find an open spot for a desktop plugin:" << gridwidth << gridheight << startRow << startCol; - return QRect(-1,-1,-1,-1); - } - }else{ - return QRect(pt,QSize(gridwidth,gridheight)); - } -} - -QRect LDesktopPluginSpace::findOpenSpot(QRect grid, QString plugID, bool recursive){ //Reverse lookup spotc{ - //This is just an overloaded simplification for checking currently existing plugins - return findOpenSpot(grid.width(), grid.height(), grid.y(), grid.x(), recursive, plugID); -} - -// =================== -// PRIVATE SLOTS -// =================== -void LDesktopPluginSpace::reloadPlugins(bool ForceIconUpdate ){ - //Remove any plugins as necessary - QStringList plugs = plugins; - QStringList items = deskitems; - for(int i=0; i<ITEMS.length(); i++){ - - if( ITEMS[i]->whatsThis().startsWith("applauncher") && ForceIconUpdate){ - //Change the size of the existing plugin - preserving the location if possible - /*QRect geom = ITEMS[i]->loadPluginGeometry(); //pixel coords - if(!geom.isNull()){ - geom = geomToGrid(geom); //convert to grid coords - geom.setSize(itemSize); //Reset back to default size (does not change location) - ITEMS[i]->savePluginGeometry( gridToGeom(geom)); //save it back in pixel coords - }*/ - //Now remove the plugin for the moment - run it through the re-creation routine below - ITEMS.takeAt(i)->deleteLater(); - i--; - } - else if(plugs.contains(ITEMS[i]->whatsThis())){ plugs.removeAll(ITEMS[i]->whatsThis()); } - else if(items.contains(ITEMS[i]->whatsThis().section("---",0,0).section("::",1,50))){ items.removeAll(ITEMS[i]->whatsThis().section("---",0,0).section("::",1,50)); } - else{ ITEMS[i]->removeSettings(true); ITEMS.takeAt(i)->deleteLater(); i--; } //this is considered a permanent removal (cleans settings) - } - - //Now create any new items - //First load the plugins (almost always have fixed locations) - for(int i=0; i<plugs.length(); i++){ - addDesktopPlugin(plugs[i]); - } - //Now load the desktop shortcuts (fill in the gaps as needed) - for(int i=0; i<items.length(); i++){ - addDesktopItem(items[i]); - } -} - - -//================= -// PROTECTED -//================= -void LDesktopPluginSpace::paintEvent(QPaintEvent*ev){ - if(!wallpaper.isNull()){ - QPainter painter(this); - painter.setBrush(wallpaper); - painter.drawRect(ev->rect().adjusted(-1,-1,2,2)); - }else{ - QWidget::paintEvent(ev); - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopPluginSpace.h b/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopPluginSpace.h deleted file mode 100644 index abc34878..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LDesktopPluginSpace.h +++ /dev/null @@ -1,303 +0,0 @@ -//=========================================== -// 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_LDESKTOP_PLUGIN_SPACE_H -#define _LUMINA_DESKTOP_LDESKTOP_PLUGIN_SPACE_H - -#include <QListWidget> -#include <QDropEvent> -#include <QDrag> //includes all the QDrag*Event classes -#include <QUrl> -#include <QMimeData> -#include <QSettings> -#include <QDebug> -#include <QFile> -#include <QDir> -#include <QFileInfo> -#include <QProcess> - -#include "desktop-plugins/LDPlugin.h" - -#define MIMETYPE QString("x-special/lumina-desktop-plugin") - -class LDesktopPluginSpace : public QWidget{ - Q_OBJECT - -signals: - void PluginRemovedByUser(QString ID); - void IncreaseIcons(); //increase default icon sizes - void DecreaseIcons(); //decrease default icon sizes - void HideDesktopMenu(); - -public: - LDesktopPluginSpace(); - ~LDesktopPluginSpace(); - - void LoadItems(QStringList plugs, QStringList files); - //void setShowGrid(bool show); This is already implemented in QTableView (inherited) - void SetIconSize(int size); - void ArrangeTopToBottom(bool ttb); //if false, will arrange left->right - void cleanup(); - - void setBackground(QPixmap pix); //should already be sized appropriately for this widget - void setDesktopArea(QRect area); - -public slots: - void UpdateGeom(int oldgrid = -1); - -private: - QSettings *plugsettings; - QStringList plugins, deskitems; - QList<LDPlugin*> ITEMS; - QPixmap wallpaper; - QRect desktopRect; - bool TopToBottom; - float GRIDSIZE; - - int RoundUp(double num){ - int out = num; //This will truncate the number - if(out < num){ out++; } //need to increase by 1 - return out; - } - - void addDesktopItem(QString filepath); //This will convert it into a valid Plugin ID automatically - void addDesktopPlugin(QString plugID); - - - QRect findOpenSpot(int gridwidth = 1, int gridheight = 1, int startRow = 0, int startCol = 0, bool reversed = false, QString plugID = ""); - QRect findOpenSpot(QRect grid, QString plugID, bool recursive = false); - - QPoint posToGrid(QPoint pos){ - //This assumes a point in widget-relative coordinates - pos.setX( RoundUp(pos.x()/GRIDSIZE)); - pos.setY( RoundUp(pos.y()/GRIDSIZE)); - return pos; - } - - QRect geomToGrid(QRect geom, int grid = -1){ - if(grid<0){ - //use the current grid size - return QRect( RoundUp(geom.x()/GRIDSIZE), RoundUp(geom.y()/GRIDSIZE), \ - RoundUp(geom.width()/GRIDSIZE), RoundUp(geom.height()/GRIDSIZE) ); - }else{ - //use the input grid size - return QRect( RoundUp(geom.x()/((double) grid)), RoundUp(geom.y()/((double) grid)), \ - RoundUp(geom.width()/((double) grid)), RoundUp(geom.height()/((double) grid)) ); - } - } - - QRect gridToGeom(QRect grid){ - //This function incorporates the bottom/right edge matchins procedures (for incomplete last grid) - QRect geom(grid.x()*GRIDSIZE, grid.y()*GRIDSIZE, grid.width()*GRIDSIZE, grid.height()*GRIDSIZE); - //Now check the edge conditions (last right/bottom grid points might be smaller than GRIDSIZE) - QSize areaSize = desktopRect.size(); //use the size of the area instead of the geometry - because we need this in child coordinates like "geom" above - //qDebug() << "GridToGeom:" << grid << geom << "Area size:" << areaSize; - if(geom.right() > areaSize.width() && (geom.right()-areaSize.width())<GRIDSIZE ){ - geom.setRight(areaSize.width()-1); //match up with the edge - } - if(geom.bottom() > areaSize.height() && (geom.bottom() -areaSize.height())<GRIDSIZE ){ - geom.setBottom(areaSize.height()-1); //match up with the edge - } - //qDebug() << " - Adjusted:" << geom; - return geom; - } - - //Internal simplification for setting up a drag event - void setupDrag(QString id, QString type){ - QMimeData *mime = new QMimeData; - mime->setData(MIMETYPE, QString(type+"::::"+id).toLocal8Bit() ); - //If this is a desktop file - also add it to the generic URI list mimetype - if(id.startsWith("applauncher::")){ - QList<QUrl> urilist; - urilist << QUrl::fromLocalFile( id.section("---",0,0).section("::",1,50) ); - mime->setUrls(urilist); - } - //Create the drag structure - QDrag *drag = new QDrag(this); - drag->setMimeData(mime); - drag->exec(Qt::CopyAction); - } - - bool ValidGrid(QRect grid){ - //qDebug() << "Check Valid Grid:" << grid << RoundUp(this->width()/GRIDSIZE) << RoundUp(this->height()/GRIDSIZE); - //This just checks that the grid coordinates are not out of bounds - should still run ValidGeometry() below with the actual pixel geom - if(grid.x()<0 || grid.y()<0 || grid.width()<0 || grid.height()<0){ return false; } - else if( (grid.x()+grid.width()) > RoundUp(desktopRect.width()/GRIDSIZE) ){ return false; } - else if( (grid.y()+grid.height()) > RoundUp(desktopRect.height()/GRIDSIZE) ){ return false; } - return true; - } - - bool ValidGeometry(QString id, QRect geom){ - //First check that it is within the desktop area completely - // Note that "this->geometry()" is not in the same coordinate space as the geometry inputs - if(!QRect(0,0,desktopRect.width(), desktopRect.height()).contains(geom)){ return false; } - //Now check that it does not collide with any other items - for(int i=0; i<ITEMS.length(); i++){ - if(ITEMS[i]->whatsThis()==id){ continue; } - else if(geom.intersects(ITEMS[i]->geometry())){ return false; } - } - return true; - } - - LDPlugin* ItemFromID(QString ID){ - for(int i=0; i<ITEMS.length(); i++){ - if(ITEMS[i]->whatsThis()==ID){ return ITEMS[i]; } - } - return 0; - } - - void MovePlugin(LDPlugin* plug, QRect geom){ - plug->setGeometry( geom ); - plug->setFixedSize(geom.size()); //needed for some plugins - plug->savePluginGeometry(geom); - } - -private slots: - void reloadPlugins(bool ForceIconUpdate = false); - - void StartItemMove(QString ID){ - setupDrag(ID, "move"); - } - void StartItemResize(QString ID){ - setupDrag(ID, "resize"); - } - void RemoveItem(QString ID){ - //Special case - desktop file/dir link using the "applauncher" plugin - if(ID.startsWith("applauncher::")){ - QFileInfo info(ID.section("---",0,0).section("::",1,50) ); - if(info.exists() && info.absolutePath()==QDir::homePath()+"/Desktop"){ - qDebug() << "Deleting Desktop Item:" << info.absoluteFilePath(); - if(!info.isSymLink() && info.isDir()){ QProcess::startDetached("rm -r \""+info.absoluteFilePath()+"\""); } - else{ QFile::remove(info.absoluteFilePath()); } //just remove the file/symlink directly - emit PluginRemovedByUser(ID); - return; - } - } - //Any other type of plugin - for(int i=0; i<ITEMS.length(); i++){ - if(ITEMS[i]->whatsThis()==ID){ - ITEMS[i]->Cleanup(); - ITEMS.takeAt(i)->deleteLater(); - break; - } - } - emit PluginRemovedByUser(ID); - } - -protected: - void focusInEvent(QFocusEvent *ev){ - this->lower(); //make sure we stay on the bottom of the window stack - QWidget::focusInEvent(ev); //do normal handling - } - void paintEvent(QPaintEvent*ev); - - //Need Drag and Drop functionality (internal movement) - void dragEnterEvent(QDragEnterEvent *ev){ - if(ev->mimeData()->hasFormat(MIMETYPE) ){ - ev->acceptProposedAction(); //allow this to be dropped here - }else if(ev->mimeData()->hasUrls()){ - ev->acceptProposedAction(); //allow this to be dropped here - }else{ - ev->ignore(); - } - } - - void dragMoveEvent(QDragMoveEvent *ev){ - if(ev->mimeData()->hasFormat(MIMETYPE) ){ - //Internal move/resize - Check for validity - QString act = QString( ev->mimeData()->data(MIMETYPE) ); - LDPlugin *item = ItemFromID(act.section("::::",1,50)); - //qDebug() << "Internal Move Event:" << act << ev->pos(); - if(item!=0){ - QRect geom = item->geometry(); - QPoint grid = posToGrid(ev->pos()); - if(act.section("::::",0,0)=="move"){ - QPoint diff = grid - posToGrid(geom.center()); //difference in grid coords - //qDebug() << "Move Event:" << "Diff:" << diff << "Geom:" << geom << grid << ev->pos(); - geom = geomToGrid(geom); //convert to grid coords - //qDebug() << "Move Event:" << "Old geom (grid):" << geom; - geom.moveTo( (geom.topLeft()+diff) ); - //qDebug() << " - After Move:" << geom; - bool valid = ValidGrid(geom); - if(valid){ - //Convert to pixel coordinates and check validity again - geom = gridToGeom(geom); //convert back to px coords with edge matching - valid = ValidGeometry(act.section("::::",1,50), geom); - } - if(valid){ - MovePlugin(item, geom); - //item->setGeometry(geom); - //item->setFixedSize(geom.size()); //needed due to resizing limitations and such for some plugins - ev->acceptProposedAction(); - //item->savePluginGeometry(geom); //save in pixel coords - }else{ ev->ignore(); } //invalid location - - }else{ - //Resize operation - QPoint diff = ev->pos() - (geom.center()-QPoint(1,1)); //need difference from center (pixels) - //Note: Use the 1x1 pixel offset to ensure that the center point is not exactly on a grid point intersection (2x2, 4x4, etc) - //qDebug() << "Resize Plugin:" << geom << grid << posToGrid(geom.center()) << diff; - geom = geomToGrid(geom); //convert to grid coordinates now - //qDebug() << " - Grid Geom:" << geom; - if(diff.x()<0){ geom.setLeft(ev->pos().x()/GRIDSIZE); } //expanding to the left (round down) - else if(diff.x()>0){ geom.setRight( ev->pos().x()/GRIDSIZE); } //expanding to the right (round down) - if(diff.y()<0){ geom.setTop( ev->pos().y()/GRIDSIZE); } //expanding above (round down) - else if(diff.y()>0){ geom.setBottom( ev->pos().y()/GRIDSIZE); } //expanding below (round down) - //qDebug() << " - Adjusted:" << geom; - bool valid = ValidGrid(geom); - if(valid){ - //Convert to pixel coordinates and check validity again - geom = gridToGeom(geom); //convert back to px coords with edge matching - valid = ValidGeometry(act.section("::::",1,50), geom); - } - if(valid){ - MovePlugin(item, geom); - //item->setGeometry(geom); - //item->setFixedSize(geom.size()); //needed due to resizing limitations and such for some plugins - ev->acceptProposedAction(); - //item->savePluginGeometry(geom); //save in pixel coords - }else{ ev->ignore(); } //invalid location - } - } - }else if(ev->mimeData()->hasUrls()){ - ev->acceptProposedAction(); //allow this to be dropped here - }else{ - ev->ignore(); - } - } - - void dropEvent(QDropEvent *ev){ - //QPoint grid = posToGrid(ev->pos()); - if(ev->mimeData()->hasFormat(MIMETYPE)){ - //Desktop Items getting moved around - already performed in the dragMoveEvent - ev->accept(); - }else if(ev->mimeData()->hasUrls()){ - ev->accept(); - //Files getting dropped here - QList<QUrl> urls = ev->mimeData()->urls(); - qDebug() << "Desktop Drop Event:" << urls; - for(int i=0; i<urls.length(); i++){ - //If this file is not in the desktop folder, move/copy it here - if(urls[i].isLocalFile()){ - QFileInfo info(urls[i].toLocalFile()); - if(info.exists() && !QFile::exists(QDir::homePath()+"/Desktop/"+info.fileName())){ - //Make a link to the file here - QFile::link(info.absoluteFilePath(), QDir::homePath()+"/Desktop/"+info.fileName()); - }else{ - qWarning() << "Invalid desktop file drop (ignored):" << urls[i].toString(); - } - } - - } - }else{ - //Ignore this event - ev->ignore(); - } - } - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LPanel.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/LPanel.cpp deleted file mode 100644 index 5df1fcb6..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LPanel.cpp +++ /dev/null @@ -1,399 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LPanel.h" -#include "LSession.h" -#include <QScreen> - -#include "panel-plugins/systemtray/LSysTray.h" - -#define DEBUG 0 - -LPanel::LPanel(QSettings *file, QString scr, int num, QWidget *parent) : QWidget(){ - //Take care of inputs - this->setMouseTracking(true); - hascompositer = false; //LUtils::isValidBinary("xcompmgr"); //NOT WORKING YET - xcompmgr issue with special window flags? - if(DEBUG){ qDebug() << " - Creating Panel:" << scr << num; } - bgWindow = parent; //save for later - //Setup the widget overlay for the entire panel to provide transparency effects - panelArea = new QWidget(this); - //panelArea->setAttribute(Qt::WA_TranslucentBackground); - QBoxLayout *tmp = new QBoxLayout(QBoxLayout::LeftToRight); - tmp->setContentsMargins(0,0,0,0); - this->setLayout(tmp); - tmp->addWidget(panelArea); - settings = file; - screenID = scr; - panelnum = num; //save for later - screen = LSession::desktop(); - QString screenID = QApplication::screens().at(Screen())->name(); - PPREFIX = "panel_"+screenID+"."+QString::number(num)+"/"; - defaultpanel = (LSession::handle()->screenGeom(Screen()).x()==0 && num==0); - horizontal=true; //use this by default initially - hidden = false; //use this by default - //Setup the panel - if(DEBUG){ qDebug() << " -- Setup Panel"; } - this->setContentsMargins(0,0,0,0); - this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - //panels cannot get keyboard focus otherwise it upsets the task manager window detection - //this->setAttribute(Qt::WA_X11DoNotAcceptFocus); - this->setAttribute(Qt::WA_X11NetWmWindowTypeDock); - this->setAttribute(Qt::WA_AlwaysShowToolTips); - this->setAttribute(Qt::WA_TranslucentBackground); - //this->setAttribute(Qt::WA_NoSystemBackground); - this->setAutoFillBackground(false); - this->setWindowFlags(Qt::FramelessWindowHint | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint); - //this->setWindowFlags(Qt::X11BypassWindowManagerHint | Qt::WindowStaysOnTopHint); - - this->setWindowTitle("LuminaPanel"); - this->setObjectName("LuminaPanelBackgroundWidget"); - this->setStyleSheet("QToolButton::menu-indicator{ image: none; } QWidget#LuminaPanelBackgroundWidget{ background: transparent; }"); - panelArea->setObjectName("LuminaPanelColor"); - layout = new QBoxLayout(QBoxLayout::LeftToRight); - layout->setContentsMargins(0,0,0,0); - layout->setSpacing(1); - //layout->setSizeConstraint(QLayout::SetFixedSize); - panelArea->setLayout(layout); - //Set special window flags on the panel for proper usage - this->show(); - LSession::handle()->XCB->SetAsPanel(this->winId()); - LSession::handle()->XCB->SetAsSticky(this->winId()); - if(hascompositer){ - //qDebug() << "Enable Panel compositing"; - //this->setStyleSheet("QWidget#LuminaPanelBackgroundWidget{ background: transparent; }"); - //this->setWindowOpacity(0.5); //fully transparent background for the main widget - //panelArea->setWindowOpacity(1.0); //fully opaque for the widget on top (apply stylesheet transparencies) - } - QTimer::singleShot(1,this, SLOT(UpdatePanel()) ); - //connect(screen, SIGNAL(resized(int)), this, SLOT(UpdatePanel()) ); //in case the screen resolution changes -} - -LPanel::~LPanel(){ - -} - -int LPanel::Screen(){ - // Find the screen number associated with this ID - QList<QScreen*> scrns = QApplication::screens(); - for(int i=0; i<scrns.length(); i++){ - if(scrns[i]->name() == screenID){ return i; } - } - return -1; -} - -void LPanel::prepareToClose(){ - //Go through and remove all the plugins - for(int i=0; i<PLUGINS.length(); i++){ - PLUGINS[i]->AboutToClose(); //any last cleanup for this plugin - layout->takeAt(i); //remove from the layout - PLUGINS.takeAt(i)->deleteLater(); //delete the actual widget - LSession::processEvents(); - i--; //need to back up one space to not miss another plugin - } - this->hide(); -} - -void LPanel::scalePanel(double xscale, double yscale){ - int ht = settings->value(PPREFIX+"height", 30).toInt(); //this is technically the distance into the screen from the edge - QString loc = settings->value(PPREFIX+"location","").toString().toLower(); - if(loc=="top" || loc=="bottom"){ - ht = qRound(ht*yscale); - }else{ - ht = qRound(ht*xscale); - } - settings->setValue(PPREFIX+"height", ht); - settings->sync(); - QTimer::singleShot(0, this, SLOT(UpdatePanel()) ); -} - -//=========== -// PUBLIC SLOTS -//=========== -void LPanel::UpdatePanel(bool geomonly){ - //Create/Update the panel as designated in the Settings file - settings->sync(); //make sure to catch external settings changes - //First set the geometry of the panel and send the EWMH message to reserve that space - if(DEBUG){ qDebug() << "Update Panel: Geometry only=" << geomonly << "Screen Size:" << LSession::handle()->screenGeom(Screen()); } - hidden = settings->value(PPREFIX+"hidepanel",false).toBool(); - QString loc = settings->value(PPREFIX+"location","").toString().toLower(); - if(loc.isEmpty() && defaultpanel){ loc="top"; } - if(loc=="top" || loc=="bottom"){ - horizontal=true; - layout->setAlignment(Qt::AlignLeft); - layout->setDirection(QBoxLayout::LeftToRight); - }else{ - horizontal=false; - layout->setAlignment(Qt::AlignTop); - layout->setDirection(QBoxLayout::TopToBottom); - } - int ht = qRound(settings->value(PPREFIX+"height", 30).toDouble()); //this is technically the distance into the screen from the edge - fullwidth = ht; //save this for later - if(ht<=1){ ht = 30; } //some kind of error in the saved height - use the default value - int hidesize = qRound(ht*0.01); //use 1% of the panel size - if(hidesize<2){ hidesize=2; } //minimum of 2 pixels (need space for the mouse to go over it) - if(hidden){ viswidth = hidesize; } - else{ viswidth = ht; } - if(DEBUG){ qDebug() << "Hidden Panel size:" << hidesize << "pixels"; } - //qDebug() << " - set Geometry"; - int xwid = LSession::handle()->screenGeom(Screen()).width(); - int xhi = LSession::handle()->screenGeom(Screen()).height(); - int xloc = LSession::handle()->screenGeom(Screen()).x(); - int yloc = LSession::handle()->screenGeom(Screen()).y(); - double panelPercent = settings->value(PPREFIX+"lengthPercent",100).toInt(); - if(panelPercent<1 || panelPercent>100){ panelPercent = 100; } - panelPercent = panelPercent/100.0; - QString panelPinLoc = settings->value(PPREFIX+"pinLocation","center").toString().toLower(); //[left/right/center] possible values (assume center otherwise) - if(DEBUG){ qDebug() << " - Panel settings:" << QString::number(panelPercent)+QString("%") << panelPinLoc << loc; } - //xloc=xoffset; - if(loc=="top"){ //top of screen - QSize sz = QSize(xwid*panelPercent, ht); - if(panelPinLoc=="left"){} // no change to xloc - else if(panelPinLoc=="right"){ xloc = xloc+xwid-sz.width(); } - else{ xloc = xloc+((xwid-sz.width())/2) ; } //centered - //qDebug() << " - Panel Sizing:" << xloc << sz; - this->setMinimumSize(sz); - this->setMaximumSize(sz); - this->setGeometry(xloc,yloc,sz.width(), sz.height()); - //qDebug() << " - Reserve Panel Localation"; - if(!hidden){ LSession::handle()->XCB->ReserveLocation(this->winId(), this->geometry(), "top"); } - else{ - LSession::handle()->XCB->ReserveLocation(this->winId(), QRect(xloc, yloc, this->width(), hidesize), "top"); - hidepoint = QPoint(xloc, yloc); - showpoint = QPoint(xloc, yloc); - this->move(hidepoint); - this->resize( this->width(), viswidth); - } - }else if(loc=="bottom"){ //bottom of screen - QSize sz = QSize(xwid*panelPercent, ht); - if(panelPinLoc=="left"){} // no change to xloc - else if(panelPinLoc=="right"){ xloc = xloc+xwid-sz.width(); } - else{ xloc = xloc+((xwid-sz.width())/2) ; } //centered - this->setMinimumSize(sz); - this->setMaximumSize(sz); - this->setGeometry(xloc,yloc+xhi-ht,sz.width(), ht ); - if(!hidden){ LSession::handle()->XCB->ReserveLocation(this->winId(), this->geometry(), "bottom"); } - else{ - LSession::handle()->XCB->ReserveLocation(this->winId(), QRect(xloc,yloc+ xhi-hidesize, this->width(), hidesize), "bottom"); - hidepoint = QPoint(xloc, yloc+xhi-hidesize); - showpoint = QPoint(xloc, yloc+xhi-ht); - this->move(hidepoint); //Could bleed over onto the screen below - this->resize( this->width(), viswidth); - } - }else if(loc=="left"){ //left side of screen - QSize sz = QSize(ht, xhi*panelPercent); - if(panelPinLoc=="left"){} //this is actually the top (left of center in length dimension) - else if(panelPinLoc=="right"){ yloc = yloc+xhi-sz.height(); } - else{ yloc = yloc+((xhi-sz.height())/2) ; } //centered - this->setMinimumSize(sz); - this->setMaximumSize(sz); - this->setGeometry(xloc,yloc, ht, sz.height()); - if(!hidden){ LSession::handle()->XCB->ReserveLocation(this->winId(), this->geometry(), "left"); } - else{ - LSession::handle()->XCB->ReserveLocation(this->winId(), QRect(xloc, yloc, hidesize, sz.height()), "left"); - hidepoint = QPoint(xloc, yloc); - showpoint = QPoint(xloc, yloc); - this->move(hidepoint); //Could bleed over onto the screen left - this->resize( viswidth, this->height()); - } - }else{ //right side of screen - QSize sz = QSize(ht, xhi*panelPercent); - if(panelPinLoc=="left"){} //this is actually the top (left of center in length dimension) - else if(panelPinLoc=="right"){ yloc = yloc+xhi-sz.height(); } - else{ yloc = yloc+((xhi-sz.height())/2) ; } //centered - this->setMinimumSize(sz); - this->setMaximumSize(sz); - this->setGeometry(xloc+xwid-ht,yloc,ht, sz.height()); - if(!hidden){ LSession::handle()->XCB->ReserveLocation(this->winId(), this->geometry(), "right"); } - else{ - LSession::handle()->XCB->ReserveLocation(this->winId(), QRect(xloc+xwid-hidesize, yloc, hidesize, sz.height()), "right"); - hidepoint = QPoint(xloc+xwid-hidesize, yloc); - showpoint = QPoint(xloc+xwid-ht, yloc); - this->move(hidepoint); //Could bleed over onto the screen right - this->resize( viswidth, this->height()); - } - } - if(DEBUG){ qDebug() << " - Done with panel geometry"; } - //Double check that the "sticky" bit is set on the window state - bool needsticky = !LSession::handle()->XCB->WM_Get_Window_States(this->winId()).contains(LXCB::S_STICKY); - if(needsticky){ LSession::handle()->XCB->SetAsSticky(this->winId()); } - if(geomonly){ return; } - //Now update the appearance of the toolbar - if(settings->value(PPREFIX+"customColor", false).toBool()){ - QString color = settings->value(PPREFIX+"color", "rgba(255,255,255,160)").toString(); - QString style = "QWidget#LuminaPanelColor{ background: %1; border-radius: 3px; border: 1px solid %1; }"; - style = style.arg(color); - panelArea->setStyleSheet(style); - }else{ - panelArea->setStyleSheet(""); //clear it and use the one from the theme - } - - //Then go through the plugins and create them as necessary - QStringList plugins = settings->value(PPREFIX+"pluginlist", QStringList()).toStringList(); - /*if(defaultpanel && plugins.isEmpty()){ - plugins << "userbutton" << "taskmanager" << "spacer" << "systemtray" << "clock" << "systemdashboard"; - }*/ - if(DEBUG){ qDebug() << " - Initialize Plugins: " << plugins; } - for(int i=0; i<plugins.length(); i++){ - //Ensure this plugin has a unique ID (NOTE: this numbering does not persist between sessions) - if(!plugins[i].contains("---")){ - int num=1; - while( plugins.contains(plugins[i]+"---"+QString::number(Screen())+"."+QString::number(this->number())+"."+QString::number(num)) ){ - num++; - } - - plugins[i] = plugins[i]+"---"+QString::number(Screen())+"."+QString::number(this->number())+"."+QString::number(num); - //qDebug() << "Adjust Plugin ID:" << plugins[i]; - } - //See if this plugin is already there or in a different spot - bool found = false; - for(int p=0; p<PLUGINS.length(); p++){ - if(PLUGINS[p]->type()==plugins[i]){ - found = true; //already exists - //Make sure the plugin layout has the correct orientation - if(horizontal){PLUGINS[p]->layout()->setDirection(QBoxLayout::LeftToRight); } - else{ PLUGINS[p]->layout()->setDirection(QBoxLayout::TopToBottom); } - PLUGINS[p]->OrientationChange(); - //Now check the location of the plugin in the panel - if(p!=i){ //wrong place in the panel - layout->takeAt(p); //remove the item from the current location - layout->insertWidget(i, PLUGINS[p]); //add the item into the correct location - PLUGINS.move(p,i); //move the identifier in the list to match - } - break; - } - } - if(!found){ - //New Plugin - if(DEBUG){ qDebug() << " -- New Plugin:" << plugins[i] << i; } - LPPlugin *plug = NewPP::createPlugin(plugins[i], panelArea, horizontal); - if(plug != 0){ - PLUGINS.insert(i, plug); - layout->insertWidget(i, PLUGINS[i]); - connect(plug, SIGNAL(MenuClosed()), this, SLOT(checkPanelFocus())); - }else{ - //invalid plugin type - plugins.removeAt(i); //remove this invalid plugin from the list - i--; //make sure we don't miss the next item with the re-order - } - } - //LSession::processEvents(); - } - //Now remove any extra plugins from the end - //qDebug() << "plugins:" << plugins; - //qDebug() << "PLUGINS length:" << PLUGINS.length(); - for(int i=0; i<PLUGINS.length(); i++){ - if(plugins.contains(PLUGINS[i]->type())){ continue; } //good plugin - skip it - if(DEBUG){ qDebug() << " -- Remove Plugin: " << PLUGINS[i]->type(); } - //If this is the system tray - stop it first - if( PLUGINS[i]->type().startsWith("systemtray---") ){ - static_cast<LSysTray*>(PLUGINS[i])->stop(); - } - layout->takeAt(i); //remove from the layout - PLUGINS.takeAt(i)->deleteLater(); //delete the actual widget - //LSession::processEvents(); - i--; //need to back up one space to not miss another plugin - } - this->update(); - this->show(); //make sure the panel is visible now - if(hidden){ this->move(hidepoint); } - //Now go through and send the orientation update signal to each plugin - for(int i=0; i<PLUGINS.length(); i++){ - QTimer::singleShot(0,PLUGINS[i], SLOT(OrientationChange())); - } - checkPanelFocus(); - //LSession::processEvents(); -} - -void LPanel::UpdateLocale(){ - //The panel itself has no text to translate, just forward the signal to all the plugins - for(int i=0; i<PLUGINS.length(); i++){ - QTimer::singleShot(1,PLUGINS[i], SLOT(LocaleChange())); - } -} - -void LPanel::UpdateTheme(){ - //The panel itself has no theme-based icons, just forward the signal to all the plugins - for(int i=0; i<PLUGINS.length(); i++){ - QTimer::singleShot(1,PLUGINS[i], SLOT(ThemeChange())); - } -} - -// =================== -// PRIVATE SLOTS -// =================== -void LPanel::checkPanelFocus(){ - qDebug() << "Check Panel Focus:" << panelnum << viswidth << fullwidth << this->size(); - if( !this->geometry().contains(QCursor::pos()) ){ - //Move the panel back to it's "hiding" spot - if(hidden){ - QSize sz(horizontal ? this->width() : viswidth, horizontal ? viswidth : this->height() ); - this->setMinimumSize(sz); - this->setMaximumSize(sz); - this->setGeometry( QRect(hidepoint, sz) ); - } - //Re-active the old window - if(LSession::handle()->activeWindow()!=0){ - LSession::handle()->XCB->ActivateWindow(LSession::handle()->activeWindow()); - } - }else if(hidden){ - QSize sz(horizontal ? this->width() : fullwidth, horizontal ? fullwidth : this->height() ); - this->setMinimumSize(sz); - this->setMaximumSize(sz); - this->setGeometry( QRect(showpoint, sz) ); - } -} - -//=========== -// PROTECTED -//=========== -void LPanel::resizeEvent(QResizeEvent *event){ - QWidget::resizeEvent(event); - for(int i=0; i<PLUGINS.length(); i++){ PLUGINS[i]->OrientationChange(); } -} - -void LPanel::paintEvent(QPaintEvent *event){ - if(!hascompositer){ - QPainter *painter = new QPainter(this); - //qDebug() << "Paint Panel:" << PPREFIX; - //Make sure the base background of the event rectangle is the associated rectangle from the BGWindow - QRect rec = event->rect();//this->geometry(); //start with the global geometry of the panel - rec.adjust(-1,-1,2,2); //add 1 more pixel on each side - //Need to translate that rectangle to the background image coordinates - //qDebug() << " - Rec:" << rec << hidden << this->geometry() << bgWindow->geometry(); - rec.moveTo( bgWindow->mapFromGlobal( this->mapToGlobal(rec.topLeft()) ) ); //(rec.x()-LSession::handle()->screenGeom(Screen()).x(), rec.y()-LSession::handle()->screenGeom(Screen()).y() ); - //qDebug() << " - Adjusted Window Rec:" << rec; - painter->drawPixmap(event->rect().adjusted(-1,-1,2,2), bgWindow->grab(rec)); - //painter->drawPixmap(event->rect().adjusted(-1,-1,2,2), QApplication::screens().at(Screen())->grabWindow(QX11Info::appRootWindow(), rec.x(), rec.y(), rec.width(), rec.height()) ); - delete(painter); - } - QWidget::paintEvent(event); //now pass the event along to the normal painting event -} - -void LPanel::enterEvent(QEvent *event){ - //qDebug() << "Panel Enter Event:"; - checkPanelFocus(); - /*if(hidden){ - //Move the panel out so it is fully available - this->move(showpoint); - this->resize( horizontal ? this->width() : fullwidth, horizontal ? fullwidth : this->height() ); - this->update(); - }*/ - //this->activateWindow(); - event->accept(); //just to quiet the compile warning -} - -void LPanel::leaveEvent(QEvent *event){ - /*qDebug() << "Panel Leave Event:"; - qDebug() << "Panel Geom:" << this->geometry().x() << this->geometry().y() << this->geometry().width() << this->geometry().height() ; - QPoint pt = QCursor::pos(); - qDebug() << "Mouse Point (global):" << pt.x() << pt.y(); - //pt = this->mapFromGlobal(pt); - //qDebug() << "Mouse Point (local):" << pt.x() << pt.y(); - qDebug() << "Contained:" << this->geometry().contains(pt);*/ - checkPanelFocus(); - QWidget::leaveEvent(event); - //event->accept(); //just to quiet the compile warning -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LPanel.h b/src-qt5/core/lumina-desktop-unified/src-DE/LPanel.h deleted file mode 100644 index bcea8eaf..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LPanel.h +++ /dev/null @@ -1,81 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is the generic class for creating a full-width panel that stays -// on top of all other windows (top or bottom of the screen only) -//=========================================== -#ifndef _LUMINA_DESKTOP_PANEL_H -#define _LUMINA_DESKTOP_PANEL_H - -#include <QWidget> -#include <QBoxLayout> -#include <QSettings> -#include <QString> -#include <QStringList> -#include <QTimer> -#include <QMoveEvent> -#include <QDesktopWidget> -#include <QPainter> -#include <QPaintEvent> - -#include "panel-plugins/NewPP.h" -#include "panel-plugins/LPPlugin.h" - -#include <LuminaX11.h> -#include <LuminaOS.h> - -class LPanel : public QWidget{ - Q_OBJECT -private: - QBoxLayout *layout; - QSettings *settings; - QString PPREFIX; //internal prefix for all settings - QDesktopWidget *screen; - QWidget *bgWindow, *panelArea; - //QRect hidegeom, showgeom; //for hidden panels - QPoint hidepoint, showpoint; //for hidden panels: locations when hidden/visible - bool defaultpanel, horizontal, hidden, hascompositer; - QString screenID; - int panelnum; - int viswidth, fullwidth; - QList<LPPlugin*> PLUGINS; - - int Screen(); //Turn the screenID into the appropriate number - -public: - LPanel(QSettings *file, QString scr = 0, int num =0, QWidget *parent=0); //settings file, screen number, panel number - ~LPanel(); - - int number(){ - return panelnum; - } - - QString prefix(){ - return PPREFIX; - } - - int visibleWidth(){ - return viswidth; - } - void prepareToClose(); - void scalePanel(double xscale, double yscale); - -public slots: - void UpdatePanel(bool geomonly = false); //Load the settings file and update the panel appropriately - void UpdateLocale(); //Locale Changed externally - void UpdateTheme(); //Theme Changed externally - -private slots: - void checkPanelFocus(); - -protected: - void resizeEvent(QResizeEvent *event); - void paintEvent(QPaintEvent *event); - void enterEvent(QEvent *event); - void leaveEvent(QEvent *event); -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LSession.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/LSession.cpp deleted file mode 100644 index 0387555a..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LSession.cpp +++ /dev/null @@ -1,798 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LSession.h" -#include <LuminaOS.h> - -#include <QTime> -#include <QScreen> -#include <QtConcurrent> -#include "LXcbEventFilter.h" -#include "BootSplash.h" - -//LibLumina X11 class -#include <LuminaX11.h> -#include <LUtils.h> - -#include <unistd.h> //for usleep() usage - -#ifndef DEBUG -#define DEBUG 0 -#endif - -XCBEventFilter *evFilter = 0; - -LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lumina-desktop"){ - if(this->isPrimaryProcess()){ - connect(this, SIGNAL(InputsAvailable(QStringList)), this, SLOT(NewCommunication(QStringList)) ); - this->setApplicationName("Lumina Desktop Environment"); - this->setApplicationVersion( LDesktopUtils::LuminaDesktopVersion() ); - this->setOrganizationName("LuminaDesktopEnvironment"); - this->setQuitOnLastWindowClosed(false); //since the LDesktop's are not necessarily "window"s - //Enabled a few of the simple effects by default - this->setEffectEnabled( Qt::UI_AnimateMenu, true); - this->setEffectEnabled( Qt::UI_AnimateCombo, true); - this->setEffectEnabled( Qt::UI_AnimateTooltip, true); - //this->setAttribute(Qt::AA_UseDesktopOpenGL); - //this->setAttribute(Qt::AA_UseHighDpiPixmaps); //allow pixmaps to be scaled up as well as down - //this->setStyle( new MenuProxyStyle); //QMenu icon size override - SystemTrayID = 0; VisualTrayID = 0; - sysWindow = 0; - TrayDmgEvent = 0; - TrayDmgError = 0; - lastActiveWin = 0; - cleansession = true; - TrayStopping = false; - screenTimer = new QTimer(this); - screenTimer->setSingleShot(true); - screenTimer->setInterval(50); - connect(screenTimer, SIGNAL(timeout()), this, SLOT(updateDesktops()) ); - for(int i=1; i<argc; i++){ - if( QString::fromLocal8Bit(argv[i]) == "--noclean" ){ cleansession = false; break; } - } - XCB = new LXCB(); //need access to XCB data/functions right away - //initialize the empty internal pointers to 0 - appmenu = 0; - settingsmenu = 0; - currTranslator=0; - mediaObj=0; - sessionsettings=0; - //Setup the event filter for Qt5 - evFilter = new XCBEventFilter(this); - this->installNativeEventFilter( evFilter ); - connect(this, SIGNAL(screenAdded(QScreen*)), this, SLOT(screensChanged()) ); - connect(this, SIGNAL(screenRemoved(QScreen*)), this, SLOT(screensChanged()) ); - connect(this, SIGNAL(primaryScreenChanged(QScreen*)), this, SLOT(screensChanged()) ); - } //end check for primary process -} - -LSession::~LSession(){ - if(this->isPrimaryProcess()){ - //WM->stopWM(); - for(int i=0; i<DESKTOPS.length(); i++){ - DESKTOPS[i]->deleteLater(); - } - //delete WM; - settingsmenu->deleteLater(); - appmenu->deleteLater(); - delete currTranslator; - if(mediaObj!=0){delete mediaObj;} - } -} - -void LSession::setupSession(){ - //Seed random number generator (if needed) - qsrand( QTime::currentTime().msec() ); - - BootSplash splash; - splash.showScreen("init"); - qDebug() << "Initializing Session"; - if(QFile::exists("/tmp/.luminastopping")){ QFile::remove("/tmp/.luminastopping"); } - QTime* timer = 0; - //if(DEBUG){ timer = new QTime(); timer->start(); qDebug() << " - Init srand:" << timer->elapsed();} - - //Setup the QSettings default paths - splash.showScreen("settings"); - if(DEBUG){ qDebug() << " - Init QSettings:" << timer->elapsed();} - sessionsettings = new QSettings("lumina-desktop", "sessionsettings"); - DPlugSettings = new QSettings("lumina-desktop","pluginsettings/desktopsettings"); - //Load the proper translation files - if(sessionsettings->value("ForceInitialLocale",false).toBool()){ - //Some system locale override it in place - change the env first - LUtils::setLocaleEnv( sessionsettings->value("InitLocale/LANG","").toString(), \ - sessionsettings->value("InitLocale/LC_MESSAGES","").toString(), \ - sessionsettings->value("InitLocale/LC_TIME","").toString(), \ - sessionsettings->value("InitLocale/LC_NUMERIC","").toString(), \ - sessionsettings->value("InitLocale/LC_MONETARY","").toString(), \ - sessionsettings->value("InitLocale/LC_COLLATE","").toString(), \ - sessionsettings->value("InitLocale/LC_CTYPE","").toString() ); - } - currTranslator = LUtils::LoadTranslation(this, "lumina-desktop"); -//use the system settings - //Setup the user's lumina settings directory as necessary - splash.showScreen("user"); - if(DEBUG){ qDebug() << " - Init User Files:" << timer->elapsed();} - checkUserFiles(); //adds these files to the watcher as well - - //Initialize the internal variables - DESKTOPS.clear(); - - //Start the background system tray - splash.showScreen("systray"); - if(DEBUG){ qDebug() << " - Init System Tray:" << timer->elapsed();} - startSystemTray(); - - //Initialize the global menus - qDebug() << " - Initialize system menus"; - splash.showScreen("apps"); - if(DEBUG){ qDebug() << " - Init AppMenu:" << timer->elapsed();} - appmenu = new AppMenu(); - - splash.showScreen("menus"); - if(DEBUG){ qDebug() << " - Init SettingsMenu:" << timer->elapsed();} - settingsmenu = new SettingsMenu(); - if(DEBUG){ qDebug() << " - Init SystemWindow:" << timer->elapsed();} - sysWindow = new SystemWindow(); - - //Initialize the desktops - splash.showScreen("desktop"); - if(DEBUG){ qDebug() << " - Init Desktops:" << timer->elapsed();} - desktopFiles = QDir(QDir::homePath()+"/Desktop").entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs, QDir::Name | QDir::IgnoreCase | QDir::DirsFirst); - updateDesktops(); - for(int i=0; i<6; i++){ LSession::processEvents(); } //Run through this a few times so the interface systems get up and running - - //Now setup the system watcher for changes - splash.showScreen("final"); - qDebug() << " - Initialize file system watcher"; - if(DEBUG){ qDebug() << " - Init QFileSystemWatcher:" << timer->elapsed();} - watcher = new QFileSystemWatcher(this); - QString confdir = sessionsettings->fileName().section("/",0,-2); - watcherChange(sessionsettings->fileName() ); - watcherChange( confdir+"/desktopsettings.conf" ); - watcherChange( confdir+"/fluxbox-init" ); - watcherChange( confdir+"/fluxbox-keys" ); - watcherChange( confdir+"/favorites.list" ); - //Try to watch the localized desktop folder too - if(QFile::exists(QDir::homePath()+"/"+tr("Desktop"))){ watcherChange( QDir::homePath()+"/"+tr("Desktop") ); } - watcherChange( QDir::homePath()+"/Desktop" ); - - //connect internal signals/slots - connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(watcherChange(QString)) ); - connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(watcherChange(QString)) ); - connect(this, SIGNAL(aboutToQuit()), this, SLOT(SessionEnding()) ); - if(DEBUG){ qDebug() << " - Init Finished:" << timer->elapsed(); delete timer;} - for(int i=0; i<4; i++){ LSession::processEvents(); } //Again, just a few event loops here so thing can settle before we close the splash screen - //launchStartupApps(); - QTimer::singleShot(500, this, SLOT(launchStartupApps()) ); - splash.hide(); - LSession::processEvents(); - splash.close(); - LSession::processEvents(); -} - -void LSession::CleanupSession(){ - //Close any running applications and tray utilities (Make sure to keep the UI interactive) - LSession::processEvents(); - QDateTime time = QDateTime::currentDateTime(); - qDebug() << "Start closing down the session: " << time.toString( Qt::SystemLocaleShortDate); - //Create a temporary flag to prevent crash dialogs from opening during cleanup - LUtils::writeFile("/tmp/.luminastopping",QStringList() << "yes", true); - //Start the logout chimes (if necessary) - LOS::setAudioVolume( LOS::audioVolume() ); //make sure the audio volume is saved in the backend for the next login - bool playaudio = sessionsettings->value("PlayLogoutAudio",true).toBool(); - if( playaudio ){ playAudioFile(LOS::LuminaShare()+"Logout.ogg"); } - //Stop the background system tray (detaching/closing apps as necessary) - stopSystemTray(!cleansession); - //Now perform any other cleanup - if(cleansession){ - //Close any open windows - //qDebug() << " - Closing any open windows"; - QList<WId> WL = XCB->WindowList(true); - for(int i=0; i<WL.length(); i++){ - qDebug() << " - Closing window:" << XCB->WindowClass(WL[i]) << WL[i]; - XCB->CloseWindow(WL[i]); - LSession::processEvents(); - } - //Now wait a moment for things to close down before quitting - for(int i=0; i<20; i++){ LSession::processEvents(); usleep(25); } //1/2 second pause - //Kill any remaining windows - WL = XCB->WindowList(true); //all workspaces - for(int i=0; i<WL.length(); i++){ - qDebug() << " - Window did not close, killing application:" << XCB->WindowClass(WL[i]) << WL[i]; - XCB->KillClient(WL[i]); - LSession::processEvents(); - } - } - evFilter->StopEventHandling(); - //Stop the window manager - //qDebug() << " - Stopping the window manager"; - //WM->stopWM(); - //Now close down the desktop - qDebug() << " - Closing down the desktop elements"; - for(int i=0; i<DESKTOPS.length(); i++){ - DESKTOPS[i]->prepareToClose(); - //don't actually close them yet - that will happen when the session exits - // this will leave the wallpapers up for a few moments (preventing black screens) - } - //Now wait a moment for things to close down before quitting - if(playaudio){ - //wait a max of 5 seconds for audio to finish - bool waitmore = true; - for(int i=0; i<100 && waitmore; i++){ - usleep(50000); //50ms = 50000 us - waitmore = (mediaObj->state()==QMediaPlayer::PlayingState); - LSession::processEvents(); - } - if(waitmore){ mediaObj->stop(); } //timed out - }else{ - for(int i=0; i<20; i++){ LSession::processEvents(); usleep(25000); } //1/2 second pause - } - //Clean up the temporary flag - if(QFile::exists("/tmp/.luminastopping")){ QFile::remove("/tmp/.luminastopping"); } -} - -int LSession::VersionStringToNumber(QString version){ - version = version.section("-",0,0); //trim any extra labels off the end - int maj, mid, min; //major/middle/minor version numbers (<Major>.<Middle>.<Minor>) - maj = mid = min = 0; - bool ok = true; - maj = version.section(".",0,0).toInt(&ok); - if(ok){ mid = version.section(".",1,1).toInt(&ok); }else{ maj = 0; } - if(ok){ min = version.section(".",2,2).toInt(&ok); }else{ mid = 0; } - if(!ok){ min = 0; } - //Now assemble the number - //NOTE: This format allows numbers to be anywhere from 0->999 without conflict - return (maj*1000000 + mid*1000 + min); -} - -void LSession::NewCommunication(QStringList list){ - if(DEBUG){ qDebug() << "New Communications:" << list; } - for(int i=0; i<list.length(); i++){ - if(list[i]=="--check-geoms"){ - screensChanged(); - }else if(list[i]=="--show-start"){ - emit StartButtonActivated(); - } - } -} - -void LSession::launchStartupApps(){ - //First start any system-defined startups, then do user defined - qDebug() << "Launching startup applications"; - - //Enable Numlock - if(LUtils::isValidBinary("numlockx")){ //make sure numlockx is installed - if(sessionsettings->value("EnableNumlock",false).toBool()){ - QProcess::startDetached("numlockx on"); - }else{ - QProcess::startDetached("numlockx off"); - } - } - int tmp = LOS::ScreenBrightness(); - if(tmp>0){ - LOS::setScreenBrightness( tmp ); - qDebug() << " - - Screen Brightness:" << QString::number(tmp)+"%"; - } - QProcess::startDetached("nice lumina-open -autostart-apps"); - - //Re-load the screen brightness and volume settings from the previous session - // Wait until after the XDG-autostart functions, since the audio system might be started that way - qDebug() << " - Loading previous settings"; - tmp = LOS::audioVolume(); - LOS::setAudioVolume(tmp); - qDebug() << " - - Audio Volume:" << QString::number(tmp)+"%"; - - //Now play the login music since we are finished - if(sessionsettings->value("PlayStartupAudio",true).toBool()){ - //Make sure to re-set the system volume to the last-used value at outset - int vol = LOS::audioVolume(); - if(vol>=0){ LOS::setAudioVolume(vol); } - LSession::playAudioFile(LOS::LuminaShare()+"Login.ogg"); - } - qDebug() << " - Finished with startup routines"; -} - -void LSession::StartLogout(){ - CleanupSession(); - QCoreApplication::exit(0); -} - -void LSession::StartShutdown(bool skipupdates){ - CleanupSession(); - LOS::systemShutdown(skipupdates); - QCoreApplication::exit(0); -} - -void LSession::StartReboot(bool skipupdates){ - CleanupSession(); - LOS::systemRestart(skipupdates); - QCoreApplication::exit(0); -} - -void LSession::reloadIconTheme(){ - //Wait a moment for things to settle before sending out the signal to the interfaces - QApplication::processEvents(); - QApplication::processEvents(); - emit IconThemeChanged(); -} - -void LSession::watcherChange(QString changed){ - if(DEBUG){ qDebug() << "Session Watcher Change:" << changed; } - //if(changed.endsWith("fluxbox-init") || changed.endsWith("fluxbox-keys")){ refreshWindowManager(); } - if(changed.endsWith("sessionsettings.conf") ){ - sessionsettings->sync(); - //qDebug() << "Session Settings Changed"; - if(sessionsettings->contains("Qt5_theme_engine")){ - QString engine = sessionsettings->value("Qt5_theme_engine","").toString(); - //qDebug() << "Set Qt5 theme engine: " << engine; - if(engine.isEmpty()){ unsetenv("QT_QPA_PLATFORMTHEME"); } - else{ setenv("QT_QPA_PLATFORMTHEME", engine.toUtf8().data(),1); } - } - emit SessionConfigChanged(); - }else if(changed.endsWith("desktopsettings.conf") ){ emit DesktopConfigChanged(); } - else if(changed == QDir::homePath()+"/Desktop" || changed == QDir::homePath()+"/"+tr("Desktop") ){ - desktopFiles = QDir(changed).entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs ,QDir::Name | QDir::IgnoreCase | QDir::DirsFirst); - if(DEBUG){ qDebug() << "New Desktop Files:" << desktopFiles.length(); } - emit DesktopFilesChanged(); - }else if(changed.endsWith("favorites.list")){ emit FavoritesChanged(); } - //Now ensure this file was not removed from the watcher - if(!watcher->files().contains(changed) && !watcher->directories().contains(changed)){ - if(!QFile::exists(changed)){ - //Create the file really quick to ensure it can be watched - //TODO - } - watcher->addPath(changed); - } -} - -void LSession::screensChanged(){ - qDebug() << "Screen Number Changed"; - if(screenTimer->isActive()){ screenTimer->stop(); } - screenTimer->start(); -} - -void LSession::screenResized(int scrn){ - qDebug() << "Screen Resized:" << scrn; - if(screenTimer->isActive()){ screenTimer->stop(); } - screenTimer->start(); -} - -void LSession::checkWindowGeoms(){ - //Only do one window per run (this will be called once per new window - with time delays between) - if(checkWin.isEmpty()){ return; } - WId win = checkWin.takeFirst(); - if(RunningApps.contains(win) ){ //just to make sure it did not close during the delay - adjustWindowGeom( win ); - } -} - -void LSession::checkUserFiles(){ - //internal version conversion examples: - // [1.0.0 -> 1000000], [1.2.3 -> 1002003], [0.6.1 -> 6001] - QString OVS = sessionsettings->value("DesktopVersion","0").toString(); //Old Version String - bool changed = LDesktopUtils::checkUserFiles(OVS); - if(changed){ - //Save the current version of the session to the settings file (for next time) - sessionsettings->setValue("DesktopVersion", this->applicationVersion()); - } -} - -void LSession::refreshWindowManager(){ - LUtils::runCmd("touch \""+QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/fluxbox-init\"" ); -} - -void LSession::updateDesktops(){ - qDebug() << " - Update Desktops"; - QDesktopWidget *DW = this->desktop(); - int sC = DW->screenCount(); - qDebug() << " Screen Count:" << sC; - qDebug() << " DESKTOPS Length:" << DESKTOPS.length(); - if(sC<1){ return; } //stop here - no screens available temporarily (displayport/4K issue) - - for(int i=0; i<sC; i++){ qDebug() << " -- Screen["+QString::number(i)+"]:" << DW->screenGeometry(i); } - - bool firstrun = (DESKTOPS.length()==0); - bool numchange = DESKTOPS.length()!=sC; - - // If the screen count is changing on us - if ( sC != DW->screenCount() ) { - qDebug() << "Screen Count changed while running"; - return; - } - - //First clean up any current desktops - QList<int> dnums; //keep track of which screens are already managed - QList<QRect> geoms; - for(int i=0; i<DESKTOPS.length(); i++){ - if ( DESKTOPS[i]->Screen() < 0 || DESKTOPS[i]->Screen() >= sC || geoms.contains(DW->screenGeometry(DESKTOPS[i]->Screen())) ) { - //qDebug() << " - Close desktop:" << i; - qDebug() << " - Close desktop on screen:" << DESKTOPS[i]->Screen(); - DESKTOPS[i]->prepareToClose(); - DESKTOPS.takeAt(i)->deleteLater(); - i--; - } else { - //qDebug() << " - Show desktop:" << i; - qDebug() << " - Show desktop on screen:" << DESKTOPS[i]->Screen(); - DESKTOPS[i]->UpdateGeometry(); - DESKTOPS[i]->show(); - dnums << DESKTOPS[i]->Screen(); - geoms << DW->screenGeometry(DESKTOPS[i]->Screen()); - } - } - - //Now add any new desktops - for(int i=0; i<sC; i++){ - if(!dnums.contains(i) && !geoms.contains(DW->screenGeometry(i)) ){ - //Start the desktop on this screen - qDebug() << " - Start desktop on screen:" << i; - DESKTOPS << new LDesktop(i); - geoms << DW->screenGeometry(i); - } - } - - //Make sure fluxbox also gets prompted to re-load screen config if the number of screens changes in the middle of a session - if(numchange && !firstrun) { - qDebug() << "Update WM"; - refreshWindowManager(); - } - - //Make sure all the background windows are registered on the system as virtual roots - QTimer::singleShot(100,this, SLOT(registerDesktopWindows())); -} - -void LSession::registerDesktopWindows(){ - QList<WId> wins; - for(int i=0; i<DESKTOPS.length(); i++){ - wins << DESKTOPS[i]->backgroundID(); - } - XCB->RegisterVirtualRoots(wins); -} - -void LSession::adjustWindowGeom(WId win, bool maximize){ - //return; //temporary disable - if(DEBUG){ qDebug() << "AdjustWindowGeometry():" << win << maximize << XCB->WindowClass(win); } - if(XCB->WindowIsFullscreen(win) >=0 ){ return; } //don't touch it - //Quick hack for making sure that new windows are not located underneath any panels - // Get the window location - QRect geom = XCB->WindowGeometry(win, false); - //Get the frame size - QList<int> frame = XCB->WindowFrameGeometry(win); //[top,bottom,left,right] sizes of the frame - //Calculate the full geometry (window + frame) - QRect fgeom = QRect(geom.x()-frame[2], geom.y()-frame[0], geom.width()+frame[2]+frame[3], geom.height()+frame[0]+frame[1]); - if(DEBUG){ - qDebug() << "Check Window Geometry:" << XCB->WindowClass(win) << !geom.isNull() << geom << fgeom; - } - if(geom.isNull()){ return; } //Could not get geometry for some reason - //Get the available geometry for the screen the window is on - QRect desk; - for(int i=0; i<DESKTOPS.length(); i++){ - if( this->desktop()->screenGeometry(DESKTOPS[i]->Screen()).contains(geom.center()) ){ - //Window is on this screen - if(DEBUG){ qDebug() << " - On Screen:" << DESKTOPS[i]->Screen(); } - desk = DESKTOPS[i]->availableScreenGeom(); - if(DEBUG){ qDebug() << " - Screen Geom:" << desk; } - break; - } - } - if(desk.isNull()){ return; } //Unable to determine screen - //Adjust the window location if necessary - if(maximize){ - if(DEBUG){ qDebug() << " - Maximizing New Window:" << desk.width() << desk.height(); } - geom = desk; //Use the full screen - XCB->MoveResizeWindow(win, geom); - XCB->MaximizeWindow(win, true); //directly set the appropriate "maximized" flags (bypassing WM) - - }else if(!desk.contains(fgeom) ){ - //Adjust origin point for left/top margins - if(fgeom.y() < desk.y()){ geom.moveTop(desk.y()+frame[0]); fgeom.moveTop(desk.y()); } //move down to the edge (top panel) - if(fgeom.x() < desk.x()){ geom.moveLeft(desk.x()+frame[2]); fgeom.moveLeft(desk.x()); } //move right to the edge (left panel) - //Adjust size for bottom margins (within reason, since window titles are on top normally) - // if(geom.right() > desk.right() && (geom.width() > 100)){ geom.setRight(desk.right()); } - if(fgeom.bottom() > desk.bottom() && geom.height() > 10){ - if(DEBUG){ qDebug() << "Adjust Y:" << fgeom << geom << desk; } - int diff = fgeom.bottom()-desk.bottom(); //amount of overlap - if(DEBUG){ qDebug() << "Y-Diff:" << diff; } - if(diff < 0){ diff = -diff; } //need a positive value - if( (fgeom.height()+ diff)< desk.height()){ - //just move the window - there is room for it above - geom.setBottom(desk.bottom()-frame[1]); - fgeom.setBottom(desk.bottom()); - }else if(geom.height() > diff){ //window bigger than the difference - //Need to resize the window - keeping the origin point the same - geom.setHeight( geom.height()-diff-1 ); //shrink it by the difference (need an extra pixel somewhere) - fgeom.setHeight( fgeom.height()-diff ); - } - } - //Now move/resize the window - if(DEBUG){ - qDebug() << " - New Geom:" << geom << fgeom; - } - XCB->WM_Request_MoveResize_Window(win, geom); - } - -} - -void LSession::SessionEnding(){ - stopSystemTray(); //just in case it was not stopped properly earlier -} - -//=============== -// SYSTEM ACCESS -//=============== -void LSession::LaunchApplication(QString cmd){ - LSession::setOverrideCursor(QCursor(Qt::BusyCursor)); - QProcess::startDetached(cmd); -} - -QFileInfoList LSession::DesktopFiles(){ - return desktopFiles; -} - -QRect LSession::screenGeom(int num){ - if(num < 0 || num >= this->desktop()->screenCount() ){ return QRect(); } - QRect geom = this->desktop()->screenGeometry(num); - return geom; -} - -AppMenu* LSession::applicationMenu(){ - return appmenu; -} - -SettingsMenu* LSession::settingsMenu(){ - return settingsmenu; -} - -QSettings* LSession::sessionSettings(){ - return sessionsettings; -} - -QSettings* LSession::DesktopPluginSettings(){ - return DPlugSettings; -} - -WId LSession::activeWindow(){ - //Check the last active window pointer first - WId active = XCB->ActiveWindow(); - //qDebug() << "Check Active Window:" << active << lastActiveWin; - if(RunningApps.contains(active)){ lastActiveWin = active; } - else if(RunningApps.contains(lastActiveWin) && XCB->WindowState(lastActiveWin) >= LXCB::VISIBLE){} //no change needed - else if(RunningApps.contains(lastActiveWin) && RunningApps.length()>1){ - int start = RunningApps.indexOf(lastActiveWin); - if(start<1){ lastActiveWin = RunningApps.length()-1; } //wrap around to the last item - else{ lastActiveWin = RunningApps[start-1]; } - }else{ - //Need to change the last active window - find the first one which is visible - lastActiveWin = 0; //fallback value - nothing active - for(int i=0; i<RunningApps.length(); i++){ - if(XCB->WindowState(RunningApps[i]) >= LXCB::VISIBLE){ - lastActiveWin = RunningApps[i]; - break; - } - } - //qDebug() << " -- New Last Active Window:" << lastActiveWin; - } - return lastActiveWin; -} - -//Temporarily change the session locale (nothing saved between sessions) -void LSession::switchLocale(QString localeCode){ - currTranslator = LUtils::LoadTranslation(this, "lumina-desktop", localeCode, currTranslator); - if(currTranslator!=0 || localeCode=="en_US"){ - LUtils::setLocaleEnv(localeCode); //will set everything to this locale (no custom settings) - } - emit LocaleChanged(); -} - -void LSession::systemWindow(){ - if(sysWindow==0){ sysWindow = new SystemWindow(); } - else{ sysWindow->updateWindow(); } - sysWindow->show(); - //LSession::processEvents(); -} - -//Play System Audio -void LSession::playAudioFile(QString filepath){ - if( !QFile::exists(filepath) ){ return; } - //Setup the audio output systems for the desktop - if(DEBUG){ qDebug() << "Play Audio File"; } - if(mediaObj==0){ qDebug() << " - Initialize media player"; mediaObj = new QMediaPlayer(); } - if(mediaObj !=0 ){ - if(DEBUG){ qDebug() << " - starting playback:" << filepath; } - mediaObj->setVolume(100); - mediaObj->setMedia(QUrl::fromLocalFile(filepath)); - mediaObj->play(); - LSession::processEvents(); - } - if(DEBUG){ qDebug() << " - Done with Audio File"; } -} -// ======================= -// XCB EVENT FILTER FUNCTIONS -// ======================= -void LSession::RootSizeChange(){ - qDebug() << "Got Root Size Change"; - if(DESKTOPS.isEmpty()){ return; } //Initial setup not run yet - screenTimer->start(); -} - -void LSession::WindowPropertyEvent(){ - if(DEBUG){ qDebug() << "Window Property Event"; } - QList<WId> newapps = XCB->WindowList(); - if(RunningApps.length() < newapps.length()){ - //New Window found - //qDebug() << "New window found"; - LSession::restoreOverrideCursor(); //restore the mouse cursor back to normal (new window opened?) - //Perform sanity checks on any new window geometries - for(int i=0; i<newapps.length() && !TrayStopping; i++){ - if(!RunningApps.contains(newapps[i])){ - checkWin << newapps[i]; - XCB->SelectInput(newapps[i]); //make sure we get property/focus events for this window - if(DEBUG){ qDebug() << "New Window - check geom in a moment:" << XCB->WindowClass(newapps[i]); } - QTimer::singleShot(50, this, SLOT(checkWindowGeoms()) ); - } - } - } - - //Now save the list and send out the event - RunningApps = newapps; - emit WindowListEvent(); -} - -void LSession::WindowPropertyEvent(WId win){ - //Emit the single-app signal if the window in question is one used by the task manager - if(RunningApps.contains(win)){ - if(DEBUG){ qDebug() << "Single-window property event"; } - //emit WindowListEvent(); - WindowPropertyEvent(); //Run through the entire routine for window checks - }else if(RunningTrayApps.contains(win)){ - emit TrayIconChanged(win); - } -} - -void LSession::SysTrayDockRequest(WId win){ - if(TrayStopping){ return; } - attachTrayWindow(win); //Check to see if the window is already registered -} - -void LSession::WindowClosedEvent(WId win){ - if(TrayStopping){ return; } - removeTrayWindow(win); //Check to see if the window is a tray app -} - -void LSession::WindowConfigureEvent(WId win){ - if(TrayStopping){ return; } - if(RunningTrayApps.contains(win)){ - if(DEBUG){ qDebug() << "SysTray: Configure Event"; } - emit TrayIconChanged(win); //trigger a repaint event - }else if(RunningApps.contains(win)){ - WindowPropertyEvent(); - } -} - -void LSession::WindowDamageEvent(WId win){ - if(TrayStopping){ return; } - if(RunningTrayApps.contains(win)){ - if(DEBUG){ qDebug() << "SysTray: Damage Event"; } - emit TrayIconChanged(win); //trigger a repaint event - } -} - -void LSession::WindowSelectionClearEvent(WId win){ - if(win==SystemTrayID && !TrayStopping){ - qDebug() << "Stopping system tray"; - stopSystemTray(true); //make sure to detach all windows - } -} - - -//====================== -// SYSTEM TRAY FUNCTIONS -//====================== -bool LSession::registerVisualTray(WId visualTray){ - //Only one visual tray can be registered at a time - // (limitation of how tray apps are embedded) - if(TrayStopping){ return false; } - else if(VisualTrayID==0){ VisualTrayID = visualTray; return true; } - else if(VisualTrayID==visualTray){ return true; } - else{ return false; } -} - -void LSession::unregisterVisualTray(WId visualTray){ - if(VisualTrayID==visualTray){ - qDebug() << "Unregistered Visual Tray"; - VisualTrayID=0; - if(!TrayStopping){ emit VisualTrayAvailable(); } - } -} - -QList<WId> LSession::currentTrayApps(WId visualTray){ - if(visualTray==VisualTrayID){ - //Check the validity of all the current tray apps (make sure nothing closed erratically) - for(int i=0; i<RunningTrayApps.length(); i++){ - if(XCB->WindowClass(RunningTrayApps[i]).isEmpty()){ RunningTrayApps.removeAt(i); i--; } - } - return RunningTrayApps; - }else if( registerVisualTray(visualTray) ){ - return RunningTrayApps; - }else{ - return QList<WId>(); - } -} - -void LSession::startSystemTray(){ - if(SystemTrayID!=0){ return; } - RunningTrayApps.clear(); //nothing running yet - SystemTrayID = XCB->startSystemTray(0); - TrayStopping = false; - if(SystemTrayID!=0){ - XCB->SelectInput(SystemTrayID); //make sure TrayID events get forwarded here - TrayDmgEvent = XCB->GenerateDamageID(SystemTrayID); - evFilter->setTrayDamageFlag(TrayDmgEvent); - qDebug() << "System Tray Started Successfully"; - if(DEBUG){ qDebug() << " - System Tray Flags:" << TrayDmgEvent << TrayDmgError; } - } -} - -void LSession::stopSystemTray(bool detachall){ - if(TrayStopping){ return; } //already run - qDebug() << "Stopping system tray..."; - TrayStopping = true; //make sure the internal list does not modified during this - //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 - if(!detachall){ - for(int i=0; i<tmpApps.length(); i++){ - qDebug() << " - Stopping tray app:" << XCB->WindowClass(tmpApps[i]); - //Tray apps are special and closing the window does not close the app - XCB->KillClient(tmpApps[i]); - LSession::processEvents(); - } - } - //Now close down the tray backend - XCB->closeSystemTray(SystemTrayID); - SystemTrayID = 0; - TrayDmgEvent = 0; - TrayDmgError = 0; - evFilter->setTrayDamageFlag(0); //turn off tray event handling - emit TrayListChanged(); - LSession::processEvents(); -} - -void LSession::attachTrayWindow(WId win){ - //static int appnum = 0; - if(TrayStopping){ return; } - if(RunningTrayApps.contains(win)){ return; } //already managed - qDebug() << "Session Tray: Window Added"; - RunningTrayApps << win; - LSession::restoreOverrideCursor(); - if(DEBUG){ qDebug() << "Tray List Changed"; } - emit TrayListChanged(); -} - -void LSession::removeTrayWindow(WId win){ - if(SystemTrayID==0){ return; } - for(int i=0; i<RunningTrayApps.length(); i++){ - if(win==RunningTrayApps[i]){ - qDebug() << "Session Tray: Window Removed"; - RunningTrayApps.removeAt(i); - emit TrayListChanged(); - break; - } - } -} -//========================= -// START MENU FUNCTIONS -//========================= -bool LSession::registerStartButton(QString ID){ - if(StartButtonID.isEmpty()){ StartButtonID = ID; } - return (StartButtonID==ID); -} - -void LSession::unregisterStartButton(QString ID){ - if(StartButtonID == ID){ - StartButtonID.clear(); - emit StartButtonAvailable(); - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LSession.h b/src-qt5/core/lumina-desktop-unified/src-DE/LSession.h deleted file mode 100644 index bd93289a..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LSession.h +++ /dev/null @@ -1,193 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_SESSION_H -#define _LUMINA_DESKTOP_SESSION_H - -#include <QApplication> -#include <QDebug> -#include <QString> -#include <QX11Info> -#include <QEvent> -#include <QTranslator> -#include <QSettings> -#include <QProxyStyle> -#include <QDesktopWidget> -#include <QList> -#include <QThread> -#include <QMediaPlayer> -#include <QThread> -#include <QUrl> - -#include "Globals.h" -#include "AppMenu.h" -#include "SettingsMenu.h" -#include "SystemWindow.h" -#include "LDesktop.h" -//#include "WMProcess.h" -//#include "BootSplash.h" - -#include <LuminaX11.h> -#include <LuminaSingleApplication.h> - -//SYSTEM TRAY STANDARD DEFINITIONS -#define SYSTEM_TRAY_REQUEST_DOCK 0 -#define SYSTEM_TRAY_BEGIN_MESSAGE 1 -#define SYSTEM_TRAY_CANCEL_MESSAGE 2 - -/*class MenuProxyStyle : public QProxyStyle{ -public: - int pixelMetric(PixelMetric metric, const QStyleOption *option=0, const QWidget *widget=0) const{ - if(metric==PM_SmallIconSize){ return 22; } //override QMenu icon size (make it larger) - else{ return QProxyStyle::pixelMetric(metric, option, widget); } //use the current style for everything else - } -};*/ - -class LSession : public LSingleApplication{ - Q_OBJECT -public: - LSession(int &argc, char **argv); - ~LSession(); - //Functions to be called during startup - void setupSession(); - - //Public System Tray Functions - QList<WId> currentTrayApps(WId visualTray); - bool registerVisualTray(WId); - void unregisterVisualTray(WId); - - //Public start menu buttons - bool registerStartButton(QString ID); - void unregisterStartButton(QString ID); - - //Special functions for XCB event filter parsing only - // (DO NOT USE MANUALLY) - void RootSizeChange(); - void WindowPropertyEvent(); - void WindowPropertyEvent(WId); - void SysTrayDockRequest(WId); - void WindowClosedEvent(WId); - void WindowConfigureEvent(WId); - void WindowDamageEvent(WId); - void WindowSelectionClearEvent(WId); - - //System Access - //Return a pointer to the current session - static LSession* handle(){ - return static_cast<LSession*>(LSession::instance()); - } - - static void LaunchApplication(QString cmd); - QFileInfoList DesktopFiles(); - - QRect screenGeom(int num); - - AppMenu* applicationMenu(); - void systemWindow(); - SettingsMenu* settingsMenu(); - LXCB *XCB; //class for XCB usage - - QSettings* sessionSettings(); - QSettings* DesktopPluginSettings(); - - //Keep track of which non-desktop window should be treated as active - WId activeWindow(); //This will return the last active window if a desktop element is currently active - - //Temporarily change the session locale (nothing saved between sessions) - void switchLocale(QString localeCode); - - //Play System Audio - void playAudioFile(QString filepath); - //Window Adjustment Routine (due to Fluxbox not respecting _NET_WM_STRUT) - void adjustWindowGeom(WId win, bool maximize = false); - -private: - //WMProcess *WM; - QList<LDesktop*> DESKTOPS; - QFileSystemWatcher *watcher; - QTimer *screenTimer; - - //Internal variable for global usage - AppMenu *appmenu; - SettingsMenu *settingsmenu; - SystemWindow *sysWindow; - QTranslator *currTranslator; - QMediaPlayer *mediaObj; - QSettings *sessionsettings, *DPlugSettings; - bool cleansession; - //QList<QRect> savedScreens; - - //System Tray Variables - WId SystemTrayID, VisualTrayID; - int TrayDmgEvent, TrayDmgError; - QList<WId> RunningTrayApps; - bool TrayStopping; - //Start Button Variables - QString StartButtonID; - - //Task Manager Variables - WId lastActiveWin; - QList<WId> RunningApps; - QList<WId> checkWin; - QFileInfoList desktopFiles; - - void CleanupSession(); - - int VersionStringToNumber(QString version); - -public slots: - void StartLogout(); - void StartShutdown(bool skipupdates = false); - void StartReboot(bool skipupdates = false); - - void reloadIconTheme(); - -private slots: - void NewCommunication(QStringList); - void launchStartupApps(); //used during initialization - void watcherChange(QString); - void screensChanged(); - void screenResized(int); - void checkWindowGeoms(); - - //System Tray Functions - void startSystemTray(); - void stopSystemTray(bool detachall = false); - void attachTrayWindow(WId); - void removeTrayWindow(WId); - - //Internal simplification functions - void checkUserFiles(); - void refreshWindowManager(); - void updateDesktops(); - void registerDesktopWindows(); - - - void SessionEnding(); - -signals: - //System Tray Signals - void VisualTrayAvailable(); //new Visual Tray Plugin can be registered - void TrayListChanged(); //Item added/removed from the list - void TrayIconChanged(WId); //WinID of Tray App - //Start Button signals - void StartButtonAvailable(); - void StartButtonActivated(); - //Task Manager Signals - void WindowListEvent(WId); - void WindowListEvent(); - //General Signals - void LocaleChanged(); - void IconThemeChanged(); - void DesktopConfigChanged(); - void SessionConfigChanged(); - void FavoritesChanged(); - void DesktopFilesChanged(); - void WorkspaceChanged(); - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LWinInfo.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/LWinInfo.cpp deleted file mode 100644 index 6a6cea0b..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LWinInfo.cpp +++ /dev/null @@ -1,48 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LWinInfo.h" - -#include <LuminaX11.h> - -#include "LSession.h" - -//Information Retrieval - // Don't cache these results because they can change regularly -QString LWinInfo::text(){ - if(window==0){ return ""; } - QString nm = LSession::handle()->XCB->WindowVisibleIconName(window); - if(nm.simplified().isEmpty()){ nm = LSession::handle()->XCB->WindowIconName(window); } - if(nm.simplified().isEmpty()){ nm = LSession::handle()->XCB->WindowVisibleName(window); } - if(nm.simplified().isEmpty()){ nm = LSession::handle()->XCB->WindowName(window); } - if(nm.simplified().isEmpty()){ nm = LSession::handle()->XCB->OldWindowIconName(window); } - if(nm.simplified().isEmpty()){ nm = LSession::handle()->XCB->OldWindowName(window); } - //Make sure that the text is a reasonable size (40 char limit) - //if(nm.length()>40){ nm = nm.left(40)+"..."; } - return nm; -} - -QIcon LWinInfo::icon(bool &noicon){ - if(window==0){ noicon = true; return QIcon();} - noicon = false; - QIcon ico = LSession::handle()->XCB->WindowIcon(window); - //Check for a null icon, and supply one if necessary - if(ico.isNull()){ ico = LXDG::findIcon( this->Class().toLower(),""); } - if(ico.isNull()){ico = LXDG::findIcon("preferences-system-windows",""); noicon=true;} - return ico; -} - -QString LWinInfo::Class(){ - return LSession::handle()->XCB->WindowClass(window); -} - -LXCB::WINDOWVISIBILITY LWinInfo::status(bool update){ - if(window==0){ return LXCB::IGNORE; } - if(update || cstate == LXCB::IGNORE){ - cstate = LSession::handle()->XCB->WindowState(window); - } - return cstate; -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LWinInfo.h b/src-qt5/core/lumina-desktop-unified/src-DE/LWinInfo.h deleted file mode 100644 index 3d2ea65a..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LWinInfo.h +++ /dev/null @@ -1,50 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_WINDOW_INFO_H -#define _LUMINA_DESKTOP_WINDOW_INFO_H - -// Qt includes -#include <QString> -#include <QPixmap> -#include <QIcon> -#include <QPainter> - -// libLumina includes -#include <LuminaX11.h> -#include <LuminaXDG.h> - -// Local includes -//#include "Globals.h" //For the STATES enumeration definition -//#include "LSession.h" - - -class LWinInfo{ -private: - WId window; - LXCB::WINDOWVISIBILITY cstate; //current window state - -public: - LWinInfo(WId id = 0){ - window = id; - cstate = LXCB::IGNORE; //make sure this gets updates with the first "status" call - } - ~LWinInfo(){}; - - //The current window ID - WId windowID(){ - return window; - } - - //Information Retrieval - // Don't cache these results because they can change regularly - QString text(); - QIcon icon(bool &noicon); - QString Class(); - LXCB::WINDOWVISIBILITY status(bool update = false); -}; - -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LXcbEventFilter.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/LXcbEventFilter.cpp deleted file mode 100644 index ca7fb38d..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LXcbEventFilter.cpp +++ /dev/null @@ -1,118 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LXcbEventFilter.h" - -//For all the XCB interactions and atoms -// is accessed via -// session->XCB->EWMH.(atom name) -// session->XCB->(do something) -#include <LuminaX11.h> -#include <QDebug> - -XCBEventFilter::XCBEventFilter(LSession *sessionhandle) : QAbstractNativeEventFilter(){ - session = sessionhandle; //save this for interaction with the session later - TrayDmgFlag = 0; - stopping = false; - session->XCB->SelectInput(QX11Info::appRootWindow()); //make sure we get root window events - InitAtoms(); -} - -void XCBEventFilter::setTrayDamageFlag(int flag){ - //Special flag for system tray damage events - TrayDmgFlag = flag + XCB_DAMAGE_NOTIFY; //save the whole flag (no calculations later) -} - -//This function format taken directly from the Qt5.3 documentation -bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *){ - if(stopping){ return false; } //don't do any parsing - //qDebug() << "New Event"; - if(eventType=="xcb_generic_event_t"){ - //qDebug() << " - XCB event"; - //Convert to known event type (for X11 systems) - xcb_generic_event_t *ev = static_cast<xcb_generic_event_t *>(message); - //Now parse the event and emit signals as necessary - switch( ev->response_type & ~0x80){ -//============================== - case XCB_PROPERTY_NOTIFY: - //qDebug() << "Property Notify Event:"; - //qDebug() << " - Root Window:" << QX11Info::appRootWindow(); - //qDebug() << " - Given Window:" << ((xcb_property_notify_event_t*)ev)->window; - //System-specific proprty change - if( ((xcb_property_notify_event_t*)ev)->window == QX11Info::appRootWindow() \ - && ( ( ((xcb_property_notify_event_t*)ev)->atom == session->XCB->EWMH._NET_DESKTOP_GEOMETRY) \ - || (((xcb_property_notify_event_t*)ev)->atom == session->XCB->EWMH._NET_WORKAREA) )){ - session->RootSizeChange(); - }else if( ((xcb_property_notify_event_t*)ev)->window == QX11Info::appRootWindow() \ - && ( ( ((xcb_property_notify_event_t*)ev)->atom == session->XCB->EWMH._NET_CURRENT_DESKTOP) )){ - //qDebug() << "Got Workspace Change"; - session->emit WorkspaceChanged(); - }else if( SysNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){ - //Update the status/list of all running windows - session->WindowPropertyEvent(); - - //window-specific property change - }else if( WinNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){ - //Ping only that window - //session->WindowPropertyEvent( ((xcb_property_notify_event_t*)ev)->window ); - session->WindowPropertyEvent(); - } - break; -//============================== - case XCB_CLIENT_MESSAGE: - //qDebug() << "Client Message Event"; - //qDebug() << " - Root Window:" << QX11Info::appRootWindow(); - //qDebug() << " - Given Window:" << ((xcb_client_message_event_t*)ev)->window; - if( TrayDmgFlag!=0 && ((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]){ - session->SysTrayDockRequest( ((xcb_client_message_event_t*)ev)->data.data32[2] ); - } - //Ignore the System Tray messages at the moment (let the WM handle it) - - //window-specific property changes - /*}else if( ((xcb_client_message_event_t*)ev)->type == session->XCB->EWMH._NET_WM_STATE ){ - if( session->XCB->WindowIsMaximized( ((xcb_client_message_event_t*)ev)->window ) ){ - //Quick fix for maximized windows (since Fluxbox is not doing the STRUT detection properly) - session->adjustWindowGeom( ((xcb_client_message_event_t*)ev)->window ); - } - session->WindowPropertyEvent( ((xcb_client_message_event_t*)ev)->window );*/ - }else if( WinNotifyAtoms.contains( ((xcb_client_message_event_t*)ev)->type ) ){ - //Ping only that window - //session->WindowPropertyEvent( ((xcb_client_message_event_t*)ev)->window ); - session->WindowPropertyEvent(); - } - break; -//============================== - case XCB_DESTROY_NOTIFY: - //qDebug() << "Window Closed Event"; - session->WindowClosedEvent( ( (xcb_destroy_notify_event_t*)ev )->window ); - break; -//============================== - case XCB_CONFIGURE_NOTIFY: - //qDebug() << "Configure Notify Event"; - session->WindowConfigureEvent( ((xcb_configure_notify_event_t*)ev)->window ); - break; -//============================== - case XCB_SELECTION_CLEAR: - //qDebug() << "Selection Clear Event"; - session->WindowSelectionClearEvent( ((xcb_selection_clear_event_t*)ev)->owner ); - break; -//============================== - default: - if(TrayDmgFlag!=0){ - //if( (ev->response_type & ~0x80)==TrayDmgFlag){ - session->WindowDamageEvent( ((xcb_damage_notify_event_t*)ev)->drawable ); - //} - }/*else{ - qDebug() << "Default Event:" << (ev->response_type & ~0x80); - }*/ -//============================== - } - } - //qDebug() << " - finished event"; - return false; //make sure the handling keeps going (transparent watching of events) -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/LXcbEventFilter.h b/src-qt5/core/lumina-desktop-unified/src-DE/LXcbEventFilter.h deleted file mode 100644 index c56471c9..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/LXcbEventFilter.h +++ /dev/null @@ -1,104 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012, 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 -//=========================================== -#ifndef _LUMINA_DESKTOP_XCB_FILTER_H -#define _LUMINA_DESKTOP_XCB_FILTER_H - -#include <QAbstractNativeEventFilter> -#include <QList> -#include <QStringList> -#include <QX11Info> - -#include <xcb/xcb.h> -#include <xcb/xproto.h> -#include <xcb/damage.h> -#include <xcb/xcb_atom.h> -#include "LSession.h" - -/* -List of XCB response types (since almost impossible to find good docs on XCB) -switch (xcb_generic_event_t*->response_type & ~0x80) -case values: -XCB_KEY_[PRESS | RELEASE] -XCB_BUTTON_[PRESS | RELEASE] -XCB_MOTION_NOTIFY -XCB_ENTER_NOTIFY -XCB_LEAVE_NOTIFY -XCB_FOCUS_[IN | OUT] -XCB_KEYMAP_NOTIFY -XCB_EXPOSE -XCB_GRAPHICS_EXPOSURE -XCB_VISIBILITY_NOTIFY -XCB_CREATE_NOTIFY -XCB_DESTROY_NOTIFY -XCB_UNMAP_NOTIFY -XCB_MAP_[NOTIFY | REQUEST] -XCB_REPARENT_NOTIFY -XCB_CONFIGURE_[NOTIFY | REQUEST] -XCB_GRAVITY_NOTIFY -XCB_RESIZE_REQUEST -XCB_CIRCULATE_[NOTIFY | REQUEST] -XCB_PROPERTY_NOTIFY -XCB_SELECTION_[CLEAR | REQUEST | NOTIFY] -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 XCBEventFilter : public QAbstractNativeEventFilter{ -private: - LSession *session; - xcb_atom_t _NET_SYSTEM_TRAY_OPCODE; - QList<xcb_atom_t> WinNotifyAtoms, SysNotifyAtoms; - int TrayDmgFlag; //internal damage event offset value for the system tray - bool stopping; - - void InitAtoms(){ - //Initialize any special atoms that we need to save/use regularly - //NOTE: All the EWMH atoms are already saved in session->XCB->EWMH - WinNotifyAtoms.clear(); - WinNotifyAtoms << session->XCB->EWMH._NET_WM_NAME \ - << session->XCB->EWMH._NET_WM_VISIBLE_NAME \ - << session->XCB->EWMH._NET_WM_ICON_NAME \ - << session->XCB->EWMH._NET_WM_VISIBLE_ICON_NAME \ - << session->XCB->EWMH._NET_WM_ICON \ - << session->XCB->EWMH._NET_WM_ICON_GEOMETRY; - - SysNotifyAtoms.clear(); - SysNotifyAtoms << session->XCB->EWMH._NET_CLIENT_LIST \ - << session->XCB->EWMH._NET_CLIENT_LIST_STACKING \ - << session->XCB->EWMH._NET_CURRENT_DESKTOP \ - << session->XCB->EWMH._NET_WM_STATE \ - << session->XCB->EWMH._NET_ACTIVE_WINDOW \ - << session->XCB->EWMH._NET_WM_ICON \ - << session->XCB->EWMH._NET_WM_ICON_GEOMETRY; - //_NET_SYSTEM_TRAY_OPCODE - xcb_intern_atom_cookie_t cookie = xcb_intern_atom(QX11Info::connection(), 0, 23,"_NET_SYSTEM_TRAY_OPCODE"); - xcb_intern_atom_reply_t *r = xcb_intern_atom_reply(QX11Info::connection(), cookie, NULL); - if(r){ - _NET_SYSTEM_TRAY_OPCODE = r->atom; - free(r); - } - } - -public: - XCBEventFilter(LSession *sessionhandle); - void setTrayDamageFlag(int flag); - void StopEventHandling(){ stopping = true; } - - //This function format taken directly from the Qt5.3 documentation - virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *) Q_DECL_OVERRIDE; - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/SettingsMenu.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/SettingsMenu.cpp deleted file mode 100644 index 58208931..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/SettingsMenu.cpp +++ /dev/null @@ -1,67 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "SettingsMenu.h" -#include "LSession.h" - -#include <LuminaOS.h> - -SettingsMenu::SettingsMenu() : QMenu(){ - this->setObjectName("SettingsMenu"); - connect(this, SIGNAL(triggered(QAction*)), this, SLOT(runApp(QAction*)) ); - connect(QApplication::instance(), SIGNAL(LocaleChanged()), this, SLOT(UpdateMenu()) ); - connect(QApplication::instance(), SIGNAL(IconThemeChanged()), this, SLOT(UpdateMenu()) ); - QTimer::singleShot(100, this, SLOT(UpdateMenu()) ); -} - -SettingsMenu::~SettingsMenu(){ - -} - -void SettingsMenu::UpdateMenu(){ - //Change the title/icon to account for locale/icon changes - this->setTitle( tr("Preferences") ); - this->setIcon( LXDG::findIcon("configure","") ); - this->clear(); - //Now setup the possible configuration options - QAction *act = new QAction(LXDG::findIcon("preferences-desktop-screensaver",""), tr("Screensaver"), this); - act->setWhatsThis("xscreensaver-demo"); - this->addAction(act); - act = new QAction( LXDG::findIcon("preferences-desktop-wallpaper",""), tr("Wallpaper"), this); - act->setWhatsThis("lumina-config --page wallpaper"); - this->addAction(act); - act = new QAction( LXDG::findIcon("preferences-other",""), tr("Display"), this); - act->setWhatsThis("lumina-xconfig"); - this->addAction(act); - act = new QAction( LXDG::findIcon("preferences-desktop",""), tr("All Desktop Settings"), this); - act->setWhatsThis("lumina-config"); - this->addAction(act); - this->addSeparator(); - /*QString qtconfig = LOS::QtConfigShortcut(); - if(QFile::exists(qtconfig) && !qtconfig.isEmpty()){ - act = new QAction( LXDG::findIcon("preferences-desktop-theme",""), tr("Window Theme"), this); - act->setWhatsThis(qtconfig); - this->addAction(act); - }*/ - QString CONTROLPANEL = LOS::ControlPanelShortcut(); - if(QFile::exists(CONTROLPANEL) && !CONTROLPANEL.isEmpty()){ - //Now load the info - XDGDesktop cpan(CONTROLPANEL); - if(cpan.isValid()){ - act = new QAction( LXDG::findIcon(cpan.icon,""), tr("Control Panel"), this); - act->setWhatsThis("lumina-open \""+CONTROLPANEL+"\""); - this->addAction(act); - } - } - act = new QAction( LXDG::findIcon("lumina",""), tr("About Lumina"), this); - act->setWhatsThis("lumina-info"); - this->addAction(act); -} - - -void SettingsMenu::runApp(QAction* act){ - LSession::LaunchApplication(act->whatsThis()); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/SettingsMenu.h b/src-qt5/core/lumina-desktop-unified/src-DE/SettingsMenu.h deleted file mode 100644 index eeabab85..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/SettingsMenu.h +++ /dev/null @@ -1,28 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_SETTINGS_MENU_H -#define _LUMINA_DESKTOP_SETTINGS_MENU_H - -#include <QMenu> -#include <QProcess> -#include <QAction> - -#include <LuminaXDG.h> - -class SettingsMenu : public QMenu{ - Q_OBJECT -public: - SettingsMenu(); - ~SettingsMenu(); - -private slots: - void UpdateMenu(); - void runApp(QAction* act); - -}; - -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.cpp deleted file mode 100644 index 1c0b59a5..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include "SystemWindow.h" -#include "ui_SystemWindow.h" - -#include "LSession.h" -#include <LuminaOS.h> -#include <QPoint> -#include <QCursor> -#include <QDebug> -#include <QProcess> -#include <QDesktopWidget> -#include <QMessageBox> - -SystemWindow::SystemWindow() : QDialog(), ui(new Ui::SystemWindow){ - ui->setupUi(this); //load the designer file - //Setup the window flags - this->setWindowFlags( Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); - //Setup the icons based on the current theme - ui->tool_logout->setIcon( LXDG::findIcon("system-log-out","") ); - ui->tool_restart->setIcon( LXDG::findIcon("system-reboot","") ); - ui->tool_shutdown->setIcon( LXDG::findIcon("system-shutdown","") ); - ui->tool_suspend->setIcon( LXDG::findIcon("system-suspend","") ); - ui->push_cancel->setIcon( LXDG::findIcon("dialog-cancel","") ); - ui->push_lock->setIcon( LXDG::findIcon("system-lock-screen","") ); - //Connect the signals/slots - connect(ui->tool_logout, SIGNAL(clicked()), this, SLOT(sysLogout()) ); - connect(ui->tool_restart, SIGNAL(clicked()), this, SLOT(sysRestart()) ); - connect(ui->tool_shutdown, SIGNAL(clicked()), this, SLOT(sysShutdown()) ); - connect(ui->tool_suspend, SIGNAL(clicked()), this, SLOT(sysSuspend()) ); - connect(ui->push_cancel, SIGNAL(clicked()), this, SLOT(sysCancel()) ); - connect(ui->push_lock, SIGNAL(clicked()), this, SLOT(sysLock()) ); - //Disable buttons if necessary - updateWindow(); - ui->tool_suspend->setVisible(LOS::systemCanSuspend()); //does not change with time - just do a single check - connect(QApplication::instance(), SIGNAL(LocaleChanged()), this, SLOT(updateWindow()) ); - connect(QApplication::instance(), SIGNAL(IconThemeChanged()), this, SLOT(updateWindow()) ); -} - -SystemWindow::~SystemWindow(){ - -} - -void SystemWindow::updateWindow(){ - //Disable the shutdown/restart buttons if necessary - ui->retranslateUi(this); - bool ok = LOS::userHasShutdownAccess(); - ui->tool_restart->setEnabled(ok); - ui->tool_shutdown->setEnabled(ok); - //Center this window on the current screen - QPoint center = QApplication::desktop()->screenGeometry(QCursor::pos()).center(); //get the center of the current screen - this->move(center.x() - this->width()/2, center.y() - this->height()/2); -} - -bool SystemWindow::promptAboutUpdates(bool &skip){ - QString pending = LOS::systemPendingUpdates(); - if(pending.isEmpty()){ skip = false; } //continue without skip - else{ - QMessageBox dlg(QMessageBox::Question, tr("Apply Updates?"), tr("You have system updates waiting to be applied! Do you wish to install them now?"), QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel, this); - dlg.setDetailedText(pending); - dlg.setDefaultButton(QMessageBox::Yes); - dlg.show(); - int ret = dlg.exec(); - if(ret == QMessageBox::Cancel){ return false; } //do not continue - else{ skip = (ret==QMessageBox::No); } - } - return true; -} - -void SystemWindow::sysLogout(){ - this->close(); - LSession::processEvents(); - QTimer::singleShot(0, LSession::handle(), SLOT(StartLogout()) ); -} - -void SystemWindow::sysRestart(){ - bool skip = false; - if(!promptAboutUpdates(skip)){ this->close(); return; } //cancelled - this->close(); - LSession::processEvents(); - LSession::handle()->StartReboot(skip); -} - -void SystemWindow::sysShutdown(){ - bool skip = false; - if(!promptAboutUpdates(skip)){ this->close(); return; } //cancelled - this->close(); - LSession::processEvents(); - LSession::handle()->StartShutdown(skip); -} - -void SystemWindow::sysSuspend(){ - this->hide(); - LSession::processEvents(); - //Make sure to lock the system first (otherwise anybody can access it again) - LUtils::runCmd("xscreensaver-command -lock"); - //Now suspend the system - LOS::systemSuspend(); -} - -void SystemWindow::sysLock(){ - this->hide(); - LSession::processEvents(); - qDebug() << "Locking the desktop..."; - QProcess::startDetached("xscreensaver-command -lock"); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.h b/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.h deleted file mode 100644 index bbef36a3..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef _LUMINA_DESKTOP_SYSTEM_WINDOW_H -#define _LUMINA_DESKTOP_SYSTEM_WINDOW_H - -#include <QDialog> - -#include "ui_SystemWindow.h" - - - - -namespace Ui{ - class SystemWindow; -}; - -class SystemWindow : public QDialog{ - Q_OBJECT -public: - SystemWindow(); - ~SystemWindow(); - -public slots: - void updateWindow(); - -private: - Ui::SystemWindow *ui; - - //void closeAllWindows(); - bool promptAboutUpdates(bool &skip); //main bool return: continue/cancel, skip: skip updates or not - -private slots: - void sysLogout(); - - void sysRestart(); - - void sysShutdown(); - - void sysSuspend(); - - void sysCancel(){ - this->close(); - } - - void sysLock(); -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.ui b/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.ui deleted file mode 100644 index 9e25509b..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/SystemWindow.ui +++ /dev/null @@ -1,194 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>SystemWindow</class> - <widget class="QDialog" name="SystemWindow"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>289</width> - <height>135</height> - </rect> - </property> - <property name="windowTitle"> - <string>System Options</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QFrame" name="frame"> - <property name="frameShape"> - <enum>QFrame::StyledPanel</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="leftMargin"> - <number>3</number> - </property> - <property name="topMargin"> - <number>3</number> - </property> - <property name="rightMargin"> - <number>3</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QToolButton" name="tool_logout"> - <property name="text"> - <string>Log Out</string> - </property> - <property name="iconSize"> - <size> - <width>64</width> - <height>64</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextUnderIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_restart"> - <property name="text"> - <string>Restart</string> - </property> - <property name="iconSize"> - <size> - <width>64</width> - <height>64</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextUnderIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_shutdown"> - <property name="text"> - <string>Shutdown</string> - </property> - <property name="iconSize"> - <size> - <width>64</width> - <height>64</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextUnderIcon</enum> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QToolButton" name="push_cancel"> - <property name="text"> - <string>Cancel</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextUnderIcon</enum> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QToolButton" name="push_lock"> - <property name="text"> - <string>Lock</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextUnderIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_suspend"> - <property name="text"> - <string>Suspend</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextUnderIcon</enum> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/LDPlugin.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/LDPlugin.cpp deleted file mode 100644 index 545ba430..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/LDPlugin.cpp +++ /dev/null @@ -1,63 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LDPlugin.h" - -#include "../LSession.h" -#include <LuminaXDG.h> - -LDPlugin::LDPlugin(QWidget *parent, QString id) : QFrame(parent){ - PLUGID=id; - prefix = id.replace("/","_")+"/"; - //qDebug() << "ID:" << PLUGID << prefix; - settings = LSession::handle()->DesktopPluginSettings(); - //Setup the plugin system control menu - menu = new QMenu(this); - setupMenu(); - //Setup the internal timer for when to start/stop drag events - dragTimer = new QTimer(this); - dragTimer->setSingleShot(true); - dragTimer->setInterval(500); //1/2 second to show the plugin menu - connect(dragTimer, SIGNAL(timeout()), this, SLOT(showPluginMenu())); - //Use plugin-specific values for stylesheet control (applauncher, desktopview, etc...) - this->setObjectName(id.section("---",0,0).section("::",0,0)); - this->setContextMenuPolicy(Qt::CustomContextMenu); - this->setMouseTracking(false); //only catch mouse movement events if the mouse is clicked/held on the plugin - connect(QApplication::instance(), SIGNAL(LocaleChanged()), this, SLOT(LocaleChange()) ); - connect(QApplication::instance(), SIGNAL(IconThemeChanged()), this, SLOT(ThemeChange()) ); - connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showPluginMenu()) ); -} - -void LDPlugin::setupMenu(){ - menu->clear(); - //SPECIAL CONTEXT MENU OPTIONS FOR PARTICULAR PLUGIN TYPES - if(PLUGID.startsWith("applauncher::")){ - menu->addAction( LXDG::findIcon("quickopen",""), tr("Launch Item"), this, SIGNAL(PluginActivated()) ); - menu->addSeparator(); - } - //General Options - menu->addAction( LXDG::findIcon("transform-move",""), tr("Start Moving Item"), this, SLOT(slotStartMove()) ); - menu->addAction( LXDG::findIcon("transform-scale",""), tr("Start Resizing Item"), this, SLOT(slotStartResize()) ); - menu->addSeparator(); - menu->addAction( LXDG::findIcon("zoom-in",""), tr("Increase Item Sizes"), this, SIGNAL(IncreaseIconSize()) ); - menu->addAction( LXDG::findIcon("zoom-out",""), tr("Decrease Item Sizes"), this, SIGNAL(DecreaseIconSize()) ); - menu->addSeparator(); - menu->addAction( LXDG::findIcon("edit-delete",""), tr("Remove Item"), this, SLOT(slotRemovePlugin()) ); -} - -/*void LDPlugin::setInitialSize(int width, int height){ - //Note: Only run this in the plugin initization routine: - // if the plugin is completely new (first time used), it will be this size - if(settings->allKeys().filter(prefix+"location").isEmpty()){ - //Brand new plugin: set initial size - //qDebug() << "Setting Initial Size:" << PLUGID << width << height; - settings->setValue(prefix+"location/width",width); - settings->setValue(prefix+"location/height",height); - settings->sync(); - } - //Now make sure the plugin is the saved size right away - this->resize( settings->value(prefix+"location/width").toInt(), settings->value(prefix+"location/height").toInt()); -}*/ diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/LDPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/LDPlugin.h deleted file mode 100644 index 820880ed..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/LDPlugin.h +++ /dev/null @@ -1,156 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is the generic container layout for all desktop plugins -// Simply subclass this when creating a new plugin to enable correct -// visibility and usage within the desktop window -//=========================================== -// WARNING: Do *not* setup a custom context menu for the entire plugins area! -// This can prevent access to the general desktop context menu if -// the plugin was maximized to fill the desktop area! -//=========================================== -#ifndef _LUMINA_DESKTOP_DESKTOP_PLUGIN_H -#define _LUMINA_DESKTOP_DESKTOP_PLUGIN_H - -#include <QObject> -#include <QFrame> -#include <QWidget> -#include <QString> -#include <QDebug> -#include <QSettings> -#include <QMoveEvent> -#include <QResizeEvent> -#include <QMouseEvent> -#include <QTimer> -#include <QMenu> - -class LDPlugin : public QFrame{ - Q_OBJECT - -private: - QString PLUGID, prefix; - QSettings *settings; - QMenu *menu; - QTimer *dragTimer; - - void setupMenu(); - -public: - LDPlugin(QWidget *parent = 0, QString id="unknown"); - - ~LDPlugin(){} - - QString ID(){ - return PLUGID; - } - - virtual QSize defaultPluginSize(){ - //This needs to be re-implemented in the subclassed plugin - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(1,1); //1x1 grid size - } - - void savePluginGeometry(QRect geom){ - settings->setValue(prefix+"geometry/desktopGridPoints", geom); - settings->sync(); - } - - QRect loadPluginGeometry(){ - return settings->value(prefix+"geometry/desktopGridPoints", QRect()).toRect(); - } - - void saveSetting(QString var, QVariant val){ - //qDebug() << "Saving Setting:" << prefix+var+QString(" = ")+val.toString(); - settings->setValue(prefix+var, val); - settings->sync(); - } - - QVariant readSetting(QString var, QVariant defaultval){ - return settings->value(prefix+var, defaultval); - } - - virtual void Cleanup(){ - //This needs to be re-implemented in the subclassed plugin - //This is where any last-minute changes are performed before a plugin is removed permanently - //Note1: This is *not* called if the plugin is being temporarily closed - //Note2: All the settings for this plugin will be automatically removed after this is finished - } - - void removeSettings(bool permanent = false){ //such as when a plugin is deleted - if(permanent){ Cleanup(); } - QStringList list = settings->allKeys().filter(prefix); - for(int i=0; i<list.length(); i++){ settings->remove(list[i]); } - - } - -public slots: - virtual void LocaleChange(){ - //This needs to be re-implemented in the subclassed plugin - //This is where all text is set/translated - setupMenu(); - } - virtual void ThemeChange(){ - //This needs to be re-implemented in the subclassed plugin - //This is where all the visuals are set if using Theme-dependant icons. - setupMenu(); - } - void showPluginMenu(){ - emit CloseDesktopMenu(); - menu->popup( QCursor::pos() ); - } - -signals: - void OpenDesktopMenu(); - void CloseDesktopMenu(); - void PluginResized(); - void PluginActivated(); - - //Signals for communication with the desktop layout system (not generally used by hand) - void StartMoving(QString); //ID of plugin - void StartResizing(QString); //ID of plugin - void RemovePlugin(QString); //ID of plugin - void IncreaseIconSize(); // only used for desktop icons - void DecreaseIconSize(); // only used for desktop icons - -private slots: - void slotStartMove(){ - QCursor::setPos( this->mapToGlobal(QPoint(this->width()/2, this->height()/2)) ); - emit StartMoving(PLUGID); - } - - void slotStartResize(){ - QCursor::setPos( this->mapToGlobal(QPoint(this->width()/2, this->height()/2)) ); - emit StartResizing(PLUGID); - } - - void slotRemovePlugin(){ - removeSettings(true); - emit RemovePlugin(PLUGID); - } - -protected: - void mousePressEvent(QMouseEvent *ev){ - if(!dragTimer->isActive() && ev->buttons().testFlag(Qt::LeftButton) ){ dragTimer->start(); } - QWidget::mousePressEvent(ev); - } - void mouseReleaseEvent(QMouseEvent *ev){ - if(dragTimer->isActive()){ dragTimer->stop(); } - QWidget::mouseReleaseEvent(ev); - } - void mouseMoveEvent(QMouseEvent *ev){ - if(ev->buttons().testFlag(Qt::LeftButton)){ - if(dragTimer->isActive()){ dragTimer->stop(); } - slotStartMove(); - } - QWidget::mouseMoveEvent(ev); - } - void resizeEvent(QResizeEvent *ev){ - emit PluginResized(); - QFrame::resizeEvent(ev); //do normal processing - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/NewDP.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/NewDP.h deleted file mode 100644 index e28b8c61..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/NewDP.h +++ /dev/null @@ -1,63 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is the interface to load all the different desktop plugins -//=========================================== -#ifndef _LUMINA_DESKTOP_NEW_DESKTOP_PLUGIN_H -#define _LUMINA_DESKTOP_NEW_DESKTOP_PLUGIN_H - -#include <QDebug> - -//List all the individual plugin includes here -#include "LDPlugin.h" -//#include "SamplePlugin.h" -#include "calendar/CalendarPlugin.h" -#include "applauncher/AppLauncherPlugin.h" -#include "desktopview/DesktopViewPlugin.h" -#include "notepad/NotepadPlugin.h" -#include "audioplayer/PlayerWidget.h" -#include "systemmonitor/MonitorWidget.h" -//#include "quickcontainer/QuickDPlugin.h" -//#include "messagecenter/MessageCenter.h" -#include "rssreader/RSSFeedPlugin.h" - -class NewDP{ -public: - static LDPlugin* createPlugin(QString plugin, QWidget* parent=0){ - //qDebug() << "Create Plugin:" << plugin; - LDPlugin *plug = 0; - /*if(plugin.section("---",0,0)=="sample"){ - plug = new SamplePlugin(parent, plugin); - }else */ - if(plugin.section("---",0,0)=="calendar"){ - plug = new CalendarPlugin(parent, plugin); - }else if(plugin.section("---",0,0).section("::",0,0)=="applauncher"){ - //This plugin can be pre-initialized to a file path after the "::" delimiter - plug = new AppLauncherPlugin(parent, plugin); - }else if(plugin.section("---",0,0)=="desktopview"){ - plug = new DesktopViewPlugin(parent, plugin); - }else if(plugin.section("---",0,0)=="notepad"){ - plug = new NotePadPlugin(parent, plugin); - }else if(plugin.section("---",0,0)=="audioplayer"){ - plug = new AudioPlayerPlugin(parent, plugin); - }else if(plugin.section("---",0,0)=="systemmonitor"){ - plug = new SysMonitorPlugin(parent, plugin); - //}else if(plugin.section("---",0,0)=="messagecenter"){ - //plug = new MessageCenterPlugin(parent, plugin); - //}else if(plugin.section("---",0,0).startsWith("quick-") && LUtils::validQuickPlugin(plugin.section("---",0,0)) ){ - //plug = new QuickDPlugin(parent, plugin); - }else if(plugin.section("---",0,0)=="rssreader"){ - plug = new RSSFeedPlugin(parent, plugin); - }else{ - qWarning() << "Invalid Desktop Plugin:"<<plugin << " -- Ignored"; - } - //qDebug() << " -- done"; - return plug; - } - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/SamplePlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/SamplePlugin.h deleted file mode 100644 index 4a790c2d..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/SamplePlugin.h +++ /dev/null @@ -1,38 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is a quick sample desktop plugin -//=========================================== -#ifndef _LUMINA_DESKTOP_DESKTOP_PLUGIN_SAMPLE_H -#define _LUMINA_DESKTOP_DESKTOP_PLUGIN_SAMPLE_H - -#include <QPushButton> -#include <QMessageBox> -#include <QVBoxLayout> -#include "LDPlugin.h" - -class SamplePlugin : public LDPlugin{ - Q_OBJECT -public: - SamplePlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){ - this->setLayout( new QVBoxLayout()); - this->layout()->setContentsMargins(0,0,0,0); - button = new QPushButton("sample"); - this->layout()->addWidget(button); - connect(button, SIGNAL(clicked()), this, SLOT(showMessage()) ); - } - - ~SamplePlugin(){} - -private: - QPushButton *button; - -private slots: - void showMessage(){ - QMessageBox::information(this,"sample","sample desktop plugin works"); - } -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/AppLauncherPlugin.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/AppLauncherPlugin.cpp deleted file mode 100644 index 3be19faa..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/AppLauncherPlugin.cpp +++ /dev/null @@ -1,145 +0,0 @@ -#include "AppLauncherPlugin.h" -#include "../../LSession.h" -#include "OutlineToolButton.h" - -#define OUTMARGIN 10 //special margin for fonts due to the outlining effect from the OutlineToolbutton - -AppLauncherPlugin::AppLauncherPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){ - QVBoxLayout *lay = new QVBoxLayout(); - this->setLayout(lay); - lay->setContentsMargins(0,0,0,0); - button = new OutlineToolButton(this); - button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); - button->setAutoRaise(true); - button->setText("...\n..."); //Need to set something here so that initial sizing works properly - button->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); - lay->addWidget(button, 0, Qt::AlignCenter); - connect(button, SIGNAL(DoubleClicked()), this, SLOT(buttonClicked()) ); - button->setContextMenuPolicy(Qt::NoContextMenu); - watcher = new QFileSystemWatcher(this); - connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT( loadButton()) ); - - connect(this, SIGNAL(PluginActivated()), this, SLOT(buttonClicked()) ); //in case they use the context menu to launch it. - loadButton(); - //QTimer::singleShot(0,this, SLOT(loadButton()) ); -} - -void AppLauncherPlugin::Cleanup(){ - //This is run only when the plugin was forcibly closed/removed - -} - -void AppLauncherPlugin::loadButton(){ - QString def = this->ID().section("::",1,50).section("---",0,0).simplified(); - QString path = this->readSetting("applicationpath",def).toString(); //use the default if necessary - //qDebug() << "Default Application Launcher:" << def << path; - bool ok = QFile::exists(path); - if(!ok){ emit RemovePlugin(this->ID()); return;} - int icosize = this->height()-4 - 2.2*button->fontMetrics().height(); - button->setFixedSize( this->width()-4, this->height()-4); - button->setIconSize( QSize(icosize,icosize) ); - QString txt; - if(path.endsWith(".desktop") && ok){ - XDGDesktop file(path); - ok = !file.name.isEmpty(); - if(!ok){ - button->setWhatsThis(""); - button->setIcon( QIcon(LXDG::findIcon("quickopen-file","").pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) ); - txt = tr("Click to Set"); - if(!watcher->files().isEmpty()){ watcher->removePaths(watcher->files()); } - }else{ - button->setWhatsThis(file.filePath); - button->setIcon( QIcon(LXDG::findIcon(file.icon,"system-run").pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) ); - txt = file.name; - if(!watcher->files().isEmpty()){ watcher->removePaths(watcher->files()); } - watcher->addPath(file.filePath); //make sure to update this shortcut if the file changes - } - }else if(ok){ - QFileInfo info(path); - button->setWhatsThis(info.absoluteFilePath()); - if(info.isDir()){ - button->setIcon( LXDG::findIcon("folder","") ); - }else if(LUtils::imageExtensions().contains(info.suffix().toLower()) ){ - QPixmap pix; - if(pix.load(path)){ button->setIcon( QIcon(pix.scaled(256,256)) ); } //max size for thumbnails in memory - else{ button->setIcon( LXDG::findIcon("dialog-cancel","") ); } - }else{ - button->setIcon( QIcon(LXDG::findMimeIcon(path).pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) ); - } - txt = info.fileName(); - if(!watcher->files().isEmpty()){ watcher->removePaths(watcher->files()); } - watcher->addPath(path); //make sure to update this shortcut if the file changes - }else{ - //InValid File - button->setWhatsThis(""); - button->setIcon( QIcon(LXDG::findIcon("quickopen","dialog-cancel").pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) ); - button->setText( tr("Click to Set") ); - if(!watcher->files().isEmpty()){ watcher->removePaths(watcher->files()); } - } - //If the file is a symlink, put the overlay on the icon - if(QFileInfo(path).isSymLink()){ - QImage img = button->icon().pixmap(QSize(icosize,icosize)).toImage(); - int oSize = icosize/3; //overlay size - QPixmap overlay = LXDG::findIcon("emblem-symbolic-link").pixmap(oSize,oSize).scaled(oSize,oSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); - QPainter painter(&img); - painter.drawPixmap(icosize-oSize,icosize-oSize,overlay); //put it in the bottom-right corner - button->setIcon( QIcon(QPixmap::fromImage(img)) ); - } - //Now adjust the visible text as necessary based on font/grid sizing - button->setToolTip(txt); - //Double check that the visual icon size matches the requested size - otherwise upscale the icon - if(button->fontMetrics().width(txt) > (button->width()-OUTMARGIN) ){ - //Text too long, try to show it on two lines - //txt = button->fontMetrics().elidedText(txt, Qt::ElideRight, 2*(button->width()-OUTMARGIN), Qt::TextWordWrap); - txt =txt.section(" ",0,2).replace(" ","\n"); //First take care of any natural breaks - //Go through and combine any lines - if(txt.contains("\n")){ - //need to check each line - QStringList txtL = txt.split("\n"); - for(int i=0; i<txtL.length(); i++){ - if(( i+1<txtL.length()) && (button->fontMetrics().width(txtL[i]) < button->width()/2) ){ - txtL[i] = txtL[i]+" "+txtL[i+1]; - txtL.removeAt(i+1); - } - } - txt = txtL.join("\n").section("\n",0,2); - } - - if(txt.contains("\n")){ - //need to check each line - QStringList txtL = txt.split("\n"); - for(int i=0; i<txtL.length(); i++){ - if(i>1){ txtL.removeAt(i); i--; } //Only take the first two lines - else{ txtL[i] = button->fontMetrics().elidedText(txtL[i], Qt::ElideRight, (button->width()-OUTMARGIN) ); } - } - txt = txtL.join("\n"); - }else{ - txt = this->fontMetrics().elidedText(txt,Qt::ElideRight, 2*(button->width()-OUTMARGIN)); - //Now split the line in half for the two lines - txt.insert( ((txt.count())/2), "\n"); - } - } - if(!txt.contains("\n")){ txt.append("\n "); } //always use two lines - //qDebug() << " - Setting Button Text:" << txt; - button->setText(txt); - - QTimer::singleShot(100, this, SLOT(update()) ); //Make sure to re-draw the image in a moment -} - -void AppLauncherPlugin::buttonClicked(){ - QString path = button->whatsThis(); - if(path.isEmpty() || !QFile::exists(path) ){ - //prompt for the user to select an application - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); //LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ); - QStringList names; - for(int i=0; i<apps.length(); i++){ names << apps[i]->name; } - bool ok = false; - QString app = QInputDialog::getItem(this, tr("Select Application"), tr("Name:"), names, 0, false, &ok); - if(!ok || names.indexOf(app)<0){ return; } //cancelled - this->saveSetting("applicationpath", apps[ names.indexOf(app) ]->filePath); - QTimer::singleShot(0,this, SLOT(loadButton())); - }else{ - LSession::LaunchApplication("lumina-open \""+path+"\""); - } - -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/AppLauncherPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/AppLauncherPlugin.h deleted file mode 100644 index a0f6a7cd..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/AppLauncherPlugin.h +++ /dev/null @@ -1,59 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is a quick sample desktop plugin -//=========================================== -#ifndef _LUMINA_DESKTOP_DESKTOP_PLUGIN_APPLICATION_LAUNCHER_H -#define _LUMINA_DESKTOP_DESKTOP_PLUGIN_APPLICATION_LAUNCHER_H - -#include <QToolButton> -#include <QInputDialog> -#include <QVBoxLayout> -#include <QProcess> -#include <QFile> -#include <QFileSystemWatcher> -#include <QTimer> -#include <QMenu> -#include <QCursor> - -#include "../LDPlugin.h" - -#include <LuminaXDG.h> - -class AppLauncherPlugin : public LDPlugin{ - Q_OBJECT -public: - AppLauncherPlugin(QWidget* parent, QString ID); - ~AppLauncherPlugin(){} - - void Cleanup(); //special function for final cleanup - -private: - QToolButton *button; - QFileSystemWatcher *watcher; - //QMenu *menu; - -private slots: - void loadButton(); - void buttonClicked(); - //void openContextMenu(); - - //void increaseIconSize(); - //void decreaseIconSize(); - //void deleteFile(); - -public slots: - void LocaleChange(){ - loadButton(); //force reload - } - -protected: - void resizeEvent(QResizeEvent *ev){ - LDPlugin::resizeEvent(ev); - QTimer::singleShot(100, this, SLOT(loadButton()) ); - } -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/OutlineToolButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/OutlineToolButton.h deleted file mode 100644 index 24410e75..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/applauncher/OutlineToolButton.h +++ /dev/null @@ -1,99 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is a simple subclass for a QToolButton with black/white text (for transparent backgrounds) -//=========================================== -#ifndef _LUMINA_DESKTOP_PLUGIN_APPLAUNCHER_OUTLINE_TOOLBUTTON_H -#define _LUMINA_DESKTOP_PLUGIN_APPLAUNCHER_OUTLINE_TOOLBUTTON_H - -#include <QToolButton> -#include <QPainter> -#include <QPainterPath> -#include <QPen> -#include <QStyle> -#include <QStyleOption> -#include <QStylePainter> -#include <QFont> -#include <QDebug> -#include <QMouseEvent> - - -class OutlineToolButton : public QToolButton{ - Q_OBJECT -public: - OutlineToolButton(QWidget *parent=0) : QToolButton(parent){ - //This button needs slightly different font settings - do this in the constructor so that other widgets can take it into account. - QFont font = this->font(); - font.setStyleStrategy(QFont::PreferAntialias); //Always set the font strategy (just in case it starts working down the road) - this->setFont(font); - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - } - ~OutlineToolButton(){} - -signals: - void DoubleClicked(); - -protected: - void mouseDoubleClickEvent(QMouseEvent *ev){ - ev->accept(); - emit DoubleClicked(); - } - void mousePressEvent(QMouseEvent *ev){ - ev->ignore(); - } - void mouseReleaseEvent(QMouseEvent *ev){ - ev->ignore(); - } - - void paintEvent(QPaintEvent*){ - /* NOTE: This is what a standard QToolButton performs (peeked at Qt source code for this tidbit) - QStylePainter p(this); - QStyleOptionToolButton opt; - initStyleOption(&opt); - p.drawComplexControl(QStyle::CC_ToolButton, opt); - */ - - //Modify the standard QToolButton routine to paint the text differently - QStylePainter p(this); - QStyleOptionToolButton opt; - initStyleOption(&opt); - opt.font = this->property("font").value<QFont>(); //This ensures that the stylesheet values are incorporated - opt.font.setStyleStrategy(QFont::PreferAntialias); //Always set the font strategy (just in case it starts working down the road) - opt.font.setKerning(true); - opt.fontMetrics = QFontMetrics(opt.font); - opt.text.clear(); //Don't paint the text yet - just the background/icon - p.drawComplexControl(QStyle::CC_ToolButton, opt); //This does all the normal QToolButton stuff - just not text - //Now get the text rectangle for the widget - QRect box = p.style()->itemTextRect(opt.fontMetrics, opt.rect, Qt::AlignHCenter | Qt::AlignBottom, true, this->text()); - //Get the QColors for the outline/text - QColor textC = opt.palette.text().color().toHsl(); //need the lightness value in a moment - QColor outC = textC; - //qDebug() << "Font Color Values:" << textC << textC.lightness() << textC.lightnessF(); - if(textC.lightnessF() > 0.5){ outC.setHsl(textC.hue(), textC.hslSaturation(), 0, 90); } - else{outC.setHsl(textC.hue(), textC.hslSaturation(), 255, 50); } - //qDebug() << "Outline Color Values:" << outC; - //Now get the size of the outline border (need to scale for high-res monitors) - qreal OWidth = opt.fontMetrics.width("o")/2.0; - //qDebug() << "Outline Width:" << OWidth; - //Now generate a QPainterPath for the text - QPainterPath path; - QStringList txt = this->text().split("\n"); //need each line independently, the newline actually gets painted otherwise - for(int i=0; i<txt.length(); i++){ - path.addText(box.center().x() - (opt.fontMetrics.width(txt[i])/2), box.y()+((i+1)*(box.height()/txt.length()))-opt.fontMetrics.descent(), opt.font, txt[i] ); - } - path.setFillRule(Qt::WindingFill); - //Now paint the text - QRadialGradient RG(box.center(), box.width()*1.5); //width is always going to be greater than height - RG.setColorAt(0, outC); - RG.setColorAt(1, Qt::transparent); - p.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); //need antialiasing for this to work well (sub-pixel painting) - p.strokePath(path, QPen(QBrush(RG),OWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin) ); //This will be the outline - 1pixel thick, semi-transparent - p.fillPath(path, QBrush(textC)); //this will be the inside/text color - - } - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.cpp deleted file mode 100644 index 722a5865..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.cpp +++ /dev/null @@ -1,271 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "PlayerWidget.h" -#include "ui_PlayerWidget.h" - -#include <QDir> -#include <QUrl> -#include <QInputDialog> -#include <QFileDialog> -#include <LuminaXDG.h> -#include <QDebug> -#include <QDesktopWidget> - -PlayerWidget::PlayerWidget(QWidget *parent) : QWidget(parent), ui(new Ui::PlayerWidget()){ - ui->setupUi(this); //load the designer form - PLAYER = new QMediaPlayer(this); - PLAYER->setVolume(100); - PLAYER->setNotifyInterval(1000); //1 second interval (just needs to be a rough estimate) - PLAYLIST = new QMediaPlaylist(this); - PLAYLIST->setPlaybackMode(QMediaPlaylist::Sequential); - PLAYER->setPlaylist(PLAYLIST); - - configMenu = new QMenu(this); - ui->tool_config->setMenu(configMenu); - addMenu = new QMenu(this); - ui->tool_add->setMenu(addMenu); - - updatinglists = false; //start off as false - - ui->combo_playlist->setContextMenuPolicy(Qt::NoContextMenu); - - LoadIcons(); - playerStateChanged(); //update button visibility - currentSongChanged(); - //Connect all the signals/slots - //connect(infoTimer, SIGNAL(timeout()), this, SLOT(rotateTrackInfo()) ); - connect(PLAYER, SIGNAL(positionChanged(qint64)),this, SLOT(updateProgress(qint64)) ); - connect(PLAYER, SIGNAL(durationChanged(qint64)), this, SLOT(updateMaxProgress(qint64)) ); - connect(PLAYLIST, SIGNAL(mediaChanged(int, int)), this, SLOT(playlistChanged()) ); - connect(PLAYER, SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(playerStateChanged()) ); - connect(PLAYLIST, SIGNAL(currentMediaChanged(const QMediaContent&)), this, SLOT(currentSongChanged()) ); - connect(ui->combo_playlist, SIGNAL(currentIndexChanged(int)), this, SLOT(userlistSelectionChanged()) ); - connect(ui->tool_play, SIGNAL(clicked()), this, SLOT(playClicked()) ); - connect(ui->tool_pause, SIGNAL(clicked()), this, SLOT(pauseClicked()) ); - connect(ui->tool_stop, SIGNAL(clicked()), this, SLOT(stopClicked()) ); - connect(ui->tool_next, SIGNAL(clicked()), this, SLOT(nextClicked()) ); - connect(ui->tool_prev, SIGNAL(clicked()), this, SLOT(prevClicked()) ); - -} - -PlayerWidget::~PlayerWidget(){ - //qDebug() << "Removing PlayerWidget"; -} - -void PlayerWidget::LoadIcons(){ - ui->tool_stop->setIcon( LXDG::findIcon("media-playback-stop","") ); - ui->tool_play->setIcon( LXDG::findIcon("media-playback-start","") ); - ui->tool_pause->setIcon( LXDG::findIcon("media-playback-pause","") ); - ui->tool_next->setIcon( LXDG::findIcon("media-skip-forward","") ); - ui->tool_prev->setIcon( LXDG::findIcon("media-skip-backward","") ); - ui->tool_add->setIcon( LXDG::findIcon("list-add","") ); - ui->tool_config->setIcon( LXDG::findIcon("configure","") ); - //Now re-assemble the menus as well - configMenu->clear(); - configMenu->addAction(LXDG::findIcon("media-eject",""), tr("Clear Playlist"), this, SLOT(ClearPlaylist())); - configMenu->addAction(LXDG::findIcon("roll",""), tr("Shuffle Playlist"), this, SLOT(ShufflePlaylist())); - addMenu->clear(); - addMenu->addAction(LXDG::findIcon("document-new",""), tr("Add Files"), this, SLOT(AddFilesToPlaylist())); - addMenu->addAction(LXDG::findIcon("folder-new",""), tr("Add Directory"), this, SLOT(AddDirToPlaylist())); - addMenu->addAction(LXDG::findIcon("download",""), tr("Add URL"), this, SLOT(AddURLToPlaylist())); -} - -void PlayerWidget::playClicked(){ - PLAYER->play(); -} - -void PlayerWidget::pauseClicked(){ - PLAYER->pause(); -} - -void PlayerWidget::stopClicked(){ - PLAYER->stop(); -} - -void PlayerWidget::nextClicked(){ - PLAYLIST->next(); -} - -void PlayerWidget::prevClicked(){ - PLAYLIST->previous(); -} - -void PlayerWidget::AddFilesToPlaylist(){ - //Prompt the user to select multimedia files - QFileDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setFileMode(QFileDialog::ExistingFiles); - dlg.setAcceptMode(QFileDialog::AcceptOpen); - dlg.setNameFilter( tr("Multimedia Files")+" ("+LXDG::findAVFileExtensions().join(" ")+")"); - dlg.setWindowTitle(tr("Select Multimedia Files")); - dlg.setWindowIcon( LXDG::findIcon("file-open","") ); - dlg.setDirectory(QDir::homePath()); //start in the home directory - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - QApplication::processEvents(); - } - QList<QUrl> files = dlg.selectedUrls(); - if(files.isEmpty() || dlg.result()!=QDialog::Accepted){ return; } //cancelled - //Make this use show/processEvents later - //QList<QUrl> files = QFileDialog::getOpenFileUrls(0, tr("Select Multimedia Files"), QDir::homePath(), "Multimedia Files ("+LXDG::findAVFileExtensions().join(" ")+")"); - QList<QMediaContent> urls; - for(int i=0; i<files.length(); i++){ - urls << QMediaContent(files[i]); - } - PLAYLIST->addMedia(urls); - playlistChanged(); -} - -void PlayerWidget::AddDirToPlaylist(){ - QFileDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setFileMode(QFileDialog::Directory); - dlg.setOption(QFileDialog::ShowDirsOnly, true); - dlg.setAcceptMode(QFileDialog::AcceptOpen); - dlg.setWindowTitle(tr("Select Multimedia Directory")); - dlg.setWindowIcon( LXDG::findIcon("folder-open","") ); - dlg.setDirectory(QDir::homePath()); //start in the home directory - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - QApplication::processEvents(); - } - if(dlg.result() != QDialog::Accepted){ return; } //cancelled - QStringList sel = dlg.selectedFiles(); - if(sel.isEmpty()){ return; } //cancelled - QString dirpath = sel.first(); //QFileDialog::getExistingDirectory(0, tr("Select a Multimedia Directory"), QDir::homePath() ); - if(dirpath.isEmpty()){ return; } //cancelled - QDir dir(dirpath); - QFileInfoList files = dir.entryInfoList(LXDG::findAVFileExtensions(), QDir::Files | QDir::NoDotAndDotDot, QDir::Name); - if(files.isEmpty()){ return; } //nothing in this directory - QList<QMediaContent> urls; - for(int i=0; i<files.length(); i++){ - urls << QMediaContent(QUrl::fromLocalFile(files[i].absoluteFilePath()) ); - } - PLAYLIST->addMedia(urls); - playlistChanged(); -} - -void PlayerWidget::AddURLToPlaylist(){ - QInputDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setInputMode(QInputDialog::TextInput); - dlg.setLabelText(tr("Enter a valid URL for a multimedia file or stream:")); - dlg.setTextEchoMode(QLineEdit::Normal); - dlg.setWindowTitle(tr("Multimedia URL")); - dlg.setWindowIcon( LXDG::findIcon("download","") ); - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - QApplication::processEvents(); - } - QString url = dlg.textValue(); - if(url.isEmpty() || dlg.result()!=QDialog::Accepted){ return; } //cancelled - - //QString url = QInputDialog::getText(0, tr("Multimedia URL"), tr("Enter a valid URL for a multimedia file or stream"), QLineEdit::Normal); - //if(url.isEmpty()){ return; } - QUrl newurl(url); - if(!newurl.isValid()){ return; } //invalid URL - PLAYLIST->addMedia(newurl); - playlistChanged(); -} - -void PlayerWidget::ClearPlaylist(){ - PLAYER->stop(); - PLAYLIST->clear(); - playlistChanged(); -} - -void PlayerWidget::ShufflePlaylist(){ - PLAYLIST->shuffle(); -} - - -void PlayerWidget::userlistSelectionChanged(){ //front-end combobox was changed by the user - if(updatinglists){ return; } - PLAYLIST->setCurrentIndex( ui->combo_playlist->currentIndex() ); -} - -void PlayerWidget::playerStateChanged(){ - switch( PLAYER->state() ){ - case QMediaPlayer::StoppedState: - ui->tool_stop->setVisible(false); - ui->tool_play->setVisible(true); - ui->tool_pause->setVisible(false); - ui->progressBar->setVisible(false); - break; - case QMediaPlayer::PausedState: - ui->tool_stop->setVisible(true); - ui->tool_play->setVisible(true); - ui->tool_pause->setVisible(false); - ui->progressBar->setVisible(true); - break; - case QMediaPlayer::PlayingState: - ui->tool_stop->setVisible(true); - ui->tool_play->setVisible(false); - ui->tool_pause->setVisible(true); - ui->progressBar->setVisible(true); - break; - } - -} - -void PlayerWidget::playlistChanged(){ - updatinglists = true; - ui->combo_playlist->clear(); - for(int i=0; i<PLAYLIST->mediaCount(); i++){ - QUrl url = PLAYLIST->media(i).canonicalUrl(); - if(url.isLocalFile()){ - ui->combo_playlist->addItem(LXDG::findMimeIcon(url.fileName().section(".",-1)), url.fileName() ); - }else{ - ui->combo_playlist->addItem(LXDG::findIcon("download",""), url.toString() ); - } - } - if(PLAYLIST->currentIndex()<0 && PLAYLIST->mediaCount()>0){ PLAYLIST->setCurrentIndex(0); } - ui->combo_playlist->setCurrentIndex(PLAYLIST->currentIndex()); - - updatinglists = false; -} - -void PlayerWidget::currentSongChanged(){ - if(PLAYLIST->currentIndex() != ui->combo_playlist->currentIndex()){ - updatinglists = true; - ui->combo_playlist->setCurrentIndex(PLAYLIST->currentIndex()); - updatinglists = false; - } - ui->tool_next->setEnabled( PLAYLIST->nextIndex() >= 0 ); - ui->tool_prev->setEnabled( PLAYLIST->previousIndex() >= 0); - ui->label_num->setText( QString::number( PLAYLIST->currentIndex()+1)+"/"+QString::number(PLAYLIST->mediaCount()) ); - ui->progressBar->setRange(0, PLAYER->duration() ); - ui->progressBar->setValue(0); -} - -void PlayerWidget::updateProgress(qint64 val){ - //qDebug() << "Update Progress Bar:" << val; - ui->progressBar->setValue(val); -} - -void PlayerWidget::updateMaxProgress(qint64 val){ - ui->progressBar->setRange(0,val); -} - - -AudioPlayerPlugin::AudioPlayerPlugin(QWidget *parent, QString ID) : LDPlugin(parent, ID){ - player = new PlayerWidget(this); - this->setLayout( new QVBoxLayout() ); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(player); - -} - -AudioPlayerPlugin::~AudioPlayerPlugin(){ - //qDebug() << "Remove AudioPlayerPlugin"; -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.h deleted file mode 100644 index 6aaeac4c..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.h +++ /dev/null @@ -1,84 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin is a simple audio player on the desktop -//=========================================== -#ifndef _LUMINA_DESKTOP_PLUGIN_AUDIO_PLAYER_WIDGET_H -#define _LUMINA_DESKTOP_PLUGIN_AUDIO_PLAYER_WIDGET_H - -#include <QMediaPlaylist> -#include <QMediaPlayer> -#include <QTimer> -#include <QWidget> -#include <QMenu> - -#include "../LDPlugin.h" - -namespace Ui{ - class PlayerWidget; -}; - -class PlayerWidget : public QWidget{ - Q_OBJECT -public: - PlayerWidget(QWidget *parent = 0); - ~PlayerWidget(); - -public slots: - void LoadIcons(); - -private: - Ui::PlayerWidget *ui; - QMediaPlaylist *PLAYLIST; - QMediaPlayer *PLAYER; - QMenu *configMenu, *addMenu; - bool updatinglists; - -private slots: - void playClicked(); - void pauseClicked(); - void stopClicked(); - void nextClicked(); - void prevClicked(); - - void AddFilesToPlaylist(); - void AddDirToPlaylist(); - void AddURLToPlaylist(); - void ClearPlaylist(); - void ShufflePlaylist(); - void userlistSelectionChanged(); //front-end combobox was changed by the user - void playerStateChanged(); - void playlistChanged(); //list of items changed - void currentSongChanged(); - void updateProgress(qint64 val); - void updateMaxProgress(qint64 val); -}; - -// Wrapper class to put this into a desktop plugin container -class AudioPlayerPlugin : public LDPlugin{ - Q_OBJECT -public: - AudioPlayerPlugin(QWidget* parent, QString ID); - ~AudioPlayerPlugin(); - - virtual QSize defaultPluginSize(){ - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(3,1); - } - -private: - PlayerWidget *player; - -public slots: - void LocaleChange(){ - QTimer::singleShot(0,player, SLOT(LoadIcons())); - } - void ThemeChange(){ - QTimer::singleShot(0,player, SLOT(LoadIcons())); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.ui b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.ui deleted file mode 100644 index b1e7ee59..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/audioplayer/PlayerWidget.ui +++ /dev/null @@ -1,182 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>PlayerWidget</class> - <widget class="QWidget" name="PlayerWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>346</width> - <height>81</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <property name="styleSheet"> - <string notr="true">QToolButton::menu-indicator{ image: none; }</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>4</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QToolButton" name="tool_config"> - <property name="text"> - <string notr="true">Config</string> - </property> - <property name="popupMode"> - <enum>QToolButton::InstantPopup</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_add"> - <property name="text"> - <string notr="true">Add</string> - </property> - <property name="popupMode"> - <enum>QToolButton::InstantPopup</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QToolButton" name="tool_prev"> - <property name="text"> - <string notr="true">prev</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_num"> - <property name="text"> - <string notr="true">1/10</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_next"> - <property name="text"> - <string notr="true">next</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QComboBox" name="combo_playlist"/> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QToolButton" name="tool_play"> - <property name="text"> - <string notr="true">Play</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_pause"> - <property name="text"> - <string notr="true">Pause</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_stop"> - <property name="text"> - <string notr="true">Stop</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QProgressBar" name="progressBar"> - <property name="value"> - <number>24</number> - </property> - <property name="textVisible"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/calendar/CalendarPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/calendar/CalendarPlugin.h deleted file mode 100644 index abb138f7..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/calendar/CalendarPlugin.h +++ /dev/null @@ -1,59 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is a quick sample desktop plugin -//=========================================== -#ifndef _LUMINA_DESKTOP_DESKTOP_PLUGIN_CALENDAR_H -#define _LUMINA_DESKTOP_DESKTOP_PLUGIN_CALENDAR_H - -#include <QCalendarWidget> -#include <QVBoxLayout> -#include <QDate> -#include <QTimer> -#include "../LDPlugin.h" - -class CalendarPlugin : public LDPlugin{ - Q_OBJECT -private: - QCalendarWidget *cal; - QTimer *timer; - -public: - CalendarPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){ - this->setLayout( new QVBoxLayout()); - this->layout()->setContentsMargins(0,0,0,0); - cal = new QCalendarWidget(this); - cal->setSelectionMode(QCalendarWidget::NoSelection); - this->layout()->addWidget(cal); - timer = new QTimer(this); - timer->setInterval(1800000); //30 minute refresh timer - timer->start(); - connect(timer, SIGNAL(timeout()), this, SLOT(updateDate()) ); - QTimer::singleShot(0,this, SLOT(updateDate()) ); - connect(this, SIGNAL(PluginResized()), this, SLOT(UpdateCalendarSize())); - } - - ~CalendarPlugin(){ timer->stop(); } - - virtual QSize defaultPluginSize(){ - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(3,2); - } - -private slots: - void updateDate(){ - if(cal->selectedDate() != QDate::currentDate()){ - cal->setSelectedDate(QDate::currentDate()); - cal->showSelectedDate(); - } - } - void UpdateCalendarSize(){ - cal->setFixedSize(this->size()); - } - - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktop-plugins.pri b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktop-plugins.pri deleted file mode 100644 index 8376316a..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktop-plugins.pri +++ /dev/null @@ -1,24 +0,0 @@ -SOURCES += $$PWD/applauncher/AppLauncherPlugin.cpp \ - $$PWD/desktopview/DesktopViewPlugin.cpp \ - $$PWD/notepad/NotepadPlugin.cpp \ - $$PWD/audioplayer/PlayerWidget.cpp \ - $$PWD/systemmonitor/MonitorWidget.cpp \ - $$PWD/rssreader/RSSFeedPlugin.cpp \ - $$PWD/rssreader/RSSObjects.cpp -# $$PWD/messagecenter/MessageCenter.cpp - -HEADERS += $$PWD/calendar/CalendarPlugin.h \ - $$PWD/applauncher/AppLauncherPlugin.h \ - $$PWD/applauncher/OutlineToolButton.h \ - $$PWD/desktopview/DesktopViewPlugin.h \ - $$PWD/notepad/NotepadPlugin.h \ - $$PWD/audioplayer/PlayerWidget.h \ - $$PWD/systemmonitor/MonitorWidget.h \ - $$PWD/rssreader/RSSFeedPlugin.h \ - $$PWD/rssreader/RSSObjects.h -# $$PWD/quickcontainer/QuickDPlugin.h -# $$PWD/messagecenter/MessageCenter.h - -FORMS += $$PWD/audioplayer/PlayerWidget.ui \ - $$PWD/systemmonitor/MonitorWidget.ui \ - $$PWD/rssreader/RSSFeedPlugin.ui diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktopview/DesktopViewPlugin.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktopview/DesktopViewPlugin.cpp deleted file mode 100644 index 90f3374b..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktopview/DesktopViewPlugin.cpp +++ /dev/null @@ -1,214 +0,0 @@ -#include "DesktopViewPlugin.h" - -#include <QFileInfo> -#include <QDir> -#include <QClipboard> -#include <QMimeData> -#include <QImageReader> - -#include <LuminaXDG.h> -#include "LSession.h" - - -DesktopViewPlugin::DesktopViewPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){ - this->setLayout( new QVBoxLayout()); - this->layout()->setContentsMargins(0,0,0,0); - - list = new QListWidget(this); - list->setViewMode(QListView::IconMode); - list->setFlow(QListWidget::TopToBottom); //Qt bug workaround - need the opposite flow in the widget constructor - list->setWrapping(true); - list->setSpacing(4); - list->setSelectionBehavior(QAbstractItemView::SelectItems); - list->setSelectionMode(QAbstractItemView::ExtendedSelection); - list->setContextMenuPolicy(Qt::CustomContextMenu); - list->setMovement(QListView::Snap); //make sure items are "stuck" in the grid - - menu = new QMenu(this); - menu->addAction( LXDG::findIcon("run-build-file",""), tr("Open"), this, SLOT(runItems()) ); - menu->addSeparator(); - menu->addAction( LXDG::findIcon("edit-cut",""), tr("Cut"), this, SLOT(cutItems()) ); - menu->addAction( LXDG::findIcon("edit-copy",""), tr("Copy"), this, SLOT(copyItems()) ); - menu->addSeparator(); - menu->addAction( LXDG::findIcon("zoom-in",""), tr("Increase Icons"), this, SLOT(increaseIconSize()) ); - menu->addAction( LXDG::findIcon("zoom-out",""), tr("Decrease Icons"), this, SLOT(decreaseIconSize()) ); - menu->addSeparator(); - menu->addAction( LXDG::findIcon("edit-delete",""), tr("Delete"), this, SLOT(deleteItems()) ); - menu->addSeparator(); - if(LUtils::isValidBinary("lumina-fileinfo")){ - menu->addAction( LXDG::findIcon("system-search",""), tr("Properties"), this, SLOT(displayProperties()) ); - } - this->layout()->addWidget(list); - - connect(QApplication::instance(), SIGNAL(DesktopFilesChanged()), this, SLOT(updateContents()) ); - connect(list, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(runItems()) ); - connect(list, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showMenu(const QPoint&)) ); - QTimer::singleShot(1000,this, SLOT(updateContents()) ); //wait a second before loading contents -} - -DesktopViewPlugin::~DesktopViewPlugin(){ - -} - -void DesktopViewPlugin::runItems(){ - QList<QListWidgetItem*> sel = list->selectedItems(); - for(int i=0; i<sel.length(); i++){ - LSession::LaunchApplication("lumina-open \""+sel[i]->whatsThis()+"\""); - } -} - -void DesktopViewPlugin::copyItems(){ - QList<QListWidgetItem*> sel = list->selectedItems(); - if(sel.isEmpty()){ return; } //nothing selected - QStringList items; - //Format the data string - for(int i=0; i<sel.length(); i++){ - items << "copy::::"+sel[i]->whatsThis(); - } - //Now save that data to the global clipboard - QMimeData *dat = new QMimeData; - dat->clear(); - dat->setData("x-special/lumina-copied-files", items.join("\n").toLocal8Bit()); - QApplication::clipboard()->clear(); - QApplication::clipboard()->setMimeData(dat); -} - -void DesktopViewPlugin::cutItems(){ - QList<QListWidgetItem*> sel = list->selectedItems(); - if(sel.isEmpty()){ return; } //nothing selected - QStringList items; - //Format the data string - for(int i=0; i<sel.length(); i++){ - items << "cut::::"+sel[i]->whatsThis(); - } - //Now save that data to the global clipboard - QMimeData *dat = new QMimeData; - dat->clear(); - dat->setData("x-special/lumina-copied-files", items.join("\n").toLocal8Bit()); - QApplication::clipboard()->clear(); - QApplication::clipboard()->setMimeData(dat); -} - -void DesktopViewPlugin::deleteItems(){ - QList<QListWidgetItem*> sel = list->selectedItems(); - for(int i=0; i<sel.length(); i++){ - if(QFileInfo(sel[i]->whatsThis()).isDir()){ - QProcess::startDetached("rm -r \""+sel[i]->whatsThis()+"\""); - }else{ - QFile::remove(sel[i]->whatsThis()); - } - } -} - -void DesktopViewPlugin::showMenu(const QPoint &pos){ - //Make sure there is an item underneath the mouse first - if(list->itemAt(pos)!=0){ - menu->popup(this->mapToGlobal(pos)); - }else{ - //Pass the context menu request on to the desktop (emit it from the plugin) - this->showPluginMenu(); - //emit OpenDesktopMenu(); - } -} - -void DesktopViewPlugin::increaseIconSize(){ - int icosize = this->readSetting("IconSize",64).toInt(); - icosize+=16; //go in orders of 16 pixels - //list->setIconSize(QSize(icosize,icosize)); - this->saveSetting("IconSize",icosize); - QTimer::singleShot(10, this, SLOT(updateContents())); -} - -void DesktopViewPlugin::decreaseIconSize(){ - int icosize = this->readSetting("IconSize",64).toInt(); - if(icosize < 20){ return; } //too small to decrease more - icosize-=16; //go in orders of 16 pixels - //list->setIconSize(QSize(icosize,icosize)); - this->saveSetting("IconSize",icosize); - QTimer::singleShot(10,this, SLOT(updateContents())); -} - -void DesktopViewPlugin::updateContents(){ - list->clear(); - - int icosize = this->readSetting("IconSize",64).toInt(); - QSize gridSZ = QSize(qRound(1.8*icosize),icosize+4+(2*this->fontMetrics().height()) ); - //qDebug() << "Icon Size:" << icosize <<"Grid Size:" << gridSZ.width() << gridSZ.height(); - list->setGridSize(gridSZ); - list->setIconSize(QSize(icosize,icosize)); - QDir dir(QDir::homePath()+"/Desktop"); - QFileInfoList files = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Type | QDir::DirsFirst); - for(int i=0; i<files.length(); i++){ - QListWidgetItem *it = new QListWidgetItem; - it->setSizeHint(gridSZ); //ensure uniform item sizes - //it->setForeground(QBrush(Qt::black, Qt::Dense2Pattern)); //Try to use a font color which will always be visible - it->setTextAlignment(Qt::AlignCenter); - it->setWhatsThis(files[i].absoluteFilePath()); - QString txt; - if(files[i].isDir()){ - it->setIcon( LXDG::findIcon("folder","") ); - txt = files[i].fileName(); - }else if(files[i].suffix() == "desktop" ){ - XDGDesktop desk(files[i].absoluteFilePath()); - if(desk.isValid()){ - it->setIcon( LXDG::findIcon(desk.icon,"unknown") ); - if(desk.name.isEmpty()){ - txt = files[i].fileName(); - }else{ - txt = desk.name; - } - }else{ - //Revert back to a standard file handling - it->setIcon( LXDG::findMimeIcon(files[i].fileName()) ); - txt = files[i].fileName(); - } - }else if(LUtils::imageExtensions().contains(files[i].suffix().toLower()) ){ - it->setIcon( QIcon( QPixmap(files[i].absoluteFilePath()).scaled(icosize,icosize,Qt::IgnoreAspectRatio, Qt::SmoothTransformation) ) ); - txt = files[i].fileName(); - }else{ - it->setIcon( LXDG::findMimeIcon( files[i].fileName() ) ); - txt = files[i].fileName(); - } - //Add the sym-link overlay to the icon as necessary - if(files[i].isSymLink()){ - QImage img = it->icon().pixmap(QSize(icosize,icosize)).toImage(); - int oSize = icosize/2; //overlay size - QPixmap overlay = LXDG::findIcon("emblem-symbolic-link").pixmap(oSize,oSize).scaled(oSize,oSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); - QPainter painter(&img); - painter.drawPixmap(icosize-oSize,icosize-oSize,overlay); //put it in the bottom-right corner - it->setIcon( QIcon(QPixmap::fromImage(img)) ); - } - //Now adjust the visible text as necessary based on font/grid sizing - it->setToolTip(txt); - if(this->fontMetrics().width(txt) > (gridSZ.width()-4) ){ - //int dash = this->fontMetrics().width("-"); - //Text too long, try to show it on two lines - txt = txt.section(" ",0,2).replace(" ","\n"); //First take care of any natural breaks - if(txt.contains("\n")){ - //need to check each line - QStringList txtL = txt.split("\n"); - for(int i=0; i<txtL.length(); i++){ txtL[i] = this->fontMetrics().elidedText(txtL[i], Qt::ElideRight, gridSZ.width()-4); } - txt = txtL.join("\n"); - if(txtL.length()>2){ txt = txt.section("\n",0,1); } //only keep the first two lines - }else{ - txt = this->fontMetrics().elidedText(txt,Qt::ElideRight, 2*(gridSZ.width()-4)); - //Now split the line in half for the two lines - txt.insert( (txt.count()/2), "\n"); - } - }else{ - txt.append("\n "); //ensure two lines (2nd one invisible) - keeps formatting sane - } - it->setText(txt); - list->addItem(it); - if( (i%10) == 0){ QApplication::processEvents(); }//keep the UI snappy, every 10 items - } - list->setFlow(QListWidget::TopToBottom); //To ensure this is consistent - issues with putting it in the constructor - list->update(); //Re-paint the widget after all items are added -} - -void DesktopViewPlugin::displayProperties(){ - QList<QListWidgetItem*> sel = list->selectedItems(); - for(int i=0; i<sel.length(); i++){ - LSession::LaunchApplication("lumina-fileinfo \""+sel[i]->whatsThis()); - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktopview/DesktopViewPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktopview/DesktopViewPlugin.h deleted file mode 100644 index 046b6e5c..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/desktopview/DesktopViewPlugin.h +++ /dev/null @@ -1,55 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin is a listing/launcher for things in the ~/Desktop folder -//=========================================== -#ifndef _LUMINA_DESKTOP_DESKTOP_VIEW_PLUGIN_H -#define _LUMINA_DESKTOP_DESKTOP_VIEW_PLUGIN_H - -#include <QListWidget> -#include <QVBoxLayout> -#include <QTimer> -#include <QFileSystemWatcher> -#include <QMouseEvent> - -#include "../LDPlugin.h" - -class DesktopViewPlugin : public LDPlugin{ - Q_OBJECT -public: - DesktopViewPlugin(QWidget* parent, QString ID); - ~DesktopViewPlugin(); - - virtual QSize defaultPluginSize(){ - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(3,3); - } -private: - QListWidget *list; - QMenu *menu; - -private slots: - void runItems(); - void copyItems(); - void cutItems(); - void deleteItems(); - void showMenu(const QPoint&); - void increaseIconSize(); - void decreaseIconSize(); - void updateContents(); - void displayProperties(); - - -public slots: - void LocaleChange(){ - QTimer::singleShot(0,this, SLOT(updateContents())); - } - void ThemeChange(){ - QTimer::singleShot(0,this, SLOT(updateContents())); - } - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/LXDG-DBusNotifier.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/LXDG-DBusNotifier.h deleted file mode 100644 index 64413e95..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/LXDG-DBusNotifier.h +++ /dev/null @@ -1,17 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// Simple DBUS message handler for the FreeDesktop desktop notifications specification - - -class LXDG-DBusNotifier : public QDBusVirtualObkect{ - Q_OBJECT -public: - -private: - - -}; diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/MessageCenter.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/MessageCenter.cpp deleted file mode 100644 index df07a122..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/MessageCenter.cpp +++ /dev/null @@ -1,90 +0,0 @@ -#include "MessageCenter.h" - -#include <LuminaXDG.h> -#include <QVBoxLayout> -#include <QHBoxLayout> -#include <QDBusConnection> -#include <QDBusConnectionInterface> - -MessageCenterPlugin::MessageCenterPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){ - //Setup the UI - QVBoxLayout *vlay = new QVBoxLayout(); - this->setLayout( new QVBoxLayout() ); - this->layout()->setContentsMargins(0,0,0,0); - vlay->setContentsMargins(3,3,3,3); - frame = new QFrame(this); - frame->setObjectName("messagecenterbase"); - this->layout()->addWidget(frame); - frame->setLayout(vlay); - - - //Setup the title bar header buttons - QHBoxLayout *hlay = new QHBoxLayout(); - tool_clearall = new QToolButton(this); - tool_clearall->setAutoRaise(true); - tool_clearone = new QToolButton(this); - tool_clearone->setAutoRaise(true); - QWidget *spacer = new QWidget(this); - spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - hlay->addWidget(spacer); - hlay->addWidget(tool_clearone); - hlay->addWidget(tool_clearall); - vlay->addLayout(hlay); - - //Setup the main text widget - list_messages = new QListWidget(this); - list_messages->setSelectionMode(QAbstractItemView::SingleSelection); - list_messages->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - vlay->addWidget(list_messages); - - //Now setup the initial values - this->setInitialSize(200,300); - //Setup the button connections - connect(tool_clearall, SIGNAL(clicked()), this, SLOT(clearAllMessages()) ); - connect(tool_clearone, SIGNAL(clicked()), this, SLOT(clearSelectedMessage()) ); - - //Setup the DBUS signals/slots - if(QDBusConnection::sessionBus().isConnected()){ - if( QDBusConnection::sessionBus().registerService("org.freedesktop.Notifications") ){ - //Was able to register this service, also register everything it can do... - //SUPPORTED: "body", "body-hyperlinks", "body-markup", "icon-static" - - - } - QDBusConnection::sessionBus().connect("", "", "org.freedesktop.Notifications", "Notify", this, SLOT(newMessage(QString, uint, QString, QString, QString, QStringList, dict, int)) ); - QDBusConnection::sessionBus().interface().call("AddMatch", "interface='org.freedesktop.Notifications',member='Notify',type='method_call',eavesdrop='true'"); - qDebug() << "Available Session DBUS Services:" << QDBusConnection::sessionBus().interface()->registeredServiceNames().value(); - //connect(QString(), QString(), - } - if(QDBusConnection::systemBus().isConnected()){ - qDebug() << "Available System DBUS Services:" << QDBusConnection::systemBus().interface()->registeredServiceNames().value(); - } - - QTimer::singleShot(0,this, SLOT(loadIcons()) ); -} - -MessageCenterPlugin::~MessageCenterPlugin(){ - -} - -void MessageCenterPlugin::newMessage(QString summary, QString body){ - qDebug() << "New Message:" << summary, body; -} - -void MessageCenterPlugin::clearAllMessages(){ - list_messages->clear(); -} - -void MessageCenterPlugin::clearSelectedMessage(){ - if( list_messages->currentItem()==0){ return; } //nothing selected - list_messages->removeItemWidget( list_messages->currentItem() ); -} - - -void MessageCenterPlugin::loadIcons(){ - tool_clearall->setIcon( LXDG::findIcon("edit-clear-list","") ); - tool_clearall->setToolTip( tr("Clear all messages") ); - tool_clearone->setIcon( LXDG::findIcon("edit-delete","") ); - tool_clearone->setToolTip( tr("Clear selected message") ); - -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/MessageCenter.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/MessageCenter.h deleted file mode 100644 index 8491546f..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/messagecenter/MessageCenter.h +++ /dev/null @@ -1,48 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin is a simple DBUS monitor which display's messages that come in -//=========================================== -#ifndef _LUMINA_DESKTOP_MESSAGE_CENTER_PLUGIN_H -#define _LUMINA_DESKTOP_MESSAGE_CENTER_PLUGIN_H - -#include <QListWidget> -#include <QToolButton> -#include <QFrame> - -#include <QTimer> -#include "../LDPlugin.h" - -class MessageCenterPlugin : public LDPlugin{ - Q_OBJECT -public: - MessageCenterPlugin(QWidget* parent, QString ID); - ~MessageCenterPlugin(); - -private: - //QDBusConnection *sess, *sys; - QListWidget *list_messages; - QFrame *frame; - QToolButton *tool_clearall; //clear all messages - QToolButton *tool_clearone; //clear selected message - -private slots: - //void newMessage(QDBusMessage *message); - void clearAllMessages(); - void clearSelectedMessage(); - - void loadIcons(); - -public slots: - void LocaleChange(){ - QTimer::singleShot(0,this, SLOT(loadIcons())); - } - void ThemeChange(){ - QTimer::singleShot(0,this, SLOT(loadIcons())); - } - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/notepad/NotepadPlugin.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/notepad/NotepadPlugin.cpp deleted file mode 100644 index 6d321305..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/notepad/NotepadPlugin.cpp +++ /dev/null @@ -1,330 +0,0 @@ -#include "NotepadPlugin.h" - -#include <LuminaXDG.h> -#include "LSession.h" -#include <LUtils.h> -#include <QDir> -#include <QFileDialog> -#include <QInputDialog> -#include <QtConcurrent> - -NotePadPlugin::NotePadPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){ - //qDebug() << "Creating Notepad Plugin:"; - QVBoxLayout *vlay = new QVBoxLayout(); - this->setLayout( new QVBoxLayout() ); - this->layout()->setContentsMargins(0,0,0,0); - vlay->setContentsMargins(3,3,3,3); - frame = new QFrame(this); - frame->setObjectName("notepadbase"); - //frame->setStyleSheet("QFrame#notepadbase{border-width: 1px; background: rgba(255,255,255,50); color: black;} QFrame{ border: none; border-radius: 3px; background: rgba(255,255,255,100); color: black;}"); - this->layout()->addWidget(frame); - frame->setLayout(vlay); - - if(!QFile::exists(QDir::homePath()+"/Notes")){ - //Create the notes directory if non-existant - QDir dir; - dir.mkpath(QDir::homePath()+"/Notes"); - } - watcher = new QFileSystemWatcher(this); - //Always watch the notes directory for new files/changes - watcher->addPath(QDir::homePath()+"/Notes"); - - typeTimer = new QTimer(this); - typeTimer->setInterval(1000); // 1 second before it saves - typeTimer->setSingleShot(true); //compress lots of signals into a single save - - updating = false; - //Setup the title bar header buttons - QHBoxLayout *hlay = new QHBoxLayout(); - config = new QToolButton(this); - config->setAutoRaise(true); - config->setMenu(new QMenu(this)); - config->setPopupMode(QToolButton::InstantPopup); - /*open = new QToolButton(this); - open->setAutoRaise(true); - add = new QToolButton(this); - add->setAutoRaise(true); - rem = new QToolButton(this); - rem->setAutoRaise(true);*/ - cnote = new QComboBox(this); - - hlay->addWidget(cnote); - hlay->addWidget(config); - //hlay->addWidget(open); - //hlay->addWidget(add); - //hlay->addWidget(rem); - vlay->addLayout(hlay); - - //Setup the main text widget - edit = new QPlainTextEdit(this); - edit->setReadOnly(false); - edit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - vlay->addWidget(edit); - edit->setContextMenuPolicy(Qt::NoContextMenu); - - //Now load the new file-based system for saving notes - //qDebug() << "Saving a new setting"; - this->saveSetting("customFile",""); //always clear this when the plugin is initialized (only maintained per-session) - //qDebug() << "Loading Notes Dir"; - QTimer::singleShot(10, this, SLOT(notesDirChanged())); - //qDebug() << "Set Sizing"; - - //qDebug() << "Connect Signals/slots"; - //Setup the button connections - /*connect(open, SIGNAL(clicked()), this, SLOT(openNoteClicked()) ); - connect(add, SIGNAL(clicked()), this, SLOT(newNoteClicked()) ); - connect(rem, SIGNAL(clicked()), this, SLOT(remNote()) );*/ - //connect(config, SIGNAL(clicked()), this, SLOT(openConfigMenu()) ); - connect(edit, SIGNAL(textChanged()), this, SLOT(newTextAvailable()) ); - connect(cnote, SIGNAL(currentIndexChanged(QString)), this, SLOT(noteChanged()) ); - connect(typeTimer, SIGNAL(timeout()), this, SLOT(updateContents()) ); - connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(notesDirChanged()) ); //re-load the available notes - connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(noteChanged()) ); //re-load the current file - QTimer::singleShot(0,this, SLOT(loadIcons()) ); - //qDebug() << " - Done with init"; -} - -NotePadPlugin::~NotePadPlugin(){ - -} - - -void NotePadPlugin::openNote(){ - //qDebug() << "Open New Note:"; - //Prompt for a name for the new note - QFileDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setFileMode(QFileDialog::ExistingFile); - dlg.setAcceptMode(QFileDialog::AcceptOpen); - dlg.setNameFilters( QStringList() << tr("Note Files (*.note)") << tr("Text Files (*)")); - dlg.setWindowTitle(tr("Open a note file")); - dlg.setWindowIcon( LXDG::findIcon("document-open","") ); - dlg.setDirectory(QDir::homePath()); //start in the home directory - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - QApplication::processEvents(); - } - QStringList sel = dlg.selectedFiles(); - if(sel.isEmpty() || dlg.result()!=QDialog::Accepted){ return; } //cancelled - QString fullpath = sel.first(); - QString name = fullpath.section("/",-1); - //qDebug() << " - Found Note:" << name << fullpath; - int index = cnote->findText(name, Qt::MatchExactly | Qt::MatchCaseSensitive); - if(QFile::exists(fullpath) && index <0){ - //Alternate option of searching for the file in the list - index = cnote->findText(fullpath, Qt::MatchExactly | Qt::MatchCaseSensitive); - } - if(index>=0){ - //This note already exists: just load it - cnote->setCurrentIndex(index); - }else{ - //New note - add it to the end of the list and then load it - cnote->addItem(name, fullpath); - this->saveSetting("customFile", fullpath); //save this as a custom file - cnote->setCurrentIndex( cnote->count()-1 ); - QTimer::singleShot(1000, this, SLOT(notesDirChanged())); //Make sure to refresh the list (only one custom file at a time) - } -} - -QString NotePadPlugin::newNoteName(QString oldname, bool tryagain){ - //Prompt for a name for the new note - //qDebug() << "Create new note"; - QInputDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setInputMode(QInputDialog::TextInput); - dlg.setLabelText(tr("Name:")); - dlg.setTextEchoMode(QLineEdit::Normal); - if(tryagain){ dlg.setWindowTitle(tr("Invalid Note Name: Try Again")); } - else{ dlg.setWindowTitle(tr("Select a Note Name")); } - dlg.setWindowIcon( LXDG::findIcon("document-new","") ); - dlg.setTextValue(oldname); - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - //this->thread()->usleep(300000); //300 ms between updates - QApplication::processEvents(); - } - QString name = dlg.textValue(); - //make sure to remove any "bad" characters from the name - name.remove("\""); name.remove(";"); name.remove("\'"); name.replace("/","_"); - if(name.isEmpty() || dlg.result()!=QDialog::Accepted){ return ""; } //cancelled - //Check validity of the new note filename - QString fullpath = QDir::homePath()+"/Notes/"+name; - if(!fullpath.endsWith(".note")){ fullpath.append(".note"); } - if(QFile::exists(fullpath)){ - return newNoteName(name, true); //try again - } - return name; //good name - go ahead and return it -} - -void NotePadPlugin::updateConfigMenu(){ - //Re-create the menu and open it - config->menu()->clear(); - config->menu()->addAction(LXDG::findIcon("document-open",""), tr("Open Text File"), this, SLOT(openNoteClicked()) ); - config->menu()->addAction(LXDG::findIcon("document-new",""), tr("Create a Note"), this, SLOT(newNoteClicked()) ); - if(cnote->currentIndex()>=0){ - config->menu()->addSeparator(); - config->menu()->addAction(LXDG::findIcon("document-edit",""), tr("Rename Note"), this, SLOT(renameNote()) ); - config->menu()->addAction(LXDG::findIcon("document-close",""), tr("Delete Note"), this, SLOT(remNote()) ); - } -} - -void NotePadPlugin::openNoteClicked(){ - openNote(); -} - -void NotePadPlugin::newNoteClicked(){ - //QtConcurrent::run(this, &NotePadPlugin::newNote); - QString name = newNoteName(); - if(name.isEmpty()){ return; } - QString fullpath = QDir::homePath()+"/Notes/"+name; - if(!fullpath.endsWith(".note")){ fullpath.append(".note"); } - //qDebug() << " - New Note:" << name << fullpath; - int index = cnote->findText(name, Qt::MatchExactly | Qt::MatchCaseSensitive); - if(QFile::exists(fullpath) && index <0){ - //Alternate option of searching for the file in the list - index = cnote->findText(fullpath, Qt::MatchExactly | Qt::MatchCaseSensitive); - } - if(index>=0){ - //This note already exists: just load it - cnote->setCurrentIndex(index); - }else{ - //New note - add it to the end of the list and then load it - cnote->addItem(name, fullpath); - cnote->setCurrentIndex( cnote->count()-1 ); - } -} - -void NotePadPlugin::remNote(){ - QString note = cnote->currentData().toString(); - if(note.isEmpty()){ return; } - watcher->removePath(note); //remove this file from the watcher - this->saveSetting("currentFile",""); //reset the internal value - QFile::remove(note); //remove the file - //if(!note.startsWith(QDir::homePath()+"/Notes/") ){ - //If the file was not in the notes directory, need to manually prompt for a re-load - // otherwise, the directory watcher will catch it and trigger a re-load (no need to double-load) - notesDirChanged(); - //} -} - -void NotePadPlugin::renameNote(){ - int item = cnote->currentIndex(); - if(item<0){ return; } //nothing selected - QString oldpath = cnote->currentData().toString(); - if(oldpath.isEmpty() || !oldpath.endsWith(".note")){ return; } - QString name = newNoteName(cnote->currentText()); - if(name.isEmpty()){ return; } - QString fullpath = QDir::homePath()+"/Notes/"+name; - if(!fullpath.endsWith(".note")){ fullpath.append(".note"); } - //qDebug() << " - New Note:" << name << fullpath; - //Update the current item data to point to this file - cnote->setItemText(item, name); - cnote->setItemData(item, fullpath); - //Now move the file over - QFile::rename(oldpath, fullpath); - noteChanged(); -} - -void NotePadPlugin::newTextAvailable(){ - if(updating){ return; } //programmatic change of the widget - if(typeTimer->isActive()){ typeTimer->stop(); } - typeTimer->start(); -} - -void NotePadPlugin::updateContents(){ - if(updating){ return; } //this was a programmatic change to the widget - //The text was changed in the plugin - save it in the file - QString note = cnote->currentData().toString(); - updating = true; - LUtils::writeFile(note, edit->toPlainText().split("\n"), true); - QApplication::processEvents(); //make sure to process/discard the file changed signal before disabling the flag - updating = false; -} - -void NotePadPlugin::notesDirChanged(){ - if(updating){ return; } - QString cfile = this->readSetting("currentFile","").toString(); - QStringList notes; - QDir dir(QDir::homePath()+"/Notes"); - QStringList files = dir.entryList(QStringList() << "*.note", QDir::Files | QDir::NoDotAndDotDot, QDir::Name); - for(int i=0; i<files.length(); i++){ - notes << dir.absoluteFilePath(files[i]); - } - QString custom = this->readSetting("customFile","").toString(); - if(!custom.isEmpty() && QFile::exists(custom) ){ notes << custom; } - //qDebug() << "Available Notes:" << notes << cfile; - //Now update the UI list - updating = true; //don't refresh the UI until done changing lists - cnote->clear(); - bool found = false; - for(int i=0; i<notes.length(); i++){ - QString name = notes[i].section("/",-1); - if(name.endsWith(".note")){ name.chop(5); } - cnote->addItem(name, notes[i]); - if(notes[i]==cfile){ cnote->setCurrentIndex(i); found = true;} - } - if(!found && !cfile.isEmpty() && QFile::exists(cfile)){ - //Current note is a manually-loaded text file - cnote->addItem(cfile.section("/",-1), cfile); - cnote->setCurrentIndex( cnote->count()-1 ); //last item - found = true; - } - if(!found && cnote->count()>0){ cnote->setCurrentIndex(0); } - updating =false; - noteChanged(); -} - -void NotePadPlugin::noteChanged(){ - if(updating){ return; } - updating =true; - QString note; - if(cnote->currentIndex()>=0){ - note = cnote->currentData().toString(); - } - QTimer::singleShot(0, this, SLOT(updateConfigMenu()) ); - if(note.isEmpty() && cnote->count()>0){ - updating=false; - cnote->setCurrentIndex(0); - return; - } - QString oldnote = this->readSetting("currentFile","").toString(); - //qDebug() << "Note Changed:" << note << oldnote; - if( oldnote!=note ){ - //Clear the old note file/setting - if(!oldnote.isEmpty()){ - watcher->removePath(oldnote); - this->saveSetting("currentFile",""); - } - if(!note.isEmpty()){ - this->saveSetting("currentFile",note); - watcher->addPath(note); - } - } - - if(!note.isEmpty()){ - QString text = LUtils::readFile(note).join("\n"); - if(text!=edit->toPlainText()){ - edit->setPlainText( text ); - } - }else{ - edit->clear(); - } - //If no notes available - disable the editor until a new one is created - edit->setEnabled(!note.isEmpty()); - //rem->setEnabled(!note.isEmpty()); - cnote->setEnabled(!note.isEmpty()); - //leave the new/open buttons enabled all the time - updating = false; -} - - -void NotePadPlugin::loadIcons(){ - /*open->setIcon( LXDG::findIcon("document-open","") ); - add->setIcon( LXDG::findIcon("document-new","") ); - rem->setIcon( LXDG::findIcon("document-close","") );*/ - config->setIcon( LXDG::findIcon("configure","") ); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/notepad/NotepadPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/notepad/NotepadPlugin.h deleted file mode 100644 index 5084dadf..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/notepad/NotepadPlugin.h +++ /dev/null @@ -1,66 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin is a simple text editor for notes on the desktop -//=========================================== -#ifndef _LUMINA_DESKTOP_NOTEPAD_PLUGIN_H -#define _LUMINA_DESKTOP_NOTEPAD_PLUGIN_H - -#include <QPlainTextEdit> -#include <QToolButton> -#include <QComboBox> -#include <QVBoxLayout> -#include <QTimer> -#include <QFileSystemWatcher> -#include "../LDPlugin.h" - -class NotePadPlugin : public LDPlugin{ - Q_OBJECT -public: - NotePadPlugin(QWidget* parent, QString ID); - ~NotePadPlugin(); - - virtual QSize defaultPluginSize(){ - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(3,3); - } -private: - QPlainTextEdit *edit; - QToolButton *config; //*open, *add, *rem; - QComboBox *cnote; - QFrame *frame; - QFileSystemWatcher *watcher; - bool updating; - QTimer *typeTimer; - - void openNote(); - QString newNoteName(QString oldname = "", bool tryagain = false); - -private slots: - void updateConfigMenu(); - - void openNoteClicked(); - void newNoteClicked(); - void remNote(); - void renameNote(); - void newTextAvailable(); - void updateContents(); - - void notesDirChanged(); - void noteChanged(); - - void loadIcons(); - -public slots: - void LocaleChange(){ - QTimer::singleShot(0,this, SLOT(noteChanged())); - } - void ThemeChange(){ - QTimer::singleShot(0,this, SLOT(loadIcons())); - } - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/quickcontainer/QuickDPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/quickcontainer/QuickDPlugin.h deleted file mode 100644 index d6039ac0..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/quickcontainer/QuickDPlugin.h +++ /dev/null @@ -1,51 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is a simple container for a QtQuick plugin -//=========================================== -#ifndef _LUMINA_DESKTOP_DESKTOP_PLUGIN_QUICK_H -#define _LUMINA_DESKTOP_DESKTOP_PLUGIN_QUICK_H - -#include <QQuickWidget> -#include <QVBoxLayout> -#include "../LDPlugin.h" - -#include <LUtils.h> - -class QuickDPlugin : public LDPlugin{ - Q_OBJECT -public: - QuickDPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){ - this->setLayout( new QVBoxLayout()); - this->layout()->setContentsMargins(0,0,0,0); - container = new QQuickWidget(this); - container->setResizeMode(QQuickWidget::SizeRootObjectToView); - connect(container, SIGNAL(statusChanged(QQuickWidget::Status)), this, SLOT(statusChange(QQuickWidget::Status)) ); - this->layout()->addWidget(container); - container->setSource(QUrl::fromLocalFile( LUtils::findQuickPluginFile(ID.section("---",0,0)) )); - QApplication::processEvents(); //to check for errors right away - //this->setInitialSize(container->initialSize().width(), container->initialSize().height()); - } - - ~QuickDPlugin(){} - - virtual QSize defaultPluginSize(){ - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(2,2); - } -private: - QQuickWidget *container; - -private slots: - void statusChange(QQuickWidget::Status status){ - if(status == QQuickWidget::Error){ - qDebug() << "Quick Widget Error:" << this->ID(); - container->setSource(QUrl()); //clear out the script - experienced an error - } - } - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.cpp deleted file mode 100644 index c330d6c0..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.cpp +++ /dev/null @@ -1,363 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "RSSFeedPlugin.h" -#include "ui_RSSFeedPlugin.h" - -#include <LuminaXDG.h> -#include "LSession.h" -#include <LUtils.h> -#include <QDir> -#include <QFileDialog> -#include <QInputDialog> -#include <QtConcurrent> - -RSSFeedPlugin::RSSFeedPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID), ui(new Ui::RSSFeedPlugin()){ - ui->setupUi(this); - //Load the global settings - setprefix = "rssreader/"; //this structure/prefix should be used for *all* plugins of this type - RSS = new RSSReader(this, setprefix); - ui->text_feed->setContextMenuPolicy(Qt::NoContextMenu); - //Create the options menu - optionsMenu = new QMenu(this); - ui->tool_options->setMenu(optionsMenu); - presetMenu = new QMenu(this); - ui->tool_add_preset->setMenu(presetMenu); - - //Setup any signal/slot connections - connect(ui->push_back1, SIGNAL(clicked()), this, SLOT(backToFeeds()) ); - connect(ui->push_back2, SIGNAL(clicked()), this, SLOT(backToFeeds()) ); - connect(ui->push_back3, SIGNAL(clicked()), this, SLOT(backToFeeds()) ); - connect(ui->push_save_settings, SIGNAL(clicked()), this, SLOT(saveSettings()) ); - connect(RSS, SIGNAL(rssChanged(QString)), this, SLOT(RSSItemChanged(QString)) ); - connect(RSS, SIGNAL(newChannelsAvailable()), this, SLOT(UpdateFeedList())); - connect(ui->tool_gotosite, SIGNAL(clicked()), this, SLOT(openFeedPage()) ); - connect(ui->push_rm_feed, SIGNAL(clicked()), this, SLOT(removeFeed()) ); - connect(ui->push_add_url, SIGNAL(clicked()), this, SLOT(addNewFeed()) ); - connect(ui->combo_feed, SIGNAL(currentIndexChanged(int)), this, SLOT(currentFeedChanged()) ); - - connect(presetMenu, SIGNAL(triggered(QAction*)), this, SLOT(loadPreset(QAction*)) ); - - updateOptionsMenu(); - QTimer::singleShot(0,this, SLOT(ThemeChange()) ); - //qDebug() << " - Done with init"; - QStringList feeds; - if( !LSession::handle()->DesktopPluginSettings()->contains(setprefix+"currentfeeds") ){ - //First-time run of the plugin - automatically load the default feeds - feeds = LOS::RSSFeeds(); - for(int i=0; i<feeds.length(); i++){ feeds[i] = feeds[i].section("::::",1,-1); } //just need url right now - feeds << "http://lumina-desktop.org/?feed=rss2"; //Lumina Desktop blog feed - LSession::handle()->DesktopPluginSettings()->setValue(setprefix+"currentfeeds", feeds); - }else{ - feeds = LSession::handle()->DesktopPluginSettings()->value(setprefix+"currentfeeds",QStringList()).toStringList(); - } - RSS->addUrls(feeds); - backToFeeds(); //always load the first page -} - -RSSFeedPlugin::~RSSFeedPlugin(){ - -} - -//================ -// PRIVATE -//================ -void RSSFeedPlugin::updateOptionsMenu(){ - optionsMenu->clear(); - optionsMenu->addAction(LXDG::findIcon("list-add",""), tr("Add RSS Feed"), this, SLOT(openFeedNew()) ); - optionsMenu->addAction(LXDG::findIcon("help-about",""), tr("View Feed Details"), this, SLOT(openFeedInfo()) ); - optionsMenu->addAction(LXDG::findIcon("configure",""), tr("Settings"), this, SLOT(openSettings()) ); - optionsMenu->addSeparator(); - optionsMenu->addAction(LXDG::findIcon("download",""), tr("Update Feeds Now"), this, SLOT(resyncFeeds()) ); - - presetMenu->clear(); - QStringList feeds = LOS::RSSFeeds(); - feeds << tr("Lumina Desktop RSS")+"::::http://lumina-desktop.org/?feed=rss2"; - feeds.sort(); - for(int i=0; i<feeds.length(); i++){ - QAction *tmp = presetMenu->addAction(feeds[i].section("::::",0,0) ); - tmp->setWhatsThis( feeds[i].section("::::",1,-1) ); - } -} - -void RSSFeedPlugin::checkFeedNotify(){ - bool notify = false; - for(int i=0; i<ui->combo_feed->count() && !notify; i++){ - if( !ui->combo_feed->itemData(i, Qt::WhatsThisRole).toString().isEmpty()){ notify = true; } - } - QString style; - if(notify){ style = "QComboBox{ background-color: rgba(255,0,0,120); }"; } - ui->combo_feed->setStyleSheet(style); -} - -//Simplification functions for loading feed info onto widgets -void RSSFeedPlugin::updateFeed(QString ID){ - //Now clear/update the feed viewer (HTML) - ui->text_feed->clear(); - if(ID.isEmpty()){ return; } //nothing to show - - //Save the datetime this feed was read - LSession::handle()->DesktopPluginSettings()->setValue(setprefix+"feedReads/"+ID, QDateTime::currentDateTime() ); - //Get the color to use for hyperlinks (need to specify in html) - QString color = ui->text_feed->palette().text().color().name(); //keep the hyperlinks the same color as the main text (different formatting still applies) - QString html; - RSSchannel data = RSS->dataForID(ID); - ui->label_lastupdate->setText( data.lastsync.toString(Qt::DefaultLocaleShortDate) ); - // - generate the html - // html.append("<ul style=\"margin-left: 3px;\">\n"); - for(int i=0; i<data.items.length(); i++){ - //html.append("<li>"); - html.append("<h4><a href=\""+data.items[i].link+"\" style=\"color: "+color+";\">"+data.items[i].title+"</a></h4>"); - if(!data.items[i].pubdate.isNull() || !data.items[i].author.isEmpty()){ - html.append("<i>("); - if(!data.items[i].pubdate.isNull()){ html.append(data.items[i].pubdate.toString(Qt::DefaultLocaleShortDate)); } - if(!data.items[i].author.isEmpty()){ - if(!html.endsWith("(")){ html.append(", "); } //spacing between date/author - if(!data.items[i].author_email.isEmpty()){ html.append("<a href=\"mailto:"+data.items[i].author_email+"\" style=\"color: "+color+";\">"+data.items[i].author+"</a>"); } - else{ html.append(data.items[i].author); } - } - html.append(")</i><br>"); - } - html.append(data.items[i].description); - //html.append("</li>\n"); - if(i+1 < data.items.length()){ html.append("<br>"); } - } - //html.append("</ul>\n"); - // - load that html into the viewer - ui->text_feed->setHtml(html); -} - -void RSSFeedPlugin::updateFeedInfo(QString ID){ - ui->page_feed_info->setWhatsThis(ID); - ui->text_feed_info->clear(); - if(ID.isEmpty()){ return; } - //Get the color to use for hyperlinks (need to specify in html) - QString color = ui->text_feed->palette().text().color().name(); //keep the hyperlinks the same color as the main text (different formatting still applies) - QString html; - RSSchannel data = RSS->dataForID(ID); - // - generate the html - // <a href=\""+LINK+"\" style=\"color: "+color+";\">"+TEXT+"</a> - html.append( QString(tr("Feed URL: %1")).arg("<a href=\""+data.originalURL+"\" style=\"color: "+color+";\">"+data.originalURL+"</a>") +"<br><hr>"); - html.append( QString(tr("Title: %1")).arg(data.title) +"<br>"); - html.append( QString(tr("Description: %1")).arg(data.description) +"<br>"); - html.append( QString(tr("Website: %1")).arg("<a href=\""+data.link+"\" style=\"color: "+color+";\">"+data.link+"</a>") +"<br><hr>"); - if(!data.lastBuildDate.isNull()){ html.append( QString(tr("Last Build Date: %1")).arg(data.lastBuildDate.toString(Qt::DefaultLocaleShortDate)) +"<br>"); } - html.append( QString(tr("Last Sync: %1")).arg(data.lastsync.toString(Qt::DefaultLocaleShortDate)) +"<br>"); - html.append( QString(tr("Next Sync: %1")).arg(data.nextsync.toString(Qt::DefaultLocaleShortDate)) +"<br>"); - // - load that html into the viewer - ui->text_feed_info->setHtml(html); -} - -//================ -// PRIVATE SLOTS -//================ -void RSSFeedPlugin::loadIcons(){ - ui->tool_options->setIcon( LXDG::findIcon("configure","") ); - ui->tool_gotosite->setIcon( LXDG::findIcon("applications-internet","") ); - ui->push_back1->setIcon( LXDG::findIcon("go-previous","") ); - ui->push_back2->setIcon( LXDG::findIcon("go-previous","") ); - ui->push_back3->setIcon( LXDG::findIcon("go-previous","") ); - ui->push_rm_feed->setIcon( LXDG::findIcon("list-remove","") ); - ui->push_add_url->setIcon( LXDG::findIcon("list-add","") ); - ui->push_save_settings->setIcon( LXDG::findIcon("document-save","") ); - ui->tool_add_preset->setIcon( LXDG::findIcon("bookmark-new-list","") ); -} - -//GUI slots -// - Page management -void RSSFeedPlugin::backToFeeds(){ - ui->stackedWidget->setCurrentWidget(ui->page_feed); -} - -void RSSFeedPlugin::openFeedInfo(){ - QString ID = ui->combo_feed->currentData().toString(); - if(ID.isEmpty()){ return; } - updateFeedInfo(ID); - ui->stackedWidget->setCurrentWidget(ui->page_feed_info); - -} - -void RSSFeedPlugin::openFeedNew(){ - ui->line_new_url->setText(""); - ui->stackedWidget->setCurrentWidget(ui->page_new_feed); -} - -void RSSFeedPlugin::openSettings(){ - //Sync the widget with the current settings - QSettings *set = LSession::handle()->DesktopPluginSettings(); - - ui->check_manual_sync->setChecked( set->value(setprefix+"manual_sync_only", false).toBool() ); - int DI = set->value(setprefix+"default_interval_minutes", 60).toInt(); - if(DI<1){ DI = 60; } - if( (DI%60) == 0 ){DI = DI/60; ui->combo_sync_units->setCurrentIndex(1); } //hourly setting - else{ ui->combo_sync_units->setCurrentIndex(1); } //minutes setting - ui->spin_synctime->setValue(DI); - - //Now show the page - ui->stackedWidget->setCurrentWidget(ui->page_settings); -} - -// - Feed Management -void RSSFeedPlugin::addNewFeed(){ - if(ui->line_new_url->text().isEmpty()){ return; } //nothing to add - //Validate the URL - QUrl url(ui->line_new_url->text()); - if(!url.isValid()){ - ui->line_new_url->setFocus(); - return; - } - //Add the URL to the settings file for next login - QStringList feeds = LSession::handle()->DesktopPluginSettings()->value(setprefix+"currentfeeds",QStringList()).toStringList(); - feeds << url.toString(); - LSession::handle()->DesktopPluginSettings()->setValue(setprefix+"currentfeeds", feeds); - - //Set this URL as the current selection - ui->combo_feed->setWhatsThis(url.toString()); //hidden field - will trigger an update in a moment - //Add the URL to the backend - RSS->addUrls(QStringList() << url.toString()); - //UpdateFeedList(); //now re-load the feeds which are available - - //Now go back to the main page - backToFeeds(); -} - -void RSSFeedPlugin::loadPreset(QAction *act){ - ui->line_new_url->setText( act->whatsThis() ); -} - -void RSSFeedPlugin::removeFeed(){ - QString ID = ui->page_feed_info->whatsThis(); - if(ID.isEmpty()){ return; } - //Remove from the RSS feed object - RSSchannel info = RSS->dataForID(ID); - RSS->removeUrl(ID); - //Remove the URL from the settings file for next login - QStringList feeds = LSession::handle()->DesktopPluginSettings()->value(setprefix+"currentfeeds",QStringList()).toStringList(); - feeds.removeAll(info.originalURL); - LSession::handle()->DesktopPluginSettings()->setValue(setprefix+"currentfeeds", feeds); - LSession::handle()->DesktopPluginSettings()->remove(setprefix+"feedReads/"+ID); - //Now go back to the main page - backToFeeds(); -} - -void RSSFeedPlugin::resyncFeeds(){ - RSS->addUrls( LSession::handle()->DesktopPluginSettings()->value(setprefix+"currentfeeds",QStringList()).toStringList() ); - RSS->syncNow(); -} - -// - Feed Interactions -void RSSFeedPlugin::currentFeedChanged(){ - QString ID = ui->combo_feed->currentData().toString(); - //Remove the "unread" color/flag from the feed - ui->combo_feed->setItemData( ui->combo_feed->currentIndex(), QBrush(Qt::transparent) , Qt::BackgroundRole); - ui->combo_feed->setItemData( ui->combo_feed->currentIndex(), "", Qt::WhatsThisRole); - checkFeedNotify(); - updateFeed(ID); -} - -void RSSFeedPlugin::openFeedPage(){ //Open main website for feed - QString ID = ui->combo_feed->currentData().toString(); - //Find the data associated with this feed - RSSchannel data = RSS->dataForID(ID); - QString url = data.link; - //qDebug() << "Open Feed Page:" << url; - //Now launch the browser - if(!url.isEmpty()){ - LSession::LaunchApplication("lumina-open \""+url+"\""); - } -} - -void RSSFeedPlugin::saveSettings(){ - QSettings *set = LSession::handle()->DesktopPluginSettings(); - set->setValue(setprefix+"manual_sync_only", ui->check_manual_sync->isChecked() ); - int DI = ui->spin_synctime->value(); - if(ui->combo_sync_units->currentIndex()==1){ DI = DI*60; } //convert from hours to minutes - set->setValue(setprefix+"default_interval_minutes", DI); - set->sync(); - - //Now go back to the feeds - backToFeeds(); -} - -//Feed Object interactions -void RSSFeedPlugin::UpdateFeedList(){ - - QString activate = ui->combo_feed->whatsThis(); - if(!activate.isEmpty()){ ui->combo_feed->setWhatsThis(""); } - if(activate.isEmpty()){ activate = ui->combo_feed->currentData().toString(); } // keep current item selected - //Now get/list all the available feeds - QStringList IDS = RSS->channels(); //this is pre-sorted by title of the feed - //qDebug() << "Update RSS Feed List:" << IDS << activate; - for(int i=0; i<IDS.length(); i++){ - bool newitem = false; - if(ui->combo_feed->count()<=i){ newitem = true; } - else{ - QString cid = ui->combo_feed->itemData(i).toString(); - if(IDS[i]!=cid){ - if(IDS.contains(cid)){ newitem = true; } //this item is just out of order - else{ ui->combo_feed->removeItem(i); } //item no longer is valid - } - } - if(newitem){ - //Need to add a new item at this point in the menu - RSSchannel info = RSS->dataForID(IDS[i]); - if(info.title.isEmpty()){ - //invalid/empty channel - ui->combo_feed->insertItem(i, IDS[i], IDS[i]); //just show the URL - }else{ - ui->combo_feed->insertItem(i, info.icon, info.title, IDS[i]); - } - } - } - //Remove any extra items on the end of the list - for(int i=IDS.length(); i<ui->combo_feed->count(); i++){ - ui->combo_feed->removeItem(i); i--; - } - //Now activate the proper item as needed - if(IDS.contains(activate)){ - ui->combo_feed->setCurrentIndex( IDS.indexOf(activate) ); - } - checkFeedNotify(); -} - -void RSSFeedPlugin::RSSItemChanged(QString ID){ - for(int i=0; i<ui->combo_feed->count(); i++){ - if(ui->combo_feed->itemData(i).toString()!=ID){ continue; } - RSSchannel info = RSS->dataForID(ID); - if(info.title.isEmpty()){ - ui->combo_feed->setItemText(i, ID); - ui->combo_feed->setItemIcon(i, LXDG::findIcon("dialog-cancel","") ); - }else{ - ui->combo_feed->setItemText(i, info.title); - ui->combo_feed->setItemIcon(i, info.icon ); - QColor color(Qt::transparent); - if( info.lastBuildDate > LSession::handle()->DesktopPluginSettings()->value(setprefix+"feedReads/"+ID,QDateTime()).toDateTime() ){ - color = QColor(255,10,10,100); //semi-transparent red - ui->combo_feed->setItemData(i, "notify", Qt::WhatsThisRole); - }else{ - ui->combo_feed->setItemData(i, "", Qt::WhatsThisRole); - } - ui->combo_feed->setItemData(i, QBrush(color) , Qt::BackgroundRole); - } - } - if(ID == ui->combo_feed->currentData().toString()){ - currentFeedChanged(); //re-load the current feed - }else{ - checkFeedNotify(); - } -} - -//================== -// PUBLIC SLOTS -//================== -void RSSFeedPlugin::LocaleChange(){ - ui->retranslateUi(this); - updateOptionsMenu(); -} -void RSSFeedPlugin::ThemeChange(){ - QTimer::singleShot(0,this, SLOT(loadIcons())); - updateOptionsMenu(); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.h deleted file mode 100644 index 68b36760..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.h +++ /dev/null @@ -1,72 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin is a simple RSS feed reader for the desktop -//=========================================== -#ifndef _LUMINA_DESKTOP_RSS_FEEDER_PLUGIN_H -#define _LUMINA_DESKTOP_RSS_FEEDER_PLUGIN_H - -#include <QTimer> -#include "../LDPlugin.h" - -#include "RSSObjects.h" - -namespace Ui{ - class RSSFeedPlugin; -}; - -class RSSFeedPlugin : public LDPlugin{ - Q_OBJECT -public: - RSSFeedPlugin(QWidget* parent, QString ID); - ~RSSFeedPlugin(); - - virtual QSize defaultPluginSize(){ - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(3,3); - } -private: - Ui::RSSFeedPlugin *ui; - QMenu *optionsMenu, *presetMenu; - QString setprefix; //settings prefix - RSSReader *RSS; - - void updateOptionsMenu(); - void checkFeedNotify(); //check if unread feeds are available and change the styling a bit as needed - - //Simplification functions for loading feed info onto widgets - void updateFeed(QString ID); - void updateFeedInfo(QString ID); - -private slots: - void loadIcons(); - - //GUI slots - // - Page management - void backToFeeds(); - void openFeedInfo(); - void openFeedNew(); - void openSettings(); - // - Feed Management - void addNewFeed(); // the "add" button (current url in widget on page) - void loadPreset(QAction*); //the add-preset menu - void removeFeed(); // the "remove" button (current feed for page) - void resyncFeeds(); - // - Feed Interactions - void currentFeedChanged(); - void openFeedPage(); //Open the website in a browser - void saveSettings(); - - //Feed Object interactions - void UpdateFeedList(); - void RSSItemChanged(QString ID); - -public slots: - void LocaleChange(); - void ThemeChange(); - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.ui b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.ui deleted file mode 100644 index dc7acd0b..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSFeedPlugin.ui +++ /dev/null @@ -1,552 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>RSSFeedPlugin</class> - <widget class="QWidget" name="RSSFeedPlugin"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>238</width> - <height>278</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>0</number> - </property> - <property name="leftMargin"> - <number>3</number> - </property> - <property name="topMargin"> - <number>3</number> - </property> - <property name="rightMargin"> - <number>3</number> - </property> - <property name="bottomMargin"> - <number>3</number> - </property> - <item> - <widget class="QStackedWidget" name="stackedWidget"> - <property name="currentIndex"> - <number>1</number> - </property> - <widget class="QWidget" name="page_feed"> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> - <number>3</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QComboBox" name="combo_feed"/> - </item> - <item> - <widget class="QToolButton" name="tool_options"> - <property name="toolTip"> - <string>View Options</string> - </property> - <property name="text"> - <string/> - </property> - <property name="popupMode"> - <enum>QToolButton::InstantPopup</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QLabel" name="label_lastupdate"> - <property name="text"> - <string notr="true"/> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_gotosite"> - <property name="toolTip"> - <string>Open Website</string> - </property> - <property name="text"> - <string>More</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - <property name="arrowType"> - <enum>Qt::NoArrow</enum> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QTextBrowser" name="text_feed"> - <property name="undoRedoEnabled"> - <bool>false</bool> - </property> - <property name="readOnly"> - <bool>true</bool> - </property> - <property name="html"> - <string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string> - </property> - <property name="textInteractionFlags"> - <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> - </property> - <property name="openExternalLinks"> - <bool>true</bool> - </property> - <property name="openLinks"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_feed_info"> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <property name="spacing"> - <number>4</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>5</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QPushButton" name="push_back1"> - <property name="text"> - <string>Back to Feeds</string> - </property> - <property name="flat"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>Feed Information</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <property name="spacing"> - <number>0</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QTextBrowser" name="text_feed_info"> - <property name="html"> - <string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string> - </property> - <property name="openExternalLinks"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_8"> - <item> - <widget class="QPushButton" name="push_rm_feed"> - <property name="text"> - <string>Remove Feed</string> - </property> - <property name="flat"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_new_feed"> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <property name="spacing"> - <number>4</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QPushButton" name="push_back2"> - <property name="text"> - <string>Back to Feeds</string> - </property> - <property name="flat"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QGroupBox" name="groupBox_2"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>New Feed Subscription</string> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> - </property> - <layout class="QVBoxLayout" name="verticalLayout_6"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>RSS URL</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_10"> - <item> - <widget class="QLineEdit" name="line_new_url"/> - </item> - <item> - <widget class="QToolButton" name="tool_add_preset"> - <property name="toolTip"> - <string>Load a preset RSS Feed</string> - </property> - <property name="text"> - <string/> - </property> - <property name="popupMode"> - <enum>QToolButton::InstantPopup</enum> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_5"> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="push_add_url"> - <property name="text"> - <string>Add to Feeds</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_settings"> - <layout class="QVBoxLayout" name="verticalLayout_7"> - <property name="spacing"> - <number>4</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <item> - <widget class="QPushButton" name="push_back3"> - <property name="text"> - <string>Back to Feeds</string> - </property> - <property name="flat"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QGroupBox" name="groupBox_3"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>Feed Reader Settings</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_8"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QCheckBox" name="check_manual_sync"> - <property name="text"> - <string>Manual Sync Only</string> - </property> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_4"> - <property name="toolTip"> - <string>Some RSS feeds may request custom update intervals instead of using this setting</string> - </property> - <property name="title"> - <string>Default Sync Interval</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_7"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QSpinBox" name="spin_synctime"> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>60</number> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="combo_sync_units"> - <property name="currentText"> - <string>Hour(s)</string> - </property> - <property name="currentIndex"> - <number>1</number> - </property> - <item> - <property name="text"> - <string>Minutes</string> - </property> - </item> - <item> - <property name="text"> - <string>Hour(s)</string> - </property> - </item> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer_2"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_9"> - <item> - <spacer name="horizontalSpacer_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="push_save_settings"> - <property name="text"> - <string>Save Settings</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSObjects.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSObjects.cpp deleted file mode 100644 index 0a805252..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSObjects.cpp +++ /dev/null @@ -1,287 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "RSSObjects.h" -#include <QNetworkRequest> -#include <QXmlStreamReader> - -#include "LSession.h" - -//============ -// PUBLIC -//============ -RSSReader::RSSReader(QObject *parent, QString settingsPrefix) : QObject(parent){ - NMAN = new QNetworkAccessManager(this); - connect(NMAN, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)) ); - connect(NMAN, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)), this, SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&)) ); - - setprefix = settingsPrefix; - syncTimer = new QTimer(this); - syncTimer->setInterval(300000); //5 minutes - connect(syncTimer, SIGNAL(timeout()), this, SLOT(checkTimes())); - syncTimer->start(); -} - -RSSReader::~RSSReader(){ - -} - -//Information retrieval -QStringList RSSReader::channels(){ - QStringList urls = hash.keys(); - QStringList ids; - //sort all the channels by title before output - for(int i=0; i<urls.length(); i++){ - QString title = hash[urls[i]].title; - if(title.isEmpty()){ title = "ZZZ"; } //put currently-invalid ones at the end of the list - ids << title+" : "+hash[urls[i]].originalURL; - } - ids.sort(); - //Now strip off all the titles again to just get the IDs - for(int i=0; i<ids.length(); i++){ - ids[i] = ids[i].section(" : ",-1); - } - return ids; -} - -RSSchannel RSSReader::dataForID(QString ID){ - QString key = keyForUrl(ID); - if(hash.contains(key)){ return hash[key]; } - else{ return RSSchannel(); } -} - -//Initial setup -void RSSReader::addUrls(QStringList urls){ - //qDebug() << "Add URLS:" << urls; - for(int i=0; i<urls.length(); i++){ - //Note: Make sure we get the complete URL form for accurate comparison later - QString url = QUrl(urls[i]).toString(); - QString key = keyForUrl(url); - if(hash.contains(key)){ continue; } //already handled - RSSchannel blank; - blank.originalURL = url; - hash.insert(url, blank); //put the empty struct into the hash for now - requestRSS(url); //startup the initial request for this url - } - emit newChannelsAvailable(); -} - -void RSSReader::removeUrl(QString ID){ - QString key = keyForUrl(ID); - if(hash.contains(key)){ hash.remove(key); } - emit newChannelsAvailable(); -} - -//================= -// PUBLIC SLOTS -//================= -void RSSReader::syncNow(){ - QStringList urls = hash.keys(); - for(int i=0; i<urls.length(); i++){ - requestRSS(hash[urls[i]].originalURL); - } -} - -//================= -// PRIVATE -//================= -QString RSSReader::keyForUrl(QString url){ - //get current hash key for this URL - QStringList keys = hash.keys(); - if(keys.contains(url)){ return url; } //this is already a valid key - for(int i=0; i<keys.length(); i++){ - if(hash[keys[i]].originalURL == url){ return keys[i]; } //this was an original URL - } - return ""; -} - -void RSSReader::requestRSS(QString url){ - if(!outstandingURLS.contains(url)){ - //qDebug() << "Request URL:" << url; - NMAN->get( QNetworkRequest( QUrl(url) ) ); - outstandingURLS << url; - } -} - -//RSS parsing functions -RSSchannel RSSReader::readRSS(QByteArray bytes){ - //Note: We could expand this later to support multiple "channel"s per Feed - // but it seems like there is normally only one channel anyway - //qDebug() << "Read RSS:" << bytes.left(100); - QXmlStreamReader xml(bytes); - RSSchannel rssinfo; - //qDebug() << "Can Read XML Stream:" << !xml.hasError(); - if(xml.readNextStartElement()){ - //qDebug() << " - RSS Element:" << xml.name(); - if(xml.name() == "rss" && (xml.attributes().value("version") =="2.0" || xml.attributes().value("version") =="0.91") ){ - while(xml.readNextStartElement()){ - //qDebug() << " - RSS Element:" << xml.name(); - if(xml.name()=="channel"){ rssinfo = readRSSChannel(&xml); } - else{ xml.skipCurrentElement(); } - } - } - } - if(xml.hasError()){ qDebug() << " - XML Read Error:" << xml.errorString() << "\n" << bytes; } - return rssinfo; -} -RSSchannel RSSReader::readRSSChannel(QXmlStreamReader *rss){ - RSSchannel info; - info.timetolive = -1; - while(rss->readNextStartElement()){ - //qDebug() << " - RSS Element (channel):" <<rss->name(); - if(rss->name()=="item"){ info.items << readRSSItem(rss); } - else if(rss->name()=="title"){ info.title = rss->readElementText(); } - else if(rss->name()=="link"){ - QString txt = rss->readElementText(); - if(!txt.isEmpty()){ info.link = txt; } - } - else if(rss->name()=="description"){ info.description = rss->readElementText(); } - else if(rss->name()=="lastBuildDate"){ info.lastBuildDate = RSSDateTime(rss->readElementText()); } - else if(rss->name()=="pubDate"){ info.lastPubDate = RSSDateTime(rss->readElementText()); } - else if(rss->name()=="image"){ readRSSImage(&info, rss); } - //else if(rss->name()=="skipHours"){ info.link = rss->readElementText(); } - //else if(rss->name()=="skipDays"){ info.link = rss->readElementText(); } - else if(rss->name()=="ttl"){ info.timetolive = rss->readElementText().toInt(); } - else{ rss->skipCurrentElement(); } - } - return info; -} - -RSSitem RSSReader::readRSSItem(QXmlStreamReader *rss){ - RSSitem item; - while(rss->readNextStartElement()){ - //qDebug() << " - RSS Element (Item):" << rss->name(); - if(rss->name()=="title"){ item.title = rss->readElementText(); } - else if(rss->name()=="link"){ item.link = rss->readElementText(); } - else if(rss->name()=="description"){ item.description = rss->readElementText(); } - else if(rss->name()=="comments"){ item.comments_url = rss->readElementText(); } - else if(rss->name()=="author"){ - //Special handling - this field can contain both email and name - QString raw = rss->readElementText(); - if(raw.contains("@")){ - item.author_email = raw.split(" ").filter("@").first(); - item.author = raw.remove(item.author_email).remove("(").remove(")").simplified(); //the name is often put within parentheses after the email - }else{ item.author = raw; } - } - else if(rss->name()=="guid"){ item.guid = rss->readElementText(); } - else if(rss->name()=="pubDate"){ item.pubdate = RSSDateTime(rss->readElementText()); } - else{ rss->skipCurrentElement(); } - } - return item; -} - -void RSSReader::readRSSImage(RSSchannel *item, QXmlStreamReader *rss){ - while(rss->readNextStartElement()){ - //qDebug() << " - RSS Element (Image):" << rss->name(); - if(rss->name()=="url"){ item->icon_url = rss->readElementText(); } - else if(rss->name()=="title"){ item->icon_title = rss->readElementText(); } - else if(rss->name()=="link"){ item->icon_link = rss->readElementText(); } - else if(rss->name()=="width"){ item->icon_size.setWidth(rss->readElementText().toInt()); } - else if(rss->name()=="height"){ item->icon_size.setHeight(rss->readElementText().toInt()); } - else if(rss->name()=="description"){ item->icon_description = rss->readElementText(); } - } - //Go ahead and kick off the request for the icon - if(!item->icon_url.isEmpty()){ requestRSS(item->icon_url); } -} - -QDateTime RSSReader::RSSDateTime(QString datetime){ - return QDateTime::fromString(datetime, Qt::RFC2822Date); -} - -//================= -// PRIVATE SLOTS -//================= -void RSSReader::replyFinished(QNetworkReply *reply){ - QString url = reply->request().url().toString(); - //qDebug() << "Got Reply:" << url; - QString key = keyForUrl(url); //current hash key for this URL - QByteArray data = reply->readAll(); - outstandingURLS.removeAll(url); - if(data.isEmpty()){ - //qDebug() << "No data returned:" << url; - //see if the URL can be adjusted for known issues - bool handled = false; - QUrl redirecturl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); - if(redirecturl.isValid() && (redirecturl.toString() != url )){ - //New URL redirect - make the change and send a new request - QString newurl = redirecturl.toString(); - //qDebug() << " - Redirect to:" << newurl; - if(hash.contains(key) && !hash.contains(newurl)){ - hash.insert(newurl, hash.take(key) ); //just move the data over to the new url - requestRSS(newurl); - emit newChannelsAvailable(); - handled = true; - } - } - if(!handled && hash.contains(key) ){ - emit rssChanged(hash[key].originalURL); - } - return; - } - - if(!hash.contains(key)){ - //qDebug() << " - hash does not contain URL:" << url; - //URL removed from list while a request was outstanding? - //Could also be an icon fetch response - QStringList keys = hash.keys(); - for(int i=0; i<keys.length(); i++){ - //qDebug() << " - Check for icon URL:" << hash[keys[i]].icon_url; - if(hash[keys[i]].icon_url.toLower() == url.toLower()){ //needs to be case-insensitive - //Icon fetch response - RSSchannel info = hash[keys[i]]; - QImage img = QImage::fromData(data); - info.icon = QIcon( QPixmap::fromImage(img) ); - //qDebug() << "Got Icon response:" << url << info.icon; - hash.insert(keys[i], info); //insert back into the hash - emit rssChanged( hash[keys[i]].originalURL ); - break; - } - } - reply->deleteLater(); - }else{ - //RSS reply - RSSchannel info = readRSS(data); //QNetworkReply can be used as QIODevice - reply->deleteLater(); //clean up - //Validate the info and announce any changes - if(info.title.isEmpty() || info.link.isEmpty() || info.description.isEmpty()){ - qDebug() << "Missing XML Information:" << url << info.title << info.link << info.description; - return; - } //bad info/read - //Update the bookkeeping elements of the info - if(info.timetolive<=0){ info.timetolive = LSession::handle()->DesktopPluginSettings()->value(setprefix+"default_interval_minutes", 60).toInt(); } - if(info.timetolive <=0){ info.timetolive = 60; } //error in integer conversion from settings? - info.lastsync = QDateTime::currentDateTime(); info.nextsync = info.lastsync.addSecs(info.timetolive * 60); - //Now see if anything changed and save the info into the hash - bool changed = (hash[key].lastBuildDate.isNull() || (hash[key].lastBuildDate < info.lastBuildDate) ); - bool newinfo = false; - if(changed){ newinfo = hash[key].title.isEmpty(); } //no previous info from this URL - info.originalURL = hash[key].originalURL; //make sure this info gets preserved across updates - if(!hash[key].icon.isNull()){ info.icon = hash[key].icon; } //copy over the icon from the previous reply - hash.insert(key, info); - if(newinfo){ emit newChannelsAvailable(); } //new channel - else if(changed){ emit rssChanged(info.originalURL); } //update to existing channel - } -} - -void RSSReader::sslErrors(QNetworkReply *reply, const QList<QSslError> &errors){ - int ok = 0; - qDebug() << "SSL Errors Detected (RSS Reader):" << reply->url(); - for(int i=0; i<errors.length(); i++){ - if(errors[i].error()==QSslError::SelfSignedCertificate || errors[i].error()==QSslError::SelfSignedCertificateInChain){ ok++; } - else{ qDebug() << "Unhandled SSL Error:" << errors[i].errorString(); } - } - if(ok==errors.length()){ qDebug() << " - Permitted:" << reply->url(); reply->ignoreSslErrors(); } - else{ qDebug() << " - Denied:" << reply->url(); } -} - -void RSSReader::checkTimes(){ - if(LSession::handle()->DesktopPluginSettings()->value(setprefix+"manual_sync_only", false).toBool()){ return; } - QStringList urls = hash.keys(); - QDateTime cdt = QDateTime::currentDateTime(); - for(int i=0; i<urls.length(); i++){ - if(hash[urls[i]].nextsync < cdt){ requestRSS(urls[i]); } - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSObjects.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSObjects.h deleted file mode 100644 index 3069bf8d..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/rssreader/RSSObjects.h +++ /dev/null @@ -1,105 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_RSS_READER_PLUGIN_OBJECT_H -#define _LUMINA_DESKTOP_RSS_READER_PLUGIN_OBJECT_H - -#include <QNetworkAccessManager> -#include <QNetworkReply> -#include <QString> -#include <QDateTime> -#include <QList> -#include <QIcon> -#include <QTimer> -#include <QXmlStreamReader> //Contained in the Qt "core" module - don't need the full "xml" module for this -#include <QSslError> - -struct RSSitem{ - //Required Fields - QString title, link, description; - - //Optional Fields - QString comments_url, author_email, author, guid; - QDateTime pubdate; //when the item was published - //IGNORED INFO from RSS2 spec: "category", "source", "enclosure" -}; - -struct RSSchannel{ - //Required fields - QString title, link, description; - - //Optional Fields - QDateTime lastBuildDate, lastPubDate; //last build/publish dates - // - channel refresh information - int timetolive; //in minutes - time until next sync should be performed - //QList<int> skiphours; - //QStringList skipdays; - // - icon info - QIcon icon; - QString icon_url, icon_title, icon_link, icon_description; - QSize icon_size; - //All items within this channel - QList<RSSitem> items; - - //Optional RSS2 elements ignored: - // "cloud", "textInput", "rating", "language", "copyright", "managingEditor", "webMaster", - // "category", "generator", "docs" - - //Internal data for bookkeeping - QDateTime lastsync, nextsync; - QString originalURL; //in case it was redirected to some "fixed" url later -}; - -class RSSReader : public QObject{ - Q_OBJECT -public: - RSSReader(QObject *parent, QString settingsPrefix); - ~RSSReader(); - - //Information retrieval - QStringList channels(); //returns all ID's - RSSchannel dataForID(QString ID); - - //Initial setup - void addUrls(QStringList urls); - void removeUrl(QString ID); - -public slots: - void syncNow(); //not generally needed - -private: - //Internal data objects - QHash<QString, RSSchannel> hash; // ID/data - QString setprefix; - QTimer *syncTimer; - QNetworkAccessManager *NMAN; - QStringList outstandingURLS; - - - //Simple hash data search functions - QString keyForUrl(QString url); - - //Network request function - void requestRSS(QString url); - - //RSS parsing functions - RSSchannel readRSS(QByteArray bytes); - RSSchannel readRSSChannel(QXmlStreamReader *rss); - RSSitem readRSSItem(QXmlStreamReader *rss); - void readRSSImage(RSSchannel *item, QXmlStreamReader *rss); - QDateTime RSSDateTime(QString datetime); - -private slots: - void replyFinished(QNetworkReply *reply); - void sslErrors(QNetworkReply *reply, const QList<QSslError> &errors); - void checkTimes(); - -signals: - void rssChanged(QString); //ID - void newChannelsAvailable(); -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.cpp deleted file mode 100644 index 951bcc98..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.cpp +++ /dev/null @@ -1,63 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "MonitorWidget.h" -#include "ui_MonitorWidget.h" - - -#include <LuminaXDG.h> -#include <LuminaOS.h> - -MonitorWidget::MonitorWidget(QWidget *parent) : QWidget(parent), ui(new Ui::MonitorWidget()){ - ui->setupUi(this); //load the designer form - upTimer = new QTimer(this); - upTimer->setInterval(2000); //update every 2 seconds - connect(upTimer, SIGNAL(timeout()), this, SLOT(UpdateStats()) ); - LoadIcons(); - upTimer->start(); -} - -MonitorWidget::~MonitorWidget(){ - //qDebug() << "Removing MonitorWidget"; -} - -void MonitorWidget::LoadIcons(){ - ui->tabWidget->setTabIcon(0,LXDG::findIcon("appointment-recurring","") ); //Summary - ui->tabWidget->setTabIcon(1,LXDG::findIcon("drive-harddisk","") ); //Disk Usage - //ui->tabWidget->setTabIcon(1,LXDG::findIcon("cpu","") ); //CPU Log - //ui->tabWidget->setTabIcon(2,LXDG::findIcon("media-flash-memory-stick","") ); //Mem Log -} - -void MonitorWidget::UpdateStats(){ - //qDebug() << "Updating System statistics..."; - ui->label_temps->setText( LOS::CPUTemperatures().join(", ") ); - if(ui->progress_cpu->isEnabled()){ - int perc = LOS::CPUUsagePercent(); - ui->progress_cpu->setValue(perc); - if(perc<0){ ui->progress_cpu->setEnabled(false); } //disable this for future checks - } - if(ui->progress_mem->isEnabled()){ - int perc = LOS::MemoryUsagePercent(); - ui->progress_mem->setValue(perc); - if(perc<0){ ui->progress_mem->setEnabled(false); } //disable this for future checks - } - ui->label_diskinfo->setText( LOS::DiskUsage().join("\n") ); - //Also perform/update the logs as necessary - // -- TO DO -- -} - -SysMonitorPlugin::SysMonitorPlugin(QWidget *parent, QString ID) : LDPlugin(parent, ID){ - monitor = new MonitorWidget(this); - this->setLayout( new QVBoxLayout() ); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(monitor); - - //this->setInitialSize(monitor->sizeHint().width(),monitor->sizeHint().height()); -} - -SysMonitorPlugin::~SysMonitorPlugin(){ - //qDebug() << "Remove SysMonitorPlugin"; -}
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.h b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.h deleted file mode 100644 index 618ac8f4..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.h +++ /dev/null @@ -1,62 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin is a simple hardware status monitor on the desktop -//=========================================== -#ifndef _LUMINA_DESKTOP_PLUGIN_HW_MONITOR_WIDGET_H -#define _LUMINA_DESKTOP_PLUGIN_HW_MONITOR_WIDGET_H - -#include <QTimer> -#include <QWidget> - -#include "../LDPlugin.h" - -namespace Ui{ - class MonitorWidget; -}; - -class MonitorWidget : public QWidget{ - Q_OBJECT -public: - MonitorWidget(QWidget *parent = 0); - ~MonitorWidget(); - -public slots: - void LoadIcons(); - -private: - Ui::MonitorWidget *ui; - QTimer *upTimer; - -private slots: - void UpdateStats(); -}; - -// Wrapper class to put this into a desktop plugin container -class SysMonitorPlugin : public LDPlugin{ - Q_OBJECT -public: - SysMonitorPlugin(QWidget* parent, QString ID); - ~SysMonitorPlugin(); - - virtual QSize defaultPluginSize(){ - // The returned QSize is in grid points (typically 100 or 200 pixels square) - return QSize(3,2); - } - -private: - MonitorWidget *monitor; - -public slots: - void LocaleChange(){ - QTimer::singleShot(0,monitor, SLOT(LoadIcons())); - } - void ThemeChange(){ - QTimer::singleShot(0,monitor, SLOT(LoadIcons())); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.ui b/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.ui deleted file mode 100644 index 8798bc25..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/desktop-plugins/systemmonitor/MonitorWidget.ui +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>MonitorWidget</class> - <widget class="QWidget" name="MonitorWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>300</width> - <height>122</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QTabWidget" name="tabWidget"> - <property name="currentIndex"> - <number>0</number> - </property> - <widget class="QWidget" name="tab_summary"> - <attribute name="title"> - <string>Summary</string> - </attribute> - <layout class="QFormLayout" name="formLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>CPU Temp:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_temps"> - <property name="text"> - <string notr="true"/> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>CPU Usage:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QProgressBar" name="progress_cpu"> - <property name="value"> - <number>0</number> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Mem Usage:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QProgressBar" name="progress_mem"> - <property name="value"> - <number>0</number> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_disks"> - <attribute name="title"> - <string>Disk I/O</string> - </attribute> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QScrollArea" name="scrollArea"> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>292</width> - <height>89</height> - </rect> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QLabel" name="label_diskinfo"> - <property name="text"> - <string notr="true"/> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/LPPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/LPPlugin.h deleted file mode 100644 index c4c76297..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/LPPlugin.h +++ /dev/null @@ -1,77 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is the generic container layout for all panel plugins -// Simply subclass this when creating a new plugin to enable correct -// visibility and usage within a panel -//=========================================== -#ifndef _LUMINA_DESKTOP_PANEL_PLUGIN_H -#define _LUMINA_DESKTOP_PANEL_PLUGIN_H - -#include <QObject> -#include <QWidget> -#include <QString> -#include <QBoxLayout> -#include <QApplication> - -class LPPlugin : public QWidget{ - Q_OBJECT - -private: - QBoxLayout *LY; - QString plugintype; - -public: - LPPlugin(QWidget *parent = 0, QString ptype="unknown", bool horizontal = true) : QWidget(parent){ - plugintype=ptype; - this->setContentsMargins(1,1,1,1); - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - this->setFocusPolicy(Qt::NoFocus); //no keyboard focus on the panel/plugins - if(horizontal){LY = new QBoxLayout(QBoxLayout::LeftToRight, this); } - else{ LY = new QBoxLayout(QBoxLayout::TopToBottom, this); } - this->setObjectName(ptype.section("---",0,0)); - LY->setContentsMargins(0,0,0,0); - LY->setSpacing(1); - this->setLayout(LY); - connect(QApplication::instance(), SIGNAL(LocaleChanged()), this, SLOT(LocaleChange()) ); - connect(QApplication::instance(), SIGNAL(IconThemeChanged()), this, SLOT(ThemeChange()) ); - } - - ~LPPlugin(){ - } - - QBoxLayout* layout(){ - return LY; - } - - QString type(){ - return plugintype; - } - - virtual void AboutToClose(){ - //This needs to be re-implemented in the subclasses plugin - //This is for any last-minute cleanup before the plugin gets deleted - } - -public slots: - virtual void LocaleChange(){ - //This needs to be re-implemented in the subclassed plugin - //This is where all text is set/translated - } - virtual void ThemeChange(){ - //This needs to be re-implemented in the subclasses plugin - //This is where all the visuals are set if using Theme-dependant icons. - } - virtual void OrientationChange(){ - //This needs to be re-implemented in the subclasses plugin - //This is where any horizontal/vertical orientations can be changed appropriately - } - -signals: - void MenuClosed(); //This needs to be emitted when any plugin's menu is closed for some reason (check/set focus properly) -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/LTBWidget.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/LTBWidget.h deleted file mode 100644 index 560e5811..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/LTBWidget.h +++ /dev/null @@ -1,71 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2013, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_TOOLBAR_WIDGET_H -#define _LUMINA_TOOLBAR_WIDGET_H - -#include <QToolButton> -#include <QEvent> -#include <QWheelEvent> - -#include "Globals.h" -#include <LuminaX11.h> - -class LTBWidget : public QToolButton{ - Q_OBJECT - -private: - LXCB::WINDOWVISIBILITY cstate; - //QString rawstyle; - void updateBackground(){ - //QString background = "background: transparent; "; //default value - //QString border = "border: 1px solid transparent;"; - if(cstate == LXCB::IGNORE){ this->setObjectName(""); } //just use the defaults - else if(cstate == LXCB::VISIBLE){ this->setObjectName("WindowVisible"); }//background = "background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 240), stop:0.505682 rgba(240, 240, 240, 150), stop:1 rgba(210, 210, 210, 55));"; border="border: 1px solid transparent;"; } - else if(cstate == LXCB::INVISIBLE){this->setObjectName("WindowInvisible"); } //background = "background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(215, 215, 215, 240), stop:0.505682 rgba(184, 185, 186, 150), stop:1 rgba(221, 246, 255, 55));"; border="border: 1px solid transparent;"; } - else if(cstate == LXCB::ACTIVE){ this->setObjectName("WindowActive"); }//background= "background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(241, 233, 156, 240), stop:0.355682 rgba(255, 243, 127, 150), stop:1 rgba(221, 246, 255, 55));"; border ="border: 1px solid transparent;"; } - else if(cstate == LXCB::ATTENTION){ this->setObjectName("WindowAttention"); }//background= "background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(252, 187, 127, 240), stop:0.505682 rgba(255, 222, 197, 150), stop:1 rgba(221, 246, 255, 55));"; border="border: 1px solid transparent;"; } - this->setStyleSheet(""); //force the object to re-evaluate the current theme stylesheet and update visuals - //QString raw = rawstyle; - //this->setStyleSheet( raw.replace("%1",background).replace("%2", border) ); - } - -signals: - - void wheelScroll(int change); - -public: - LTBWidget(QWidget* parent) : QToolButton(parent){ - //this->setStyleSheet( this->styleSheet()+" LTBWidget::menu-indicator{image: none;}"); - cstate = LXCB::IGNORE; - - this->setPopupMode(QToolButton::InstantPopup); - this->setAutoRaise(true); - - //rawstyle = "LTBWidget{ %1 %2 border-radius: 5px;} LTBWidget::menu-indicator{image: none;} LTBWidget::hover{ %1 border: 1px solid black; border-radius: 5px; } LTBWidget::menu-button{ background: transparent; width: 15px; } LTBWidget[popupMode=\"1\"]{%1 %2 border-radius: 5px; padding-right: 15px;} LTBWidget[popupMode=\"1\"]::hover{%1 border: 1px solid black; border-radius: 5px; padding-right: 15px}"; - updateBackground(); - } - - ~LTBWidget(){ - } - - void setState(LXCB::WINDOWVISIBILITY newstate){ - cstate = newstate; - updateBackground(); - } - -public slots: - - -protected: - void wheelEvent(QWheelEvent *event){ - int change = event->delta()/120; // 1/15th of a rotation (delta/120) is usually one "click" of the wheel - emit wheelScroll(change); - } - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/NewPP.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/NewPP.h deleted file mode 100644 index 3a5f6a5b..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/NewPP.h +++ /dev/null @@ -1,82 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is the interface to load all the different panel plugins -//=========================================== -#ifndef _LUMINA_DESKTOP_NEW_PANEL_PLUGIN_H -#define _LUMINA_DESKTOP_NEW_PANEL_PLUGIN_H - -#include <QDebug> - -//List all the individual plugin includes here -#include "LPPlugin.h" -#include "userbutton/LUserButton.h" -#include "desktopbar/LDeskBar.h" -#include "spacer/LSpacer.h" -#include "line/LLine.h" -#include "clock/LClock.h" -#include "battery/LBattery.h" -#include "desktopswitcher/LDesktopSwitcher.h" -#include "taskmanager/LTaskManagerPlugin.h" -#include "systemdashboard/LSysDashboard.h" -#include "showdesktop/LHomeButton.h" -#include "appmenu/LAppMenuPlugin.h" -#include "applauncher/AppLaunchButton.h" -#include "systemstart/LStartButton.h" -#include "audioplayer/LPAudioPlayer.h" -#include "jsonmenu/PPJsonMenu.h" -//#include "quickcontainer/QuickPPlugin.h" -#include "systemtray/LSysTray.h" //must be last due to X11 compile issues - - -class NewPP{ -public: - static LPPlugin* createPlugin(QString plugin, QWidget* parent = 0, bool horizontal = true){ - LPPlugin *plug = 0; - if(plugin.startsWith("userbutton---")){ - plug = new LUserButtonPlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("homebutton---")){ - plug = new LHomeButtonPlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("desktopbar---")){ - plug = new LDeskBarPlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("spacer---")){ - plug = new LSpacerPlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("line---")){ - plug = new LLinePlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("taskmanager")){ - //This one can be "taskmanager[-nogroups]---" - plug = new LTaskManagerPlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("systemtray---")){ - plug = new LSysTray(parent, plugin, horizontal); - }else if(plugin.startsWith("desktopswitcher---")){ - plug = new LDesktopSwitcher(parent, plugin, horizontal); - }else if(plugin.startsWith("battery---") && LOS::hasBattery()){ - plug = new LBattery(parent, plugin, horizontal); - }else if(plugin.startsWith("clock---")){ - plug = new LClock(parent, plugin, horizontal); - }else if(plugin.startsWith("systemdashboard---")){ - plug = new LSysDashboard(parent, plugin, horizontal); - }else if(plugin.startsWith("appmenu---")){ - plug = new LAppMenuPlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("systemstart---")){ - plug = new LStartButtonPlugin(parent, plugin, horizontal); - }else if(plugin.startsWith("audioplayer---")){ - plug = new LPAudioPlayer(parent, plugin, horizontal); - }else if(plugin.section("::::",0,0)=="jsonmenu" && plugin.split("::::").length()>=3 ){ - plug = new LPJsonMenu(parent, plugin, horizontal); - }else if(plugin.section("---",0,0).section("::",0,0)=="applauncher"){ - plug = new AppLaunchButtonPlugin(parent, plugin, horizontal); - //}else if( plugin.section("---",0,0).startsWith("quick-") && LUtils::validQuickPlugin(plugin.section("---",0,0)) ){ - //plug = new QuickPPlugin(parent, plugin, horizontal); - }else{ - qWarning() << "Invalid Panel Plugin:"<<plugin << " -- Ignored"; - } - return plug; - } - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h deleted file mode 100644 index 1c8085f6..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h +++ /dev/null @@ -1,58 +0,0 @@ -//=========================================== -// Lumina Desktop source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This is a simple subclass of a QToolButton so it can -// provice text rotated vertically as needed -//=========================================== -#ifndef _LUMINA_DESKTOP_ROTATE_TOOLBUTTON_H -#define _LUMINA_DESKTOP_ROTATE_TOOLBUTTON_H - -#include <QStylePainter> -#include <QStyleOptionToolButton> -#include <QToolButton> -#include <QTransform> - -class RotateToolButton : public QToolButton{ - Q_OBJECT - -private: - int rotate_degrees; - void paintEvent(QPaintEvent*){ - /* NOTE: This is what a standard QToolButton performs (peeked at Qt source code for this tidbit) - QStylePainter p(this); - QStyleOptionToolButton opt; - initStyleOption(&opt); - p.drawComplexControl(QStyle::CC_ToolButton, opt); - */ - QStylePainter p(this); - QStyleOptionToolButton opt; - initStyleOption(&opt); - //Apply the rotation matrix to the painter before starting the paint - QTransform trans = QTransform( p.transform() ).rotate(rotate_degrees); - p.setTransform(trans, false); //merging already taken care of - //Now do the normal painting procedure - p.drawComplexControl(QStyle::CC_ToolButton, opt); - } - -public: - RotateToolButton(QWidget *parent = Q_NULLPTR) : QToolButton(parent){ - rotate_degrees = 0; //no rotation initially - } - - void setRotation(int degrees){ - rotate_degrees = degrees; - this->update(); //trigger a paint event - } - - /*virtual void setText(QString text){ - this->setText(text); - if(rotate_degrees !=0){ - this->setSizeHint( this->sizeHint() - } - }*/ -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/applauncher/AppLaunchButton.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/applauncher/AppLaunchButton.cpp deleted file mode 100644 index 1fd819b5..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/applauncher/AppLaunchButton.cpp +++ /dev/null @@ -1,77 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "AppLaunchButton.h" -#include "../../LSession.h" - -#include <LuminaXDG.h> -#include <LUtils.h> -#include <QInputDialog> - -AppLaunchButtonPlugin::AppLaunchButtonPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonIconOnly); - appfile = id.section("---",0,0).section("::",1,1); - if(!QFile::exists(appfile) && appfile.endsWith(".desktop")){ - //might be a relative path - try to find the file - appfile = LUtils::AppToAbsolute(appfile.section("/",-1) ); - } - if(!QFile::exists(appfile)){ appfile.clear(); } - connect(button, SIGNAL(clicked()), this, SLOT(AppClicked())); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - - QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes -} - -AppLaunchButtonPlugin::~AppLaunchButtonPlugin(){ - -} - -void AppLaunchButtonPlugin::updateButtonVisuals(){ - QIcon icon; - QString tooltip = tr("Click to assign an application"); - if(appfile.endsWith(".desktop")){ - XDGDesktop desk(appfile); - if(desk.isValid()){ - icon = LXDG::findIcon(desk.icon, "unknown"); - tooltip = QString(tr("Launch %1")).arg(desk.name); - }else{ - icon = LXDG::findIcon("task-attention",""); - appfile.clear(); - } - }else if(QFile::exists(appfile)){ - icon = LXDG::findMimeIcon(appfile.section("/",-1)); - tooltip = QString(tr("Open %1")).arg(appfile.section("/",-1)); - }else{ - icon = LXDG::findIcon("task-attention", ""); - } - button->setIcon( icon ); - button->setToolTip(tooltip); -} - -// ======================== -// PRIVATE FUNCTIONS -// ======================== -void AppLaunchButtonPlugin::AppClicked(){ - if(appfile.isEmpty()){ - //No App File selected - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); - QStringList names; - for(int i=0; i<apps.length(); i++){ names << apps[i]->name; } - bool ok = false; - QString app = QInputDialog::getItem(this, tr("Select Application"), tr("Name:"), names, 0, false, &ok); - if(!ok || names.indexOf(app)<0){ return; } //cancelled - appfile = apps[ names.indexOf(app) ]->filePath; - //Still need to find a way to set this value persistently - // --- perhaps replace the plugin in the desktop settings file with the new path? - // --- "applauncher::broken---<something>" -> "applauncher::fixed---<something>" ? - QTimer::singleShot(0,this, SLOT(updateButtonVisuals())); - }else{ - LSession::LaunchApplication("lumina-open \""+appfile+"\""); - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/applauncher/AppLaunchButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/applauncher/AppLaunchButton.h deleted file mode 100644 index 3aa3c7ad..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/applauncher/AppLaunchButton.h +++ /dev/null @@ -1,63 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin is a simple button to launch a single application -//=========================================== -#ifndef _LUMINA_DESKTOP_LAUNCH_APP_PANEL_PLUGIN_H -#define _LUMINA_DESKTOP_LAUNCH_APP_PANEL_PLUGIN_H - -// Qt includes -#include <QToolButton> -#include <QString> -#include <QWidget> - - -// Lumina-desktop includes -#include "../LPPlugin.h" //main plugin widget - -// libLumina includes -#include "LuminaXDG.h" - -// PANEL PLUGIN BUTTON -class AppLaunchButtonPlugin : public LPPlugin{ - Q_OBJECT - -public: - AppLaunchButtonPlugin(QWidget *parent = 0, QString id = "applauncher", bool horizontal=true); - ~AppLaunchButtonPlugin(); - -private: - QToolButton *button; - QString appfile; - - void updateButtonVisuals(); - -private slots: - void AppClicked(); - -public slots: - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - } - this->layout()->update(); - updateButtonVisuals(); - } - - void LocaleChange(){ - updateButtonVisuals(); - } - - void ThemeChange(){ - updateButtonVisuals(); - } -}; - -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/appmenu/LAppMenuPlugin.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/appmenu/LAppMenuPlugin.cpp deleted file mode 100644 index e3be55c2..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/appmenu/LAppMenuPlugin.cpp +++ /dev/null @@ -1,142 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LAppMenuPlugin.h" -#include "../../LSession.h" - -#include <LuminaXDG.h> - -LAppMenuPlugin::LAppMenuPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - mainmenu = new QMenu(this); - button->setMenu( mainmenu ); - button->setPopupMode(QToolButton::InstantPopup); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - - connect(mainmenu, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - connect(mainmenu, SIGNAL(triggered(QAction*)), this, SLOT(LaunchItem(QAction*)) ); - connect(LSession::handle()->applicationMenu(), SIGNAL(AppMenuUpdated()), this, SLOT(UpdateMenu())); - QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes - QTimer::singleShot(0,this, SLOT(UpdateMenu()) ); - //Setup the global shortcut handling for opening the start menu - connect(QApplication::instance(), SIGNAL(StartButtonActivated()), this, SLOT(shortcutActivated()) ); - LSession::handle()->registerStartButton(this->type()); -} - -LAppMenuPlugin::~LAppMenuPlugin(){ - -} - -void LAppMenuPlugin::updateButtonVisuals(){ - button->setToolTip( tr("Quickly launch applications or open files")); - button->setText( tr("Applications") ); - //Use the TrueOS icon by default (or the Lumina icon for non-TrueOS systems) - button->setIcon( LXDG::findIcon("start-here-lumina","Lumina-DE") ); -} - -// ======================== -// PRIVATE FUNCTIONS -// ======================== -void LAppMenuPlugin::shortcutActivated(){ - if(LSession::handle()->registerStartButton(this->type())){ - if(button->menu()->isVisible()){ button->menu()->hide(); } - else{ button->showMenu(); } - } -} - -void LAppMenuPlugin::LaunchItem(QAction* item){ - QString appFile = item->whatsThis(); - if(appFile.startsWith("internal::")){ - appFile = appFile.section("::",1,50); //cut off the "internal" flag - if(appFile=="logout"){ LSession::handle()->systemWindow(); } - }else if(!appFile.isEmpty()){ - LSession::LaunchApplication("lumina-open "+appFile); - } -} - -void LAppMenuPlugin::UpdateMenu(){ - mainmenu->clear(); - QHash<QString, QList<XDGDesktop*> > *HASH = LSession::handle()->applicationMenu()->currentAppHash(); - //Now Re-create the menu (orignally copied from the AppMenu class) - //Add link to the file manager - QAction *tmpact = mainmenu->addAction( LXDG::findIcon("user-home", ""), tr("Browse Files") ); - tmpact->setWhatsThis("\""+QDir::homePath()+"\""); - //--Look for the app store - XDGDesktop store(LOS::AppStoreShortcut()); - if(store.isValid()){ - tmpact = mainmenu->addAction( LXDG::findIcon(store.icon, ""), tr("Install Applications") ); - tmpact->setWhatsThis("\""+store.filePath+"\""); - } - //--Look for the control panel - XDGDesktop controlp(LOS::ControlPanelShortcut()); - if(controlp.isValid()){ - tmpact = mainmenu->addAction( LXDG::findIcon(controlp.icon, ""), tr("Control Panel") ); - tmpact->setWhatsThis("\""+controlp.filePath+"\""); - } - mainmenu->addSeparator(); - //--Now create the sub-menus - QStringList cats = HASH->keys(); - cats.sort(); //make sure they are alphabetical - for(int i=0; i<cats.length(); i++){ - //Make sure they are translated and have the right icons - QString name, icon; - if(cats[i]=="All"){continue; } //skip this listing for the menu - else if(cats[i] == "Multimedia"){ name = tr("Multimedia"); icon = "applications-multimedia"; } - else if(cats[i] == "Development"){ name = tr("Development"); icon = "applications-development"; } - else if(cats[i] == "Education"){ name = tr("Education"); icon = "applications-education"; } - else if(cats[i] == "Game"){ name = tr("Games"); icon = "applications-games"; } - else if(cats[i] == "Graphics"){ name = tr("Graphics"); icon = "applications-graphics"; } - else if(cats[i] == "Network"){ name = tr("Network"); icon = "applications-internet"; } - else if(cats[i] == "Office"){ name = tr("Office"); icon = "applications-office"; } - else if(cats[i] == "Science"){ name = tr("Science"); icon = "applications-science"; } - else if(cats[i] == "Settings"){ name = tr("Settings"); icon = "preferences-system"; } - else if(cats[i] == "System"){ name = tr("System"); icon = "applications-system"; } - else if(cats[i] == "Utility"){ name = tr("Utility"); icon = "applications-utilities"; } - else if(cats[i] == "Wine"){ name = tr("Wine"); icon = "wine"; } - else{ name = tr("Unsorted"); icon = "applications-other"; } - - QMenu *menu = new QMenu(name, this); - menu->setIcon(LXDG::findIcon(icon,"")); - QList<XDGDesktop*> appL = HASH->value(cats[i]); - for( int a=0; a<appL.length(); a++){ - if(appL[a]->actions.isEmpty()){ - //Just a single entry point - no extra actions - QAction *act = new QAction(LXDG::findIcon(appL[a]->icon, ""), appL[a]->name, menu); - act->setToolTip(appL[a]->comment); - act->setWhatsThis("\""+appL[a]->filePath+"\""); - menu->addAction(act); - }else{ - //This app has additional actions - make this a sub menu - // - first the main menu/action - QMenu *submenu = new QMenu(appL[a]->name, menu); - submenu->setIcon( LXDG::findIcon(appL[a]->icon,"") ); - //This is the normal behavior - not a special sub-action (although it needs to be at the top of the new menu) - QAction *act = new QAction(LXDG::findIcon(appL[a]->icon, ""), appL[a]->name, submenu); - act->setToolTip(appL[a]->comment); - act->setWhatsThis(appL[a]->filePath); - submenu->addAction(act); - //Now add entries for every sub-action listed - for(int sa=0; sa<appL[a]->actions.length(); sa++){ - QAction *sact = new QAction(LXDG::findIcon(appL[a]->actions[sa].icon, appL[a]->icon), appL[a]->actions[sa].name, this); - sact->setToolTip(appL[a]->comment); - sact->setWhatsThis("-action \""+appL[a]->actions[sa].ID+"\" \""+appL[a]->filePath+"\""); - submenu->addAction(sact); - } - menu->addMenu(submenu); - } - }//end loop over apps within this category - mainmenu->addMenu(menu); - } //end loop over categories - //Now add any logout options - mainmenu->addSeparator(); - //QMenu *tmpmenu = mainmenu->addMenu(LXDG::findIcon("system-log-out",""), tr("Leave")); - tmpact =mainmenu->addAction(LXDG::findIcon("system-log-out"),tr("Leave")); - tmpact->setWhatsThis("internal::logout"); - -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/appmenu/LAppMenuPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/appmenu/LAppMenuPlugin.h deleted file mode 100644 index 659d781f..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/appmenu/LAppMenuPlugin.h +++ /dev/null @@ -1,64 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin is a re-creation of the classic "start" menu -//=========================================== -#ifndef _LUMINA_DESKTOP_APP_MENU_PANEL_PLUGIN_H -#define _LUMINA_DESKTOP_APP_MENU_PANEL_PLUGIN_H - -// Qt includes -#include <QMenu> -#include <QToolButton> -#include <QString> -#include <QWidget> - - -// Lumina-desktop includes -#include "../LPPlugin.h" //main plugin widget - - -// PANEL PLUGIN BUTTON -class LAppMenuPlugin : public LPPlugin{ - Q_OBJECT - -public: - LAppMenuPlugin(QWidget *parent = 0, QString id = "appmenu", bool horizontal=true); - ~LAppMenuPlugin(); - -private: - QToolButton *button; - QMenu *mainmenu; - - void updateButtonVisuals(); - -private slots: - void shortcutActivated(); - void LaunchItem(QAction* item); - void UpdateMenu(); - -public slots: - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - } - this->layout()->update(); - updateButtonVisuals(); - } - - void LocaleChange(){ - updateButtonVisuals(); - } - - void ThemeChange(){ - updateButtonVisuals(); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/LPAudioPlayer.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/LPAudioPlayer.cpp deleted file mode 100644 index 5669aaf5..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/LPAudioPlayer.cpp +++ /dev/null @@ -1,30 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Susanne Jaeckel -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LPAudioPlayer.h" -#include "LSession.h" - -LPAudioPlayer::LPAudioPlayer(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - //Setup the button - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonIconOnly); - button->setPopupMode(QToolButton::InstantPopup); //make sure it runs the update routine first - //connect(button, SIGNAL(clicked()), this, SLOT(openMenu())); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - wact = new QWidgetAction(this); - aplayer = new PPlayerWidget(this); - button ->setMenu(new QMenu(this) ); - wact->setDefaultWidget(aplayer); - button->menu()->addAction(wact); - //Now start up the widgets - button->setIcon( LXDG::findIcon("audio-volume-high","") ); - QTimer::singleShot(0,this,SLOT(OrientationChange()) ); //update the sizing/icon -} - -LPAudioPlayer::~LPAudioPlayer(){ -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/LPAudioPlayer.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/LPAudioPlayer.h deleted file mode 100644 index e5132b1f..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/LPAudioPlayer.h +++ /dev/null @@ -1,49 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_PANEL_AUDIO_PLAYER_PLUGIN_H -#define _LUMINA_PANEL_AUDIO_PLAYER_PLUGIN_H - -#include "../../Globals.h" -#include "../LTBWidget.h" -#include "../LPPlugin.h" -#include "PPlayerWidget.h" - -class LPAudioPlayer : public LPPlugin{ - Q_OBJECT -public: - LPAudioPlayer(QWidget *parent = 0, QString id = "audioplayer", bool horizontal=true); - ~LPAudioPlayer(); - -private: - QToolButton *button; - QWidgetAction *wact; - PPlayerWidget *aplayer; - - //int iconOld; - -private slots: - //void updateBattery(bool force = false); - //QString getRemainingTime(); - -public slots: - void LocaleChange(){ - //updateBattery(true); - } - - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - } - this->layout()->update(); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.cpp deleted file mode 100644 index 023e20c7..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.cpp +++ /dev/null @@ -1,258 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "PPlayerWidget.h" -#include "ui_PPlayerWidget.h" - -#include <QDir> -#include <QUrl> -#include <QInputDialog> -#include <QFileDialog> -#include <LuminaXDG.h> -#include <QDebug> -#include <QDesktopWidget> - -PPlayerWidget::PPlayerWidget(QWidget *parent) : QWidget(parent), ui(new Ui::PPlayerWidget()){ - ui->setupUi(this); //load the designer form - PLAYER = new QMediaPlayer(this); - PLAYER->setVolume(100); - PLAYER->setNotifyInterval(1000); //1 second interval (just needs to be a rough estimate) - PLAYLIST = new QMediaPlaylist(this); - PLAYLIST->setPlaybackMode(QMediaPlaylist::Sequential); - PLAYER->setPlaylist(PLAYLIST); - - configMenu = new QMenu(this); - ui->tool_config->setMenu(configMenu); - addMenu = new QMenu(this); - ui->tool_add->setMenu(addMenu); - - updatinglists = false; //start off as false - - ui->combo_playlist->setContextMenuPolicy(Qt::NoContextMenu); - - LoadIcons(); - playerStateChanged(); //update button visibility - currentSongChanged(); - //Connect all the signals/slots - //connect(infoTimer, SIGNAL(timeout()), this, SLOT(rotateTrackInfo()) ); - connect(PLAYER, SIGNAL(positionChanged(qint64)),this, SLOT(updateProgress(qint64)) ); - connect(PLAYER, SIGNAL(durationChanged(qint64)), this, SLOT(updateMaxProgress(qint64)) ); - connect(PLAYLIST, SIGNAL(mediaChanged(int, int)), this, SLOT(playlistChanged()) ); - connect(PLAYER, SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(playerStateChanged()) ); - connect(PLAYLIST, SIGNAL(currentMediaChanged(const QMediaContent&)), this, SLOT(currentSongChanged()) ); - connect(ui->combo_playlist, SIGNAL(currentIndexChanged(int)), this, SLOT(userlistSelectionChanged()) ); - connect(ui->tool_play, SIGNAL(clicked()), this, SLOT(playClicked()) ); - connect(ui->tool_pause, SIGNAL(clicked()), this, SLOT(pauseClicked()) ); - connect(ui->tool_stop, SIGNAL(clicked()), this, SLOT(stopClicked()) ); - connect(ui->tool_next, SIGNAL(clicked()), this, SLOT(nextClicked()) ); - connect(ui->tool_prev, SIGNAL(clicked()), this, SLOT(prevClicked()) ); - -} - -PPlayerWidget::~PPlayerWidget(){ - //qDebug() << "Removing PPlayerWidget"; -} - -void PPlayerWidget::LoadIcons(){ - ui->tool_stop->setIcon( LXDG::findIcon("media-playback-stop","") ); - ui->tool_play->setIcon( LXDG::findIcon("media-playback-start","") ); - ui->tool_pause->setIcon( LXDG::findIcon("media-playback-pause","") ); - ui->tool_next->setIcon( LXDG::findIcon("media-skip-forward","") ); - ui->tool_prev->setIcon( LXDG::findIcon("media-skip-backward","") ); - ui->tool_add->setIcon( LXDG::findIcon("list-add","") ); - ui->tool_config->setIcon( LXDG::findIcon("configure","") ); - //Now re-assemble the menus as well - configMenu->clear(); - configMenu->addAction(LXDG::findIcon("media-eject",""), tr("Clear Playlist"), this, SLOT(ClearPlaylist())); - configMenu->addAction(LXDG::findIcon("roll",""), tr("Shuffle Playlist"), this, SLOT(ShufflePlaylist())); - addMenu->clear(); - addMenu->addAction(LXDG::findIcon("document-new",""), tr("Add Files"), this, SLOT(AddFilesToPlaylist())); - addMenu->addAction(LXDG::findIcon("folder-new",""), tr("Add Directory"), this, SLOT(AddDirToPlaylist())); - addMenu->addAction(LXDG::findIcon("download",""), tr("Add URL"), this, SLOT(AddURLToPlaylist())); -} - -void PPlayerWidget::playClicked(){ - PLAYER->play(); -} - -void PPlayerWidget::pauseClicked(){ - PLAYER->pause(); -} - -void PPlayerWidget::stopClicked(){ - PLAYER->stop(); -} - -void PPlayerWidget::nextClicked(){ - PLAYLIST->next(); -} - -void PPlayerWidget::prevClicked(){ - PLAYLIST->previous(); -} - -void PPlayerWidget::AddFilesToPlaylist(){ - //Prompt the user to select multimedia files - QFileDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setFileMode(QFileDialog::ExistingFiles); - dlg.setAcceptMode(QFileDialog::AcceptOpen); - dlg.setNameFilter( tr("Multimedia Files")+" ("+LXDG::findAVFileExtensions().join(" ")+")"); - dlg.setWindowTitle(tr("Select Multimedia Files")); - dlg.setWindowIcon( LXDG::findIcon("file-open","") ); - dlg.setDirectory(QDir::homePath()); //start in the home directory - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - QApplication::processEvents(); - } - QList<QUrl> files = dlg.selectedUrls(); - if(files.isEmpty() || dlg.result()!=QDialog::Accepted){ return; } //cancelled - //Make this use show/processEvents later - //QList<QUrl> files = QFileDialog::getOpenFileUrls(0, tr("Select Multimedia Files"), QDir::homePath(), "Multimedia Files ("+LXDG::findAVFileExtensions().join(" ")+")"); - QList<QMediaContent> urls; - for(int i=0; i<files.length(); i++){ - urls << QMediaContent(files[i]); - } - PLAYLIST->addMedia(urls); - playlistChanged(); -} - -void PPlayerWidget::AddDirToPlaylist(){ - QFileDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setFileMode(QFileDialog::Directory); - dlg.setOption(QFileDialog::ShowDirsOnly, true); - dlg.setAcceptMode(QFileDialog::AcceptOpen); - dlg.setWindowTitle(tr("Select Multimedia Directory")); - dlg.setWindowIcon( LXDG::findIcon("folder-open","") ); - dlg.setDirectory(QDir::homePath()); //start in the home directory - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - QApplication::processEvents(); - } - if(dlg.result() != QDialog::Accepted){ return; } //cancelled - QStringList sel = dlg.selectedFiles(); - if(sel.isEmpty()){ return; } //cancelled - QString dirpath = sel.first(); //QFileDialog::getExistingDirectory(0, tr("Select a Multimedia Directory"), QDir::homePath() ); - if(dirpath.isEmpty()){ return; } //cancelled - QDir dir(dirpath); - QFileInfoList files = dir.entryInfoList(LXDG::findAVFileExtensions(), QDir::Files | QDir::NoDotAndDotDot, QDir::Name); - if(files.isEmpty()){ return; } //nothing in this directory - QList<QMediaContent> urls; - for(int i=0; i<files.length(); i++){ - urls << QMediaContent(QUrl::fromLocalFile(files[i].absoluteFilePath()) ); - } - PLAYLIST->addMedia(urls); - playlistChanged(); -} - -void PPlayerWidget::AddURLToPlaylist(){ - QInputDialog dlg(0, Qt::Dialog | Qt::WindowStaysOnTopHint ); - dlg.setInputMode(QInputDialog::TextInput); - dlg.setLabelText(tr("Enter a valid URL for a multimedia file or stream:")); - dlg.setTextEchoMode(QLineEdit::Normal); - dlg.setWindowTitle(tr("Multimedia URL")); - dlg.setWindowIcon( LXDG::findIcon("download","") ); - //ensure it is centered on the current screen - QPoint center = QApplication::desktop()->screenGeometry(this).center(); - dlg.move( center.x()-(dlg.width()/2), center.y()-(dlg.height()/2) ); - dlg.show(); - while( dlg.isVisible() ){ - QApplication::processEvents(); - } - QString url = dlg.textValue(); - if(url.isEmpty() || dlg.result()!=QDialog::Accepted){ return; } //cancelled - - //QString url = QInputDialog::getText(0, tr("Multimedia URL"), tr("Enter a valid URL for a multimedia file or stream"), QLineEdit::Normal); - //if(url.isEmpty()){ return; } - QUrl newurl(url); - if(!newurl.isValid()){ return; } //invalid URL - PLAYLIST->addMedia(newurl); - playlistChanged(); -} - -void PPlayerWidget::ClearPlaylist(){ - PLAYER->stop(); - PLAYLIST->clear(); - playlistChanged(); -} - -void PPlayerWidget::ShufflePlaylist(){ - PLAYLIST->shuffle(); -} - - -void PPlayerWidget::userlistSelectionChanged(){ //front-end combobox was changed by the user - if(updatinglists){ return; } - PLAYLIST->setCurrentIndex( ui->combo_playlist->currentIndex() ); -} - -void PPlayerWidget::playerStateChanged(){ - switch( PLAYER->state() ){ - case QMediaPlayer::StoppedState: - ui->tool_stop->setVisible(false); - ui->tool_play->setVisible(true); - ui->tool_pause->setVisible(false); - ui->progressBar->setVisible(false); - break; - case QMediaPlayer::PausedState: - ui->tool_stop->setVisible(true); - ui->tool_play->setVisible(true); - ui->tool_pause->setVisible(false); - ui->progressBar->setVisible(true); - break; - case QMediaPlayer::PlayingState: - ui->tool_stop->setVisible(true); - ui->tool_play->setVisible(false); - ui->tool_pause->setVisible(true); - ui->progressBar->setVisible(true); - break; - } - -} - -void PPlayerWidget::playlistChanged(){ - updatinglists = true; - ui->combo_playlist->clear(); - for(int i=0; i<PLAYLIST->mediaCount(); i++){ - QUrl url = PLAYLIST->media(i).canonicalUrl(); - if(url.isLocalFile()){ - ui->combo_playlist->addItem(LXDG::findMimeIcon(url.fileName().section(".",-1)), url.fileName() ); - }else{ - ui->combo_playlist->addItem(LXDG::findIcon("download",""), url.toString() ); - } - } - if(PLAYLIST->currentIndex()<0 && PLAYLIST->mediaCount()>0){ PLAYLIST->setCurrentIndex(0); } - ui->combo_playlist->setCurrentIndex(PLAYLIST->currentIndex()); - - updatinglists = false; -} - -void PPlayerWidget::currentSongChanged(){ - if(PLAYLIST->currentIndex() != ui->combo_playlist->currentIndex()){ - updatinglists = true; - ui->combo_playlist->setCurrentIndex(PLAYLIST->currentIndex()); - updatinglists = false; - } - ui->tool_next->setEnabled( PLAYLIST->nextIndex() >= 0 ); - ui->tool_prev->setEnabled( PLAYLIST->previousIndex() >= 0); - ui->label_num->setText( QString::number( PLAYLIST->currentIndex()+1)+"/"+QString::number(PLAYLIST->mediaCount()) ); - ui->progressBar->setRange(0, PLAYER->duration() ); - ui->progressBar->setValue(0); -} - -void PPlayerWidget::updateProgress(qint64 val){ - //qDebug() << "Update Progress Bar:" << val; - ui->progressBar->setValue(val); -} - -void PPlayerWidget::updateMaxProgress(qint64 val){ - ui->progressBar->setRange(0,val); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.h deleted file mode 100644 index a551d74f..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.h +++ /dev/null @@ -1,59 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin is a simple audio player on the desktop -//=========================================== -#ifndef _LUMINA_PANEL_PLUGIN_AUDIO_PLAYER_WIDGET_H -#define _LUMINA_PANEL_PLUGIN_AUDIO_PLAYER_WIDGET_H - -#include <QMediaPlaylist> -#include <QMediaPlayer> -#include <QTimer> -#include <QWidget> -#include <QMenu> - - -namespace Ui{ - class PPlayerWidget; -}; - -class PPlayerWidget : public QWidget{ - Q_OBJECT -public: - PPlayerWidget(QWidget *parent = 0); - ~PPlayerWidget(); - -public slots: - void LoadIcons(); - -private: - Ui::PPlayerWidget *ui; - QMediaPlaylist *PLAYLIST; - QMediaPlayer *PLAYER; - QMenu *configMenu, *addMenu; - bool updatinglists; - -private slots: - void playClicked(); - void pauseClicked(); - void stopClicked(); - void nextClicked(); - void prevClicked(); - - void AddFilesToPlaylist(); - void AddDirToPlaylist(); - void AddURLToPlaylist(); - void ClearPlaylist(); - void ShufflePlaylist(); - void userlistSelectionChanged(); //front-end combobox was changed by the user - void playerStateChanged(); - void playlistChanged(); //list of items changed - void currentSongChanged(); - void updateProgress(qint64 val); - void updateMaxProgress(qint64 val); -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.ui b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.ui deleted file mode 100644 index 2d2450be..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/audioplayer/PPlayerWidget.ui +++ /dev/null @@ -1,182 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>PPlayerWidget</class> - <widget class="QWidget" name="PPlayerWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>346</width> - <height>90</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <property name="styleSheet"> - <string notr="true">QToolButton::menu-indicator{ image: none; }</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>4</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QToolButton" name="tool_config"> - <property name="text"> - <string notr="true">Config</string> - </property> - <property name="popupMode"> - <enum>QToolButton::InstantPopup</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_add"> - <property name="text"> - <string notr="true">Add</string> - </property> - <property name="popupMode"> - <enum>QToolButton::InstantPopup</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QToolButton" name="tool_prev"> - <property name="text"> - <string notr="true">prev</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_num"> - <property name="text"> - <string notr="true">1/10</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_next"> - <property name="text"> - <string notr="true">next</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QComboBox" name="combo_playlist"/> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QToolButton" name="tool_play"> - <property name="text"> - <string notr="true">Play</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_pause"> - <property name="text"> - <string notr="true">Pause</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_stop"> - <property name="text"> - <string notr="true">Stop</string> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QProgressBar" name="progressBar"> - <property name="value"> - <number>24</number> - </property> - <property name="textVisible"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/LBattery.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/LBattery.cpp deleted file mode 100644 index ee379613..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/LBattery.cpp +++ /dev/null @@ -1,115 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Susanne Jaeckel, 2015-2016 Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LBattery.h" -#include "LSession.h" - -LBattery::LBattery(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - iconOld = -1; - //Setup the widget - label = new QLabel(this); - label->setScaledContents(true); - //label->setAlignment(Qt::AlignCenter); - this->layout()->addWidget(label); - //Setup the timer - timer = new QTimer(); - timer->setInterval(5000); //update every 5 seconds - connect(timer,SIGNAL(timeout()), this, SLOT(updateBattery()) ); - timer->start(); - QTimer::singleShot(0,this,SLOT(OrientationChange()) ); //update the sizing/icon -} - -LBattery::~LBattery(){ - timer->stop(); - delete timer; -} - -void LBattery::updateBattery(bool force){ - // Get current state of charge - //QStringList result = LUtils::getCmdOutput("/usr/sbin/apm", QStringList() << "-al"); - int charge = LOS::batteryCharge(); //result.at(1).toInt(); -//qDebug() << "1: " << result.at(0).toInt() << " 2: " << result.at(1).toInt(); - int icon = -1; - if (charge > 90) { icon = 4; } - else if (charge > 70) { icon = 3; } - else if (charge > 20) { icon = 2; } - else if (charge > 5) { icon = 1; } - else if (charge > 0 ) { icon = 0; } - if(LOS::batteryIsCharging()){ icon = icon+10; } - //icon = icon + result.at(0).toInt() * 10; - if (icon != iconOld || force) { - switch (icon) { - case 0: - label->setPixmap( LXDG::findIcon("battery-caution", "").pixmap(label->size()) ); - break; - case 1: - label->setPixmap( LXDG::findIcon("battery-040", "").pixmap(label->size()) ); - break; - case 2: - label->setPixmap( LXDG::findIcon("battery-060", "").pixmap(label->size()) ); - break; - case 3: - label->setPixmap( LXDG::findIcon("battery-080", "").pixmap(label->size()) ); - break; - case 4: - label->setPixmap( LXDG::findIcon("battery-100", "").pixmap(label->size()) ); - break; - case 10: - label->setPixmap( LXDG::findIcon("battery-charging-caution", "").pixmap(label->size()) ); - break; - case 11: - label->setPixmap( LXDG::findIcon("battery-charging-040", "").pixmap(label->size()) ); - break; - case 12: - label->setPixmap( LXDG::findIcon("battery-charging-060", "").pixmap(label->size()) ); - break; - case 13: - label->setPixmap( LXDG::findIcon("battery-charging-080", "").pixmap(label->size()) ); - break; - case 14: - label->setPixmap( LXDG::findIcon("battery-charging", "").pixmap(label->size()) ); - break; - default: - label->setPixmap( LXDG::findIcon("battery-missing", "").pixmap(label->size()) ); - break; - } - if(icon<iconOld && icon==0){ - //Play some audio warning chime when - LSession::handle()->playAudioFile(LOS::LuminaShare()+"low-battery.ogg"); - } - 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;}"); } - iconOld = icon; - - } - //Now update the display - QString tt; - //Make sure the tooltip can be properly translated as necessary (Ken Moore 5/9/14) - if(icon > 9 && icon < 15){ tt = QString(tr("%1 % (Charging)")).arg(QString::number(charge)); } - else{ tt = QString( tr("%1 % (%2 Remaining)") ).arg(QString::number(charge), getRemainingTime() ); } - label->setToolTip(tt); -} - -QString LBattery::getRemainingTime(){ - int secs = LOS::batterySecondsLeft(); - if(secs < 0){ return "??"; } - QString rem; //remaining - if(secs > 3600){ - int hours = secs/3600; - rem.append( QString::number(hours)+"h "); - secs = secs - (hours*3600); - } - if(secs > 60){ - int min = secs/60; - rem.append( QString::number(min)+"m "); - secs = secs - (min*60); - } - if(secs > 0){ - rem.append(QString::number(secs)+"s"); - } - return rem; -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/LBattery.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/LBattery.h deleted file mode 100644 index 29562d5d..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/LBattery.h +++ /dev/null @@ -1,53 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Susanne Jaeckel -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_BATTERY_H -#define _LUMINA_DESKTOP_BATTERY_H - -#include <QTimer> -#include <QWidget> -#include <QString> -#include <QLabel> - -#include <LUtils.h> -#include <LuminaXDG.h> -#include <LuminaOS.h> - -#include "../../Globals.h" -//#include "../LTBWidget.h" -#include "../LPPlugin.h" - -class LBattery : public LPPlugin{ - Q_OBJECT -public: - LBattery(QWidget *parent = 0, QString id = "battery", bool horizontal=true); - ~LBattery(); - -private: - QTimer *timer; - QLabel *label; - int iconOld; - -private slots: - void updateBattery(bool force = false); - QString getRemainingTime(); - -public slots: - void LocaleChange(){ - updateBattery(true); - } - - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - label->setFixedSize( QSize(this->height(), this->height()) ); - }else{ - label->setFixedSize( QSize(this->width(), this->width()) ); - } - updateBattery(true); //force icon refresh - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/NOTES b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/NOTES deleted file mode 100644 index 3d93267e..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/battery/NOTES +++ /dev/null @@ -1,49 +0,0 @@ -Eventuell mit einem Menü implementieren, mit Einträgen für: -Anzeige des kompletten Status und Infos -Herunterfahren des Systems etc. - -apm -a - Zeigt den AC line status an - 0 = off-line - 1 = on-line - 2 = backup-power - -apm -b - Zeigt - 0 = high - 1 = low - 2 = critical - 3 = charging - -apm -l - Zeit die prozentuale Kapazitaet - 255 = nicht unterstuetzt - -apm -t - Zeigt die verbleibende Zeit in Sekunden - -Aufruf Systemfunktionen: LUtils.h - -mit der Methode: -QStringList LUtils::getCmdOutput(QString cmd, QStringList args) - -Icons: -/usr/local/share/icons/oxygen/22x22/status -oder unter: -/usr/local/share/icons/oxygen/16x16/status - -battery-040.png // 40 % -battery-060.png -battery-080.png -battery-100.png - -battery-caution.png -battery-charging.png -battery-charging-040.png -battery-charging-060.png -battery-charging-080.png -battery-charging-caution.png - -battery-charging-log.png -battery-log.png -battery-missing.png diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/clock/LClock.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/clock/LClock.cpp deleted file mode 100644 index b370c536..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/clock/LClock.cpp +++ /dev/null @@ -1,230 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LClock.h" -#include "LSession.h" -#include <LuminaThemes.h> -#include <LuminaXDG.h> - -LClock::LClock(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - button = new QToolButton(this); //RotateToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonTextOnly); - button->setStyleSheet("font-weight: bold;"); - button->setPopupMode(QToolButton::DelayedPopup); //make sure it runs the update routine first - button->setMenu(new QMenu()); - //button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); - //this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); - connect(button, SIGNAL(clicked()), this, SLOT(openMenu())); - connect(button->menu(), SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - calendar = new QCalendarWidget(this); - calAct = new QWidgetAction(this); - calAct->setDefaultWidget(calendar); - TZMenu = new QMenu(this); - connect(TZMenu, SIGNAL(triggered(QAction*)), this, SLOT(ChangeTZ(QAction*)) ); - - //Now assemble the menu - button->menu()->addAction(calAct); - button->menu()->addMenu(TZMenu); - - this->layout()->setContentsMargins(0,0,0,0); //reserve some space on left/right - this->layout()->addWidget(button); - - //Setup the timer - timer = new QTimer(); - //Load all the initial settings - updateFormats(); - LocaleChange(); - ThemeChange(); - OrientationChange(); - //Now connect/start the timer - connect(timer,SIGNAL(timeout()), this, SLOT(updateTime()) ); - connect(QApplication::instance(), SIGNAL(SessionConfigChanged()), this, SLOT(updateFormats()) ); - timer->start(); -} - -LClock::~LClock(){ - timer->stop(); - delete timer; -} - - -void LClock::updateTime(bool adjustformat){ - QDateTime CT = QDateTime::currentDateTime(); - //Now update the display - QString label; - QString timelabel; - QString datelabel; - if(deftime){ timelabel = CT.time().toString(Qt::DefaultLocaleShortDate) ; } - else{ timelabel=CT.toString(timefmt); } - if(defdate){ datelabel = CT.date().toString(Qt::DefaultLocaleShortDate); } - else{ datelabel = CT.toString(datefmt); } - if(datetimeorder == "dateonly"){ - label = datelabel; - button->setToolTip(timelabel); - }else if(datetimeorder == "timedate"){ - label = timelabel + "\n" + datelabel; - button->setToolTip(""); - }else if(datetimeorder == "datetime"){ - label = datelabel + "\n" + timelabel; - button->setToolTip(""); - }else{ - label = timelabel; - button->setToolTip(datelabel); - } - if( this->layout()->direction() == QBoxLayout::TopToBottom ){ - //different routine for vertical text (need newlines instead of spaces) - for(int i=0; i<label.count("\n")+1; i++){ - if(this->size().width() < (this->fontMetrics().width(label.section("\n",i,i))+10 )&& label.section("\n",i,i).contains(" ")){ - label.replace(label.section("\n",i,i), label.section("\n",i,i).replace(" ", "\n")); - i--; - } - } - //label.replace(" ","\n"); - }else if( this->size().height() < 2*this->fontMetrics().height() ){ - label.replace("\n",", "); - } - if(adjustformat){ - //Check the font/spacing for the display and adjust as necessary - /*double efflines = label.count("\n")+1; //effective lines (with wordwrap) - if( (button->fontMetrics().height()*efflines) > button->height() ){ - //Force a pixel metric font size to fit everything - int szH = qRound( (button->height() - button->fontMetrics().lineSpacing() )/efflines ); - //Need to supply a *width* pixel, not a height metric - int szW = qRound( (szH*button->fontMetrics().maxWidth())/( (double) button->fontMetrics().height()) ); - qDebug() << "Change Clock font:" << button->height() << szH << szW << efflines << button->fontMetrics().height() << button->fontMetrics().lineSpacing(); - button->setStyleSheet("font-weight: bold; font-size: "+QString::number(szW)+"px;"); - }else{ - button->setStyleSheet("font-weight: bold;"); - }*/ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - //horizontal layout - this->setFixedWidth( this->sizeHint().width() +6); - }else{ - //vertical layout - this->setMaximumWidth(100000); - } - } - button->setText(label); -} - -void LClock::updateFormats(){ - qDebug() << "Updating clock format"; - timefmt = LSession::handle()->sessionSettings()->value("TimeFormat","").toString(); - datefmt = LSession::handle()->sessionSettings()->value("DateFormat","").toString(); - deftime = timefmt.simplified().isEmpty(); - defdate = datefmt.simplified().isEmpty(); - //Adjust the timer interval based on the smallest unit displayed - if(deftime){ timer->setInterval(500); } //1/2 second - else if(timefmt.contains("z")){ timer->setInterval(1); } //every millisecond (smallest unit) - else if(timefmt.contains("s")){ timer->setInterval(500); } //1/2 second - else if(timefmt.contains("m")){ timer->setInterval(2000); } //2 seconds - else{ timer->setInterval(1000); } //unknown format - use 1 second interval - datetimeorder = LSession::handle()->sessionSettings()->value("DateTimeOrder", "timeonly").toString().toLower(); - //this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - updateTime(true); - //Now fix the size of the widget with the new size hint - //this->setFixedWidth( this->sizeHint().width() +6); -} - -void LClock::updateMenu(){ - QDateTime cdt = QDateTime::currentDateTime(); - TZMenu->setTitle(QString(tr("Time Zone (%1)")).arg(cdt.timeZoneAbbreviation()) ); - calendar->showToday(); //make sure the current month is visible - calendar->setSelectedDate(QDate::currentDate()); //select the actual date for today -} - -void LClock::openMenu(){ - updateMenu(); - button->showMenu(); -} - -void LClock::closeMenu(){ - button->menu()->hide(); -} - -void LClock::ChangeTZ(QAction *act){ - LTHEME::setCustomEnvSetting("TZ",act->whatsThis()); - QTimer::singleShot(500, this, SLOT(updateTime()) ); -} - -void LClock::LocaleChange(){ - //Refresh all the time zone information - TZMenu->clear(); - TZMenu->addAction(tr("Use System Time")); - TZMenu->addSeparator(); - QList<QByteArray> TZList = QTimeZone::availableTimeZoneIds(); - //Orgnize time zones for smaller menus (Continent/Country/City) - // Note: id = Continent/City - QStringList info; - for(int i=0; i<TZList.length(); i++){ - QTimeZone tz(TZList[i]); - if(!QString(tz.id()).contains("/")){ continue; } - info << "::::"+QString(tz.id()).section("/",0,0)+"::::"+QLocale::countryToString(tz.country())+"::::"+QString(tz.id()).section("/",1,100).replace("_"," ")+"::::"+QString(tz.id()); - } - //Now sort alphabetically - info.sort(); - //Now create the menu tree - QString continent, country; //current continent/country - QMenu *tmpC=0; //continent menu - QMenu *tmpCM=0; //country menu - for(int i=0; i<info.length(); i++){ - //Check if different continent - if(info[i].section("::::",1,1)!=continent){ - if(tmpC!=0){ - if(tmpCM!=0 && !tmpCM->isEmpty()){ - tmpC->addMenu(tmpCM); - } - if(!tmpC->isEmpty()){ TZMenu->addMenu(tmpC); } - } - tmpC = new QMenu(this); - tmpC->setTitle(info[i].section("::::",1,1)); - tmpCM = new QMenu(this); - tmpCM->setTitle(info[i].section("::::",2,2)); - //Check if different country - }else if(info[i].section("::::",2,2)!=country){ - if(tmpC!=0 && tmpCM!=0 && !tmpCM->isEmpty()){ - tmpC->addMenu(tmpCM); - } - tmpCM = new QMenu(this); - tmpCM->setTitle(info[i].section("::::",2,2)); - } - //Now create the entry within the country menu - if(tmpCM!=0){ - QAction *act = new QAction(info[i].section("::::",3,3), this); - act->setWhatsThis(info[i].section("::::",4,4) ); - tmpCM->addAction(act); - } - //Save the values for the next run - continent = info[i].section("::::",1,1); - country = info[i].section("::::",2,2); - - if(i== info.length()-1){ - //last go through - save all menus - if(tmpCM!=0 && tmpC!=0 && !tmpCM->isEmpty()){ tmpC->addMenu(tmpCM); } - if(tmpC!=0 && !tmpC->isEmpty()){ TZMenu->addMenu(tmpC); } - } - } - -} - -void LClock::ThemeChange(){ - TZMenu->setIcon(LXDG::findIcon("clock","")); -} - -void LClock::OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ //horizontal panel - //button->setRotation(0); //no rotation of text - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); - button->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); - }else{ //vertical panel - //button->setRotation(90); //90 degree rotation - this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - button->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - } - updateTime(true); //re-adjust the font/spacings - this->layout()->update(); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/clock/LClock.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/clock/LClock.h deleted file mode 100644 index eddf782c..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/clock/LClock.h +++ /dev/null @@ -1,58 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_CLOCK_H -#define _LUMINA_DESKTOP_CLOCK_H - -#include <QTimer> -#include <QDateTime> -#include <QLabel> -#include <QWidget> -#include <QString> -#include <QLocale> -#include <QTimeZone> -#include <QCalendarWidget> -#include <QWidgetAction> -#include <QAction> -#include <QToolButton> -#include <QMenu> - -#include "../LPPlugin.h" - -//#include "../RotateToolButton.h" - -class LClock : public LPPlugin{ - Q_OBJECT -public: - LClock(QWidget *parent = 0, QString id = "clock", bool horizontal=true); - ~LClock(); - -private: - QTimer *timer; - QToolButton *button; //RotateToolButton - QString timefmt, datefmt, datetimeorder; - bool deftime, defdate; - QMenu *TZMenu; - QCalendarWidget *calendar; - QWidgetAction *calAct; - -private slots: - void updateTime(bool adjustformat = false); - void updateFormats(); - - void updateMenu(); - void openMenu(); - void closeMenu(); - - void ChangeTZ(QAction*); - -public slots: - void LocaleChange(); - void ThemeChange(); - void OrientationChange(); -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopbar/LDeskBar.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopbar/LDeskBar.cpp deleted file mode 100644 index 90d942de..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopbar/LDeskBar.cpp +++ /dev/null @@ -1,207 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LDeskBar.h" -#include "../../LSession.h" - -LDeskBarPlugin::LDeskBarPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - this->layout()->setContentsMargins(0,0,0,0); - this->setStyleSheet( "QToolButton::menu-indicator{ image: none; } QToolButton{ padding: 0px; }"); - - //initialize the desktop bar items - initializeDesktop(); - //setup the directory watcher - QString fav = QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/favorites.list"; - if(!QFile::exists(fav)){ QProcess::execute("touch \""+fav+"\""); } - watcher = new QFileSystemWatcher(this); - watcher->addPath( fav ); - connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(filechanged(QString)) ); - QTimer::singleShot(1,this, SLOT(updateFiles()) ); //make sure to load it the first time - QTimer::singleShot(0,this, SLOT(OrientationChange()) ); //adjust sizes/layout - connect(QApplication::instance(), SIGNAL(DesktopFilesChanged()), this, SLOT(updateFiles()) ); -} - -LDeskBarPlugin::~LDeskBarPlugin(){ -} - -// ======================= -// PRIVATE FUNCTIONS -// ======================= -void LDeskBarPlugin::initializeDesktop(){ - //Applications on the desktop - appB = new QToolButton(this); - appB->setToolButtonStyle(Qt::ToolButtonIconOnly); - appB->setAutoRaise(true); - appB->setPopupMode(QToolButton::InstantPopup); - appM = new QMenu(this); - appB->setMenu(appM); - this->layout()->addWidget(appB); - connect(appM,SIGNAL(triggered(QAction*)),this,SLOT(ActionTriggered(QAction*)) ); - connect(appM, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - //Directories on the desktop - dirB = new QToolButton(this); - dirB->setToolButtonStyle(Qt::ToolButtonIconOnly); - dirB->setAutoRaise(true); - dirB->setPopupMode(QToolButton::InstantPopup); - dirM = new QMenu(this); - dirB->setMenu(dirM); - this->layout()->addWidget(dirB); - connect(dirM,SIGNAL(triggered(QAction*)),this,SLOT(ActionTriggered(QAction*)) ); - connect(dirM, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - //Audio Files on the desktop - audioM = new QMenu(this); - connect(audioM,SIGNAL(triggered(QAction*)),this,SLOT(ActionTriggered(QAction*)) ); - //Video Files on the desktop - videoM = new QMenu(this); - connect(videoM,SIGNAL(triggered(QAction*)),this,SLOT(ActionTriggered(QAction*)) ); - //Picture Files on the desktop - pictureM = new QMenu(this); - connect(pictureM,SIGNAL(triggered(QAction*)),this,SLOT(ActionTriggered(QAction*)) ); - //Other Files on the desktop - otherM = new QMenu(this); - connect(otherM,SIGNAL(triggered(QAction*)),this,SLOT(ActionTriggered(QAction*)) ); - docM = new QMenu(this); - connect(docM,SIGNAL(triggered(QAction*)), this,SLOT(ActionTriggered(QAction*)) ); - //All Files Button - fileB = new QToolButton(this); - fileB->setToolButtonStyle(Qt::ToolButtonIconOnly); - fileB->setAutoRaise(true); - fileB->setPopupMode(QToolButton::InstantPopup); - fileM = new QMenu(this); - fileB->setMenu(fileM); - this->layout()->addWidget(fileB); - - updateIcons(); //set all the text/icons -} - -QAction* LDeskBarPlugin::newAction(QString filepath, QString name, QString iconpath){ - return newAction(filepath, name, QIcon(iconpath)); -} - -QAction* LDeskBarPlugin::newAction(QString filepath, QString name, QIcon icon){ - QAction *act = new QAction(icon, name, this); - act->setWhatsThis(filepath); - return act; -} - -// ======================= -// PRIVATE SLOTS -// ======================= -void LDeskBarPlugin::ActionTriggered(QAction* act){ - //Open up the file with the appropriate application - QString cmd = "lumina-open \""+act->whatsThis()+"\""; - qDebug() << "Open File:" << cmd; - LSession::LaunchApplication(cmd); -} -void LDeskBarPlugin::filechanged(QString file){ - updateFiles(); - if(!watcher->files().contains(file)){ watcher->addPath(file); } //make sure the file does not get removed from the watcher -} -void LDeskBarPlugin::updateFiles(){ - QFileInfoList homefiles = LSession::handle()->DesktopFiles(); - QStringList favitems = LDesktopUtils::listFavorites(); - //Remember for format for favorites: <name>::::[app/dir/<mimetype>]::::<full path> - for(int i=0; i<homefiles.length(); i++){ - if( !favitems.filter(homefiles[i].canonicalFilePath()).isEmpty() ){ continue; } //duplicate entry - QString type; - if(homefiles[i].isDir()){ type="dir"; } - else if(homefiles[i].fileName().endsWith(".desktop")){ type="app"; } - else{ type=LXDG::findAppMimeForFile(homefiles[i].fileName()); } - favitems << homefiles[i].fileName()+"::::"+type+"::::"+homefiles[i].absoluteFilePath(); - //qDebug() << "Desktop Item:" << favitems.last(); - } - - favitems.sort(); //sort them alphabetically - //Now add the items to the lists - appM->clear(); - dirM->clear(); - audioM->clear(); - videoM->clear(); - pictureM->clear(); - docM->clear(); - otherM->clear(); - for(int i=0; i<favitems.length(); i++){ - QString type = favitems[i].section("::::",1,1); - QString name = favitems[i].section("::::",0,0); - QString path = favitems[i].section("::::",2,50); - if(type=="app"){ - //Add it to appM - bool ok = false; - XDGDesktop df(path); - if(df.isValid() && !df.isHidden){ - appM->addAction( newAction(df.filePath, df.name, LXDG::findIcon(df.icon, ":/images/default-application.png")) ); - } - }else if(type=="dir"){ - //Add it to dirM - dirM->addAction( newAction(path, name, LXDG::findIcon("folder","")) ); - }else if(type.startsWith("audio/")){ - //Add it to audioM - audioM->addAction( newAction(path, name, LXDG::findMimeIcon(type)) ); - }else if(type.startsWith("video/")){ - //Add it to videoM - videoM->addAction( newAction(path, name, LXDG::findMimeIcon(type)) ); - }else if(type.startsWith("image/")){ - //Add it to pictureM - if(LUtils::imageExtensions().contains(path.section("/",-1).section(".",-1).toLower()) ){ - pictureM->addAction( newAction(path, name, QIcon(path)) ); - }else{ - pictureM->addAction( newAction(path, name, LXDG::findMimeIcon(type)) ); - } - }else if(type.startsWith("text/")){ - //Add it to docM - docM->addAction( newAction(path, name, LXDG::findMimeIcon(type)) ); - }else{ - //Add it to otherM - otherM->addAction( newAction(path, name, LXDG::findMimeIcon(type)) ); - } - - } - - //Now update the file menu as appropriate - fileM->clear(); - if(!audioM->isEmpty()){ fileM->addMenu(audioM); } - if(!docM->isEmpty()){ fileM->addMenu(docM); } - if(!pictureM->isEmpty()){ fileM->addMenu(pictureM); } - if(!videoM->isEmpty()){ fileM->addMenu(videoM); } - if(!otherM->isEmpty()){ fileM->addMenu(otherM); } - //Check for a single submenu, and skip the main if need be - disconnect(fileB->menu(), SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed()) ); - if(fileM->actions().length()==1){ - if(!audioM->isEmpty()){ fileB->setMenu(audioM); } - else if(!pictureM->isEmpty()){ fileB->setMenu(pictureM); } - else if(!videoM->isEmpty()){ fileB->setMenu(videoM); } - else if(!docM->isEmpty()){ fileB->setMenu(docM); } - else if(!otherM->isEmpty()){ fileB->setMenu(otherM); } - }else{ - fileB->setMenu(fileM); - } - connect(fileB->menu(), SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - - //Setup the visibility of the buttons - appB->setVisible( !appM->isEmpty() ); - dirB->setVisible( !dirM->isEmpty() ); - fileB->setVisible( !fileM->isEmpty() ); -} - -void LDeskBarPlugin::updateIcons(){ - //Set all the text/icons - appB->setIcon( LXDG::findIcon("favorites", "") ); - appB->setToolTip(tr("Favorite Applications")); - dirB->setIcon( LXDG::findIcon("folder", "") ); - dirB->setToolTip(tr("Favorite Folders")); - audioM->setTitle( tr("Audio") ); - audioM->setIcon( LXDG::findIcon("audio-x-generic","") ); - videoM->setTitle( tr("Video") ); - videoM->setIcon( LXDG::findIcon("video-x-generic","") ); - pictureM->setTitle( tr("Pictures") ); - pictureM->setIcon( LXDG::findIcon("image-x-generic","") ); - otherM->setTitle( tr("Other Files") ); - otherM->setIcon( LXDG::findIcon("unknown","") ); - docM->setTitle( tr("Documents") ); - docM->setIcon( LXDG::findIcon("x-office-document","") ); - fileB->setIcon( LXDG::findIcon("document-multiple", "") ); - fileB->setToolTip(tr("Favorite Files") ); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopbar/LDeskBar.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopbar/LDeskBar.h deleted file mode 100644 index 74f41230..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopbar/LDeskBar.h +++ /dev/null @@ -1,88 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This plugin displays the contents of the user's home directory -// as organized within a couple buttons on the panel (apps, dirs, files) -//=========================================== -#ifndef _LUMINA_DESKTOP_DESKBAR_H -#define _LUMINA_DESKTOP_DESKBAR_H - -// Qt includes -#include <QWidget> -#include <QString> -#include <QAction> -#include <QMenu> -#include <QProcess> -#include <QTimer> -#include <QFileSystemWatcher> -#include <QHBoxLayout> -#include <QIcon> -#include <QToolButton> -#include <QDebug> - -// libLumina includes -#include <LuminaXDG.h> - -// local includes -//#include "../LTBWidget.h" -#include "../LPPlugin.h" - -class LDeskBarPlugin : public LPPlugin{ - Q_OBJECT -public: - LDeskBarPlugin(QWidget* parent=0, QString id = "desktopbar", bool horizontal=true); - ~LDeskBarPlugin(); - -private: - QFileSystemWatcher *watcher; - //Special toolbuttons and menus - QToolButton *appB, *fileB, *dirB; - QMenu *appM, *dirM, *audioM, *videoM, *pictureM, *fileM, *otherM, *docM; - QList<QToolButton*> APPLIST; - QDateTime lastHomeUpdate; - - void initializeDesktop(); - //bool readDesktopFile(QString path, QString &name, QString &iconpath); - - QAction* newAction(QString filepath, QString name, QString iconpath); - QAction* newAction(QString filepath, QString name, QIcon icon); - - //void updateMenu(QMenu* menu, QFileInfoList files, bool trim = true); - - -private slots: - void ActionTriggered(QAction* act); - void filechanged(QString); - void updateFiles(); - void updateIcons(); - -public slots: - void LocaleChange(){ - updateIcons(); - updateFiles(); - } - - void OrientationChange(){ - QSize sz; - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - sz = QSize(this->height(), this->height()); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - sz = QSize(this->width(), this->width()); - } - appB->setIconSize(sz); - fileB->setIconSize(sz); - dirB->setIconSize(sz); - for(int i=0; i<APPLIST.length(); i++){ - APPLIST[i]->setIconSize(sz); - } - this->layout()->update(); - } -}; - - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopswitcher/LDesktopSwitcher.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopswitcher/LDesktopSwitcher.cpp deleted file mode 100644 index 8e0a9d28..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopswitcher/LDesktopSwitcher.cpp +++ /dev/null @@ -1,148 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Susanne Jaeckel -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LDesktopSwitcher.h" -#include <LSession.h> - -LDesktopSwitcher::LDesktopSwitcher(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal) { - iconOld = -1; - this->setStyleSheet( "QToolButton::menu-indicator{ image: none; } QToolButton{padding: 0px;}"); - //Setup the widget - label = new QToolButton(this); - label->setPopupMode(QToolButton::DelayedPopup); - label->setAutoRaise(true); - label->setToolButtonStyle(Qt::ToolButtonIconOnly); - label->setIcon( LXDG::findIcon("format-view-carousel", "preferences-desktop-display") ); - label->setToolTip(QString("Workspace 1")); - connect(label, SIGNAL(clicked()), this, SLOT(openMenu())); - menu = new QMenu(this); - connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(menuActionTriggered(QAction*))); - connect(menu, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - label->setMenu(menu); - this->layout()->addWidget(label); - - // Maybe a timer should be set to set the toolTip of the button, - // becasue the workspace could be switched via Keyboard-shortcuts ... - - QTimer::singleShot(500, this, SLOT(createMenu()) ); //needs a delay to make sure it works right the first time - QTimer::singleShot(0,this, SLOT(OrientationChange()) ); //adjust icon size - - //Process the signal which is sent when the workspace is changed via keyboard-shortcuts - connect(QApplication::instance(), SIGNAL(WorkspaceChanged()), this, SLOT(updateWorkspaceMenu())); -} - -LDesktopSwitcher::~LDesktopSwitcher(){ -} -/* MOVED THESE FUNCTIONS TO LIBLUMINA (LuminaX11.h) -- Ken Moore 5/9/14 -void LDesktopSwitcher::setNumberOfDesktops(int number) { - Display *display = QX11Info::display(); - Window rootWindow = QX11Info::appRootWindow(); - - Atom atom = XInternAtom(display, "_NET_NUMBER_OF_DESKTOPS", False); - XEvent xevent; - xevent.type = ClientMessage; - xevent.xclient.type = ClientMessage; - xevent.xclient.display = display; - xevent.xclient.window = rootWindow; - xevent.xclient.message_type = atom; - xevent.xclient.format = 32; - xevent.xclient.data.l[0] = number; - xevent.xclient.data.l[1] = CurrentTime; - xevent.xclient.data.l[2] = 0; - xevent.xclient.data.l[3] = 0; - xevent.xclient.data.l[4] = 0; - XSendEvent(display, rootWindow, False, SubstructureNotifyMask | SubstructureRedirectMask, &xevent); - - XFlush(display); -} - -void LDesktopSwitcher::setCurrentDesktop(int number) { - Display *display = QX11Info::display(); - Window rootWindow = QX11Info::appRootWindow(); - - Atom atom = XInternAtom(display, "_NET_CURRENT_DESKTOP", False); - XEvent xevent; - xevent.type = ClientMessage; - xevent.xclient.type = ClientMessage; - xevent.xclient.display = display; - xevent.xclient.window = rootWindow; - xevent.xclient.message_type = atom; - xevent.xclient.format = 32; - xevent.xclient.data.l[0] = number; - xevent.xclient.data.l[1] = CurrentTime; - xevent.xclient.data.l[2] = 0; - xevent.xclient.data.l[3] = 0; - xevent.xclient.data.l[4] = 0; - XSendEvent(display, rootWindow, False, SubstructureNotifyMask | SubstructureRedirectMask, &xevent); - - XFlush(display); -} - -int LDesktopSwitcher::getNumberOfDesktops() { - int number = -1; - Atom a = XInternAtom(QX11Info::display(), "_NET_NUMBER_OF_DESKTOPS", true); - Atom realType; - int format; - unsigned long num, bytes; - unsigned char *data = 0; - int status = XGetWindowProperty(QX11Info::display(), QX11Info::appRootWindow(), a, 0L, (~0L), - false, AnyPropertyType, &realType, &format, &num, &bytes, &data); - if( (status >= Success) && (num > 0) ){ - number = *data; - XFree(data); - } - return number; -} - -int LDesktopSwitcher::getCurrentDesktop() { - int number = -1; - Atom a = XInternAtom(QX11Info::display(), "_NET_CURRENT_DESKTOP", true); - Atom realType; - int format; - unsigned long num, bytes; - unsigned char *data = 0; - int status = XGetWindowProperty(QX11Info::display(), QX11Info::appRootWindow(), a, 0L, (~0L), - false, AnyPropertyType, &realType, &format, &num, &bytes, &data); - if( (status >= Success) && (num > 0) ){ - number = *data; - XFree(data); - } - return number; -} */ - -void LDesktopSwitcher::openMenu(){ - //Make sure the menu is refreshed right before it opens - createMenu(); - label->showMenu(); -} - -QAction* LDesktopSwitcher::newAction(int what, QString name) { - QAction *act = new QAction(LXDG::findIcon("preferences-desktop-display", ""), name, this); - act->setWhatsThis(QString::number(what)); - return act; -} - -void LDesktopSwitcher::createMenu() { - int cur = LSession::handle()->XCB->CurrentWorkspace(); //current desktop number - int tot = LSession::handle()->XCB->NumberOfWorkspaces(); //total number of desktops - //qDebug() << "-- vor getCurrentDesktop SWITCH"; - qDebug() << "Virtual Desktops:" << tot << cur; - menu->clear(); - for (int i = 0; i < tot; i++) { - QString name = QString(tr("Workspace %1")).arg( QString::number(i+1) ); - if(i == cur){ name.prepend("*"); name.append("*");} //identify which desktop this is currently - menu->addAction(newAction(i, name)); - } - label->setToolTip(QString(tr("Workspace %1")).arg(QString::number(cur + 1))); -} - -void LDesktopSwitcher::menuActionTriggered(QAction* act) { - LSession::handle()->XCB->SetCurrentWorkspace(act->whatsThis().toInt()); -} - -void LDesktopSwitcher::updateWorkspaceMenu() { - createMenu(); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopswitcher/LDesktopSwitcher.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopswitcher/LDesktopSwitcher.h deleted file mode 100644 index 69fe46da..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/desktopswitcher/LDesktopSwitcher.h +++ /dev/null @@ -1,73 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Susanne Jaeckel -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_SWITCHER_H -#define _LUMINA_DESKTOP_SWITCHER_H - -#include <QTimer> -#include <QWidget> -#include <QString> -//#include <QX11Info> -#include <QMenu> -#include <QToolButton> - -#include <LUtils.h> -#include <LuminaXDG.h> -#include <LuminaX11.h> - -//#include "../LTBWidget.h" -#include "../LPPlugin.h" - -//#include <X11/Xlib.h> -//#include <X11/Xutil.h> -//#include <X11/Xatom.h> - -class LDesktopSwitcher : public LPPlugin{ - Q_OBJECT -public: - LDesktopSwitcher(QWidget *parent = 0, QString id = "desktopswitcher", bool horizontal=true); - ~LDesktopSwitcher(); - -private: - QTimer *timer; - QToolButton *label; - QMenu *menu; - int iconOld; - - //void setNumberOfDesktops(int); - //void setCurrentDesktop(int); - //int getNumberOfDesktops(); - //int getCurrentDesktop(); - - - QAction* newAction(int, QString); - -private slots: - void openMenu(); - void createMenu(); - void menuActionTriggered(QAction*); - void updateWorkspaceMenu(); - -public slots: - void LocaleChange(){ - createMenu(); - } - - void OrientationChange(){ - QSize sz; - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - sz = QSize(this->height(), this->height()); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - sz = QSize(this->width(), this->width()); - } - label->setIconSize(sz); - this->layout()->update(); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/jsonmenu/PPJsonMenu.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/jsonmenu/PPJsonMenu.cpp deleted file mode 100644 index 14880f9b..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/jsonmenu/PPJsonMenu.cpp +++ /dev/null @@ -1,35 +0,0 @@ -//=========================================== -// Lumina Desktop source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "PPJsonMenu.h" -#include "../../JsonMenu.h" - -LPJsonMenu::LPJsonMenu(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - //Setup the button - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonIconOnly); - button->setPopupMode(QToolButton::InstantPopup); //make sure it runs the update routine first - //connect(button, SIGNAL(clicked()), this, SLOT(openMenu())); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - //Parse the id and get the extra information needed for the plugin - QStringList info = id.section("---",0,0).split("::::"); //FORMAT:[ "jsonmenu---<number>",exec,name, icon(optional)] - if(info.length()>=3){ - qDebug() << "Custom JSON Menu Loaded:" << info; - JsonMenu *menu = new JsonMenu(info[1], button); - button->setText(info[2]); - //connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(SystemApplication(QAction*)) ); - if(info.length()>=4){ button->setIcon( LXDG::findIcon(info[3],"run-build") ); } - else{ button->setIcon( LXDG::findIcon("run-build","") ); } - button->setMenu(menu); - } - //Now start up the widgets - QTimer::singleShot(0,this,SLOT(OrientationChange()) ); //update the sizing/icon -} - -LPJsonMenu::~LPJsonMenu(){ -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/jsonmenu/PPJsonMenu.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/jsonmenu/PPJsonMenu.h deleted file mode 100644 index d0827fd2..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/jsonmenu/PPJsonMenu.h +++ /dev/null @@ -1,42 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2016, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_PANEL_JSON_PLUGIN_H -#define _LUMINA_PANEL_JSON_PLUGIN_H - -#include "../../Globals.h" -#include "../LPPlugin.h" - - -class LPJsonMenu : public LPPlugin{ - Q_OBJECT -public: - LPJsonMenu(QWidget *parent = 0, QString id = "jsonmenu", bool horizontal=true); - ~LPJsonMenu(); - -private: - QToolButton *button; - -private slots: - //void SystemApplication(QAction*); - -public slots: - void LocaleChange(){ - } - - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - } - this->layout()->update(); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/line/LLine.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/line/LLine.h deleted file mode 100644 index 94de486e..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/line/LLine.h +++ /dev/null @@ -1,40 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is a generic line separator for the panel -//=========================================== -#ifndef _LUMINA_DESKTOP_PANEL_PLUGIN_LINE_H -#define _LUMINA_DESKTOP_PANEL_PLUGIN_LINE_H - -#include "../LPPlugin.h" -#include <QFrame> - -class LLinePlugin : public LPPlugin{ - Q_OBJECT -private: - QFrame *line; - -public: - LLinePlugin(QWidget *parent=0, QString id="spacer", bool horizontal=true) : LPPlugin(parent, id, horizontal){ - line = new QFrame(this); - line->setObjectName("LuminaPanelLine"); - this->layout()->addWidget(line); - OrientationChange(); - } - ~LLinePlugin(){} - -public slots: - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ //horizontal - line->setFrameShape(QFrame::VLine); - }else{ //vertical - line->setFrameShape(QFrame::HLine); - } - } -}; - - -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/panel-plugins.pri b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/panel-plugins.pri deleted file mode 100644 index c40c4725..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/panel-plugins.pri +++ /dev/null @@ -1,57 +0,0 @@ -#Lumina Desktop Panel Plugin files - -SOURCES += $$PWD/userbutton/LUserButton.cpp \ - $$PWD/userbutton/UserWidget.cpp \ - $$PWD/userbutton/UserItemWidget.cpp \ - $$PWD/desktopbar/LDeskBar.cpp \ - $$PWD/taskmanager/LTaskManagerPlugin.cpp \ - $$PWD/taskmanager/LTaskButton.cpp \ - $$PWD/systemtray/LSysTray.cpp \ - $$PWD/systemtray/TrayIcon.cpp \ - $$PWD/clock/LClock.cpp \ - $$PWD/battery/LBattery.cpp \ - $$PWD/desktopswitcher/LDesktopSwitcher.cpp \ - $$PWD/systemdashboard/LSysDashboard.cpp \ - $$PWD/systemdashboard/SysMenuQuick.cpp \ - $$PWD/showdesktop/LHomeButton.cpp \ - $$PWD/appmenu/LAppMenuPlugin.cpp \ - $$PWD/applauncher/AppLaunchButton.cpp \ - $$PWD/systemstart/LStartButton.cpp \ - $$PWD/systemstart/StartMenu.cpp \ - $$PWD/systemstart/ItemWidget.cpp \ - $$PWD/audioplayer/LPAudioPlayer.cpp \ - $$PWD/audioplayer/PPlayerWidget.cpp \ - $$PWD/jsonmenu/PPJsonMenu.cpp - -HEADERS += $$PWD/RotateToolButton.h \ - $$PWD/userbutton/LUserButton.h \ - $$PWD/userbutton/UserWidget.h \ - $$PWD/userbutton/UserItemWidget.h \ - $$PWD/desktopbar/LDeskBar.h \ - $$PWD/systemtray/LSysTray.h \ - $$PWD/systemtray/TrayIcon.h \ - $$PWD/spacer/LSpacer.h \ - $$PWD/line/LLine.h \ - $$PWD/clock/LClock.h \ - $$PWD/battery/LBattery.h \ - $$PWD/desktopswitcher/LDesktopSwitcher.h \ - $$PWD/taskmanager/LTaskManagerPlugin.h \ - $$PWD/taskmanager/LTaskButton.h \ - $$PWD/systemdashboard/LSysDashboard.h \ - $$PWD/systemdashboard/SysMenuQuick.h \ - $$PWD/showdesktop/LHomeButton.h \ - $$PWD/appmenu/LAppMenuPlugin.h \ - $$PWD/applauncher/AppLaunchButton.h \ - $$PWD/systemstart/LStartButton.h \ - $$PWD/systemstart/StartMenu.h \ - $$PWD/systemstart/ItemWidget.h \ - $$PWD/audioplayer/LPAudioPlayer.h \ - $$PWD/audioplayer/PPlayerWidget.h \ - $$PWD/jsonmenu/PPJsonMenu.h -# $$PWD/quickcontainer/QuickPPlugin.h - -FORMS += $$PWD/userbutton/UserWidget.ui \ - $$PWD/systemdashboard/SysMenuQuick.ui \ - $$PWD/systemstart/StartMenu.ui \ - $$PWD/audioplayer/PPlayerWidget.ui - diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/quickcontainer/QuickPPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/quickcontainer/QuickPPlugin.h deleted file mode 100644 index 6f61c4d5..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/quickcontainer/QuickPPlugin.h +++ /dev/null @@ -1,43 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is a simple container for a QtQuick plugin -//=========================================== -#ifndef _LUMINA_DESKTOP_PANEL_PLUGIN_QUICK_H -#define _LUMINA_DESKTOP_PANEL_PLUGIN_QUICK_H - -#include <QQuickWidget> -#include <QVBoxLayout> -#include "../LPPlugin.h" - -#include <LUtils.h> -#include <QDebug> - -class QuickPPlugin : public LPPlugin{ - Q_OBJECT -public: - QuickPPlugin(QWidget* parent, QString ID, bool horizontal) : LPPlugin(parent, ID){ - container = new QQuickWidget(this); - container->setResizeMode(QQuickWidget::SizeRootObjectToView); - this->layout()->addWidget(container); - horizontal = true; //just to silence compiler warning - container->setSource(QUrl::fromLocalFile( LUtils::findQuickPluginFile(ID.section("---",0,0)) )); - } - - ~QuickPPlugin(){} - -private: - QQuickWidget *container; - -private slots: - void statusChange(QQuickWidget::Status status){ - if(status == QQuickWidget::Error){ - qDebug() << "Quick Widget Error:" << this->type(); - } - } - -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/showdesktop/LHomeButton.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/showdesktop/LHomeButton.cpp deleted file mode 100644 index 6c259b16..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/showdesktop/LHomeButton.cpp +++ /dev/null @@ -1,43 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LHomeButton.h" -#include "../../LSession.h" - -#include <LuminaX11.h> - -LHomeButtonPlugin::LHomeButtonPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - - connect(button, SIGNAL(clicked()), this, SLOT(showDesktop())); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - - QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes -} - -LHomeButtonPlugin::~LHomeButtonPlugin(){ - -} - -void LHomeButtonPlugin::updateButtonVisuals(){ - button->setIcon( LXDG::findIcon("user-desktop", "") ); -} - -// ======================== -// PRIVATE FUNCTIONS -// ======================== -void LHomeButtonPlugin::showDesktop(){ - QList<WId> wins = LSession::handle()->XCB->WindowList(); - for(int i=0; i<wins.length(); i++){ - if( LXCB::INVISIBLE != LSession::handle()->XCB->WindowState(wins[i]) ){ - LSession::handle()->XCB->MinimizeWindow(wins[i]); - } - } -} - diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/showdesktop/LHomeButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/showdesktop/LHomeButton.h deleted file mode 100644 index 74aaf4fb..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/showdesktop/LHomeButton.h +++ /dev/null @@ -1,62 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin is a simple button to hide all windows so the desktop is visible -//=========================================== -#ifndef _LUMINA_DESKTOP_GO_HOME_PLUGIN_H -#define _LUMINA_DESKTOP_GO_HOME_PLUGIN_H - -// Qt includes -#include <QToolButton> -#include <QString> -#include <QWidget> - - -// Lumina-desktop includes -#include "../LPPlugin.h" //main plugin widget - -// libLumina includes -#include "LuminaXDG.h" - -// PANEL PLUGIN BUTTON -class LHomeButtonPlugin : public LPPlugin{ - Q_OBJECT - -public: - LHomeButtonPlugin(QWidget *parent = 0, QString id = "homebutton", bool horizontal=true); - ~LHomeButtonPlugin(); - -private: - QToolButton *button; - - void updateButtonVisuals(); - -private slots: - void showDesktop(); - -public slots: - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - } - this->layout()->update(); - updateButtonVisuals(); - } - - void LocaleChange(){ - updateButtonVisuals(); - } - - void ThemeChange(){ - updateButtonVisuals(); - } -}; - -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/spacer/LSpacer.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/spacer/LSpacer.h deleted file mode 100644 index 1e60c519..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/spacer/LSpacer.h +++ /dev/null @@ -1,34 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This class is a generic invisible spacer for the panel -//=========================================== -#ifndef _LUMINA_DESKTOP_PANEL_PLUGIN_SPACER_H -#define _LUMINA_DESKTOP_PANEL_PLUGIN_SPACER_H - -#include "../LPPlugin.h" - -class LSpacerPlugin : public LPPlugin{ - Q_OBJECT -public: - LSpacerPlugin(QWidget *parent=0, QString id="spacer", bool horizontal=true) : LPPlugin(parent, id, horizontal){ - if(horizontal){ this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); } - else{ this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); } - } - ~LSpacerPlugin(){} - -public slots: - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ //horizontal - this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - }else{ //vertical - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); - } - } -}; - - -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/LSysDashboard.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/LSysDashboard.cpp deleted file mode 100644 index b9d70e97..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/LSysDashboard.cpp +++ /dev/null @@ -1,91 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LSysDashboard.h" - -LSysDashboard::LSysDashboard(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - upTimer = new QTimer(this); - upTimer->setInterval(10000); //10 second update ping - connect(upTimer, SIGNAL(timeout()), this, SLOT(updateIcon())); - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonIconOnly); - button->setPopupMode(QToolButton::DelayedPopup); //make sure it runs the update routine first - connect(button, SIGNAL(clicked()), this, SLOT(openMenu())); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - menu = new QMenu(this); - connect(menu, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - sysmenu = new LSysMenuQuick(this); - connect(sysmenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) ); - mact = new QWidgetAction(this); - mact->setDefaultWidget(sysmenu); - menu->addAction(mact); - - button->setMenu(menu); - QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes -} - -LSysDashboard::~LSysDashboard(){ - -} - -// ======================== -// PRIVATE FUNCTIONS -// ======================== -void LSysDashboard::updateIcon(bool force){ - //For the visual, show battery state only if important - static bool batcharging = false; - QPixmap pix; - button->setToolTip(tr("System Dashboard")); - if(LOS::hasBattery()){ - int bat = LOS::batteryCharge(); - bool charging = LOS::batteryIsCharging(); - //Set the icon as necessary - if(charging && !batcharging){ - //Charging and just plugged in - if(bat < 15){ button->setIcon( LXDG::findIcon("battery-charging-low","") ); QTimer::singleShot(5000, this, SLOT(resetIcon()));} - else if(bat < 30){ button->setIcon( LXDG::findIcon("battery-charging-caution","") ); QTimer::singleShot(5000, this, SLOT(resetIcon()));} - else if(force || button->icon().isNull()){ resetIcon(); } - }else if(!charging){ - //Not charging (critical level or just unplugged) - if(bat<5){ button->setIcon( LXDG::findIcon("battery-missing","") ); } - else if(bat < 15){ button->setIcon( LXDG::findIcon("battery-low","") ); QTimer::singleShot(5000, this, SLOT(resetIcon())); } - else if(bat < 30 && batcharging){ button->setIcon( LXDG::findIcon("battery-caution","") ); QTimer::singleShot(5000, this, SLOT(resetIcon()));} - else if(bat < 50 && batcharging){ button->setIcon( LXDG::findIcon("battery-040","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} - else if(bat < 70 && batcharging){ button->setIcon( LXDG::findIcon("battery-060","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} - else if(bat < 90 && batcharging){ button->setIcon( LXDG::findIcon("battery-080","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} - else if(batcharging){ button->setIcon( LXDG::findIcon("battery-100","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} - else if(force || button->icon().isNull()){ resetIcon(); } - }else if(force || button->icon().isNull()){ - //Otherwise just use the default icon - resetIcon(); - } - //Save the values for comparison later - batcharging = charging; - if( !upTimer->isActive() ){ upTimer->start(); } //only use the timer if a battery is present - - // No battery - just use/set the normal icon - }else if(force || button->icon().isNull()){ - resetIcon(); - if(upTimer->isActive() ){ upTimer->stop(); } //no battery available - no refresh timer needed - } - -} - -void LSysDashboard::resetIcon(){ - button->setIcon( LXDG::findIcon("arrow-down-drop-circle","")); -} - -void LSysDashboard::openMenu(){ - sysmenu->UpdateMenu(); - button->showMenu(); -} - -void LSysDashboard::closeMenu(){ - menu->hide(); -} - diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/LSysDashboard.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/LSysDashboard.h deleted file mode 100644 index 782fc4e6..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/LSysDashboard.h +++ /dev/null @@ -1,76 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin allows the user to control different system settings -// For example: screen brightness, audio volume, workspace, and battery -//=========================================== -#ifndef _LUMINA_DESKTOP_SYSTEM_DASHBOARD_H -#define _LUMINA_DESKTOP_SYSTEM_DASHBOARD_H - -//Qt includes - -#include <QHBoxLayout> -#include <QDebug> -#include <QCoreApplication> -#include <QPainter> -#include <QPixmap> -#include <QWidgetAction> -#include <QMenu> -#include <QTimer> -#include <QToolButton> - -//libLumina includes -#include <LuminaOS.h> -#include <LuminaXDG.h> - -//Local includes -#include "../LPPlugin.h" -#include "SysMenuQuick.h" - -class LSysDashboard : public LPPlugin{ - Q_OBJECT -public: - LSysDashboard(QWidget *parent = 0, QString id="systemdashboard", bool horizontal=true); - ~LSysDashboard(); - -private: - QMenu *menu; - QWidgetAction *mact; - LSysMenuQuick *sysmenu; - QToolButton *button; - QTimer *upTimer; - -private slots: - void updateIcon(bool force = false); - void resetIcon(); - void openMenu(); - void closeMenu(); - -public slots: - void LocaleChange(){ - updateIcon(true); - sysmenu->UpdateMenu(); - } - - void ThemeChange(){ - updateIcon(true); - sysmenu->UpdateMenu(); - } - - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - } - updateIcon(true); //force icon refresh - this->layout()->update(); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.cpp deleted file mode 100644 index 1d699ea9..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.cpp +++ /dev/null @@ -1,211 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "SysMenuQuick.h" -#include "ui_SysMenuQuick.h" - -#include "../../LSession.h" -#include <LuminaX11.h> - -LSysMenuQuick::LSysMenuQuick(QWidget *parent) : QWidget(parent), ui(new Ui::LSysMenuQuick){ - ui->setupUi(this); - brighttimer = new QTimer(this); - brighttimer->setSingleShot(true); - brighttimer->setInterval(50); //50ms delay in setting the new value - //Now reset the initial saved settings (this is handles by the LOS/session now - 4/22/15) - firstrun = true; - UpdateMenu(); //do this once before all the signals/slots are connected below - firstrun = false; - //Now setup the connections - connect(ui->slider_volume, SIGNAL(valueChanged(int)), this, SLOT(volSliderChanged()) ); - connect(ui->slider_brightness, SIGNAL(valueChanged(int)), this, SLOT(brightSliderChanged()) ); - connect(ui->tool_wk_prev, SIGNAL(clicked()), this, SLOT(prevWorkspace()) ); - connect(ui->tool_wk_next, SIGNAL(clicked()), this, SLOT(nextWorkspace()) ); - connect(ui->tool_logout, SIGNAL(clicked()), this, SLOT(startLogout()) ); - connect(ui->tool_vol_mixer, SIGNAL(clicked()), this, SLOT(startMixer()) ); - connect(brighttimer, SIGNAL(timeout()), this, SLOT(setCurrentBrightness()) ); - connect(ui->combo_locale, SIGNAL(currentIndexChanged(int)), this, SLOT(changeLocale()) ); - //And setup the default icons - ui->label_bright_icon->setPixmap( LXDG::findIcon("preferences-system-power-management","").pixmap(ui->label_bright_icon->maximumSize()) ); - ui->tool_wk_prev->setIcon( LXDG::findIcon("go-previous-view","")); - ui->tool_wk_next->setIcon( LXDG::findIcon("go-next-view","") ); - ui->tool_logout->setIcon( LXDG::findIcon("system-log-out","") ); -} - -LSysMenuQuick::~LSysMenuQuick(){ - -} - -void LSysMenuQuick::UpdateMenu(){ - ui->retranslateUi(this); - //Audio Volume - int val = LOS::audioVolume(); - QIcon ico; - if(val > 66){ ico= LXDG::findIcon("audio-volume-high",""); } - else if(val > 33){ ico= LXDG::findIcon("audio-volume-medium",""); } - else if(val > 0){ ico= LXDG::findIcon("audio-volume-low",""); } - else{ ico= LXDG::findIcon("audio-volume-muted",""); } - bool hasMixer = LOS::hasMixerUtility(); - ui->label_vol_icon->setVisible(!hasMixer); - ui->tool_vol_mixer->setVisible(hasMixer); - if(!hasMixer){ ui->label_vol_icon->setPixmap( ico.pixmap(ui->label_vol_icon->maximumSize()) ); } - else{ ui->tool_vol_mixer->setIcon(ico); } - QString txt = QString::number(val)+"%"; - if(val<100){ txt.prepend(" "); } //make sure no widget resizing - ui->label_vol_text->setText(txt); - if(ui->slider_volume->value()!= val){ ui->slider_volume->setValue(val); } - //Screen Brightness - val = LOS::ScreenBrightness(); - if(val < 0){ - //No brightness control - hide it - ui->group_brightness->setVisible(false); - }else{ - ui->group_brightness->setVisible(true); - txt = QString::number(val)+"%"; - if(val<100){ txt.prepend(" "); } //make sure no widget resizing - ui->label_bright_text->setText(txt); - if(ui->slider_brightness->value()!=val){ ui->slider_brightness->setValue(val); } - } - - //Do any one-time checks - if(firstrun){ - hasBat = LOS::hasBattery(); //No need to check this more than once - will not change in the middle of a session - //Current Locale - QStringList locales = LUtils::knownLocales(); - ui->combo_locale->clear(); - QLocale curr; - for(int i=0; i<locales.length(); i++){ - QLocale loc( (locales[i]=="pt") ? "pt_PT" : locales[i] ); - ui->combo_locale->addItem(loc.nativeLanguageName()+" ("+locales[i]+")", locales[i]); //Make the display text prettier later - if(locales[i] == curr.name() || locales[i] == curr.name().section("_",0,0) ){ - //Current Locale - ui->combo_locale->setCurrentIndex(ui->combo_locale->count()-1); //the last item in the list right now - } - } - ui->group_locale->setVisible(locales.length() > 1); - } - - //Battery Status - if(hasBat){ - ui->group_battery->setVisible(true); - val = LOS::batteryCharge(); - if(LOS::batteryIsCharging()){ - if(val < 15){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-low","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 30){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-caution","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 50){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-040","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 70){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-060","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 90){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-080","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else{ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging","").pixmap(ui->label_bat_icon->maximumSize()) ); } - ui->label_bat_text->setText( QString("%1%\n(%2)").arg(QString::number(val), tr("connected")) ); - }else{ - if(val < 1){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-missing","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 15){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-low","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 30){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-caution","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 50){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-040","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 70){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-060","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else if(val < 90){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-080","").pixmap(ui->label_bat_icon->maximumSize()) ); } - else{ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-100","").pixmap(ui->label_bat_icon->maximumSize()) ); } - ui->label_bat_text->setText( QString("%1%\n(%2)").arg(QString::number(val), getRemainingTime()) ); - } - }else{ - ui->group_battery->setVisible(false); - } - //Workspace - val = LSession::handle()->XCB->CurrentWorkspace(); - int tot = LSession::handle()->XCB->NumberOfWorkspaces(); - ui->group_workspace->setVisible(val>=0 && tot>1); - ui->label_wk_text->setText( QString(tr("%1 of %2")).arg(QString::number(val+1), QString::number(tot)) ); -} - -void LSysMenuQuick::volSliderChanged(){ - int val = ui->slider_volume->value(); - LOS::setAudioVolume(val); - QString txt = QString::number(val)+"%"; - if(val<100){ txt.prepend(" "); } //make sure no widget resizing - ui->label_vol_text->setText( txt ); - if(val > 66){ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-high","").pixmap(ui->label_vol_icon->maximumSize()) ); } - else if(val > 33){ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-medium","").pixmap(ui->label_vol_icon->maximumSize()) ); } - else if(val > 0){ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-low","").pixmap(ui->label_vol_icon->maximumSize()) ); } - else{ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-muted","").pixmap(ui->label_vol_icon->maximumSize()) ); } -} - -void LSysMenuQuick::startMixer(){ - emit CloseMenu(); - LOS::startMixerUtility(); -} - -void LSysMenuQuick::brightSliderChanged(){ - //Brightness controls cannot operate extremely quickly - combine calls as necessary - if(brighttimer->isActive()){ brighttimer->stop(); } - brighttimer->start(); - //*DO* update the label right away - int val = ui->slider_brightness->value(); - QString txt = QString::number(val)+"%"; - if(val<100){ txt.prepend(" "); } //make sure no widget resizing - ui->label_bright_text->setText( txt ); -} - -void LSysMenuQuick::setCurrentBrightness(){ - int val = ui->slider_brightness->value(); - LOS::setScreenBrightness(val); - QString txt = QString::number(val)+"%"; - if(val<100){ txt.prepend(" "); } //make sure no widget resizing - ui->label_bright_text->setText( txt ); -} - -void LSysMenuQuick::nextWorkspace(){ - int cur = LSession::handle()->XCB->CurrentWorkspace(); - int tot = LSession::handle()->XCB->NumberOfWorkspaces(); - //qDebug()<< "Next Workspace:" << cur << tot; - cur++; - if(cur>=tot){ cur = 0; } //back to beginning - //qDebug() << " - New Current:" << cur; - LSession::handle()->XCB->SetCurrentWorkspace(cur); -ui->label_wk_text->setText( QString(tr("%1 of %2")).arg(QString::number(cur+1), QString::number(tot)) ); -} - -void LSysMenuQuick::prevWorkspace(){ - int cur = LSession::handle()->XCB->CurrentWorkspace(); - int tot = LSession::handle()->XCB->NumberOfWorkspaces(); - cur--; - if(cur<0){ cur = tot-1; } //back to last - LSession::handle()->XCB->SetCurrentWorkspace(cur); - ui->label_wk_text->setText( QString(tr("%1 of %2")).arg(QString::number(cur+1), QString::number(tot)) ); -} - -QString LSysMenuQuick::getRemainingTime(){ - int secs = LOS::batterySecondsLeft(); - if(secs < 0){ return "??"; } - QString rem; //remaining - if(secs > 3600){ - int hours = secs/3600; - rem.append( QString::number(hours)+"h "); - secs = secs - (hours*3600); - } - if(secs > 60){ - int min = secs/60; - rem.append( QString::number(min)+"m "); - secs = secs - (min*60); - } - if(secs > 0){ - rem.append( QString::number(secs)+"s"); - }else{ - rem.append( "0s" ); - } - return rem; -} - -void LSysMenuQuick::startLogout(){ - emit CloseMenu(); - LSession::handle()->systemWindow(); -} - -void LSysMenuQuick::changeLocale(){ - //Get the currently selected Locale - QString locale = ui->combo_locale->currentData().toString(); - emit CloseMenu(); - LSession::handle()->switchLocale(locale); -}
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.h deleted file mode 100644 index a300b5b1..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.h +++ /dev/null @@ -1,54 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin allows the user to control different system settings -// For example: screen brightness, audio volume, workspace, and battery -//=========================================== -#ifndef _LUMINA_PANEL_QUICK_SYSTEM_MENU_H -#define _LUMINA_PANEL_QUICK_SYSTEM_MENU_H - -#include <QWidget> -#include <QSettings> -#include <QString> - -#include <LuminaOS.h> -#include <LuminaXDG.h> - -namespace Ui{ - class LSysMenuQuick; -}; - -class LSysMenuQuick : public QWidget{ - Q_OBJECT -public: - LSysMenuQuick(QWidget *parent=0); - ~LSysMenuQuick(); - - void UpdateMenu(); - -private: - Ui::LSysMenuQuick *ui; - QTimer *brighttimer; - bool firstrun, hasBat; - QString getRemainingTime(); //battery time left - -private slots: - void volSliderChanged(); - void brightSliderChanged(); //start the delay/collection timer - void setCurrentBrightness(); //perform the change - void startMixer(); - void nextWorkspace(); - void prevWorkspace(); - void startLogout(); - void changeLocale(); - - -signals: - void CloseMenu(); - -}; - -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.ui b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.ui deleted file mode 100644 index 26c32c74..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemdashboard/SysMenuQuick.ui +++ /dev/null @@ -1,400 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>LSysMenuQuick</class> - <widget class="QWidget" name="LSysMenuQuick"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>171</width> - <height>317</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <property name="styleSheet"> - <string notr="true">/*QGroupBox{ -border-radius: 5px; -border: 1px solid grey; -margin-top: 1ex; -} -QGroupBox::title{ -subcontrol-origin: margin; -subcontrol-position: top center; -padding: 0 3px; -background-color: rgba(255,255,255,255); -border-radius: 5px; -font: bold; -}*/</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>1</number> - </property> - <property name="topMargin"> - <number>1</number> - </property> - <property name="rightMargin"> - <number>1</number> - </property> - <property name="bottomMargin"> - <number>1</number> - </property> - <item> - <widget class="QGroupBox" name="group_volume"> - <property name="title"> - <string>System Volume</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QLabel" name="label_vol_icon"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="text"> - <string notr="true"/> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_vol_mixer"> - <property name="minimumSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolTip"> - <string>Launch Audio Mixer</string> - </property> - <property name="text"> - <string/> - </property> - <property name="iconSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QSlider" name="slider_volume"> - <property name="maximum"> - <number>100</number> - </property> - <property name="value"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_vol_text"> - <property name="text"> - <string notr="true">100%</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="group_brightness"> - <property name="title"> - <string>Screen Brightness</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QLabel" name="label_bright_icon"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="text"> - <string notr="true"/> - </property> - </widget> - </item> - <item> - <widget class="QSlider" name="slider_brightness"> - <property name="minimum"> - <number>10</number> - </property> - <property name="maximum"> - <number>100</number> - </property> - <property name="value"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_bright_text"> - <property name="text"> - <string notr="true">100%</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="group_battery"> - <property name="title"> - <string>Battery Status</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QLabel" name="label_bat_icon"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="text"> - <string notr="true"/> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_bat_text"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string notr="true">100% (Plugged in)</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="group_workspace"> - <property name="title"> - <string>Workspace</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QToolButton" name="tool_wk_prev"> - <property name="text"> - <string notr="true">prev</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_wk_text"> - <property name="text"> - <string notr="true">1 of 2</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_wk_next"> - <property name="text"> - <string notr="true">next</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="group_locale"> - <property name="title"> - <string>Locale</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>2</number> - </property> - <property name="topMargin"> - <number>2</number> - </property> - <property name="rightMargin"> - <number>2</number> - </property> - <property name="bottomMargin"> - <number>2</number> - </property> - <item> - <widget class="QComboBox" name="combo_locale"/> - </item> - </layout> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <item> - <widget class="QToolButton" name="tool_logout"> - <property name="font"> - <font> - <pointsize>9</pointsize> - </font> - </property> - <property name="text"> - <string>Log Out</string> - </property> - <property name="iconSize"> - <size> - <width>22</width> - <height>22</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/ItemWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/ItemWidget.cpp deleted file mode 100644 index ea074a59..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/ItemWidget.cpp +++ /dev/null @@ -1,279 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "ItemWidget.h" -#include <LUtils.h> -#include <QMenu> -#include "../../LSession.h" - - -ItemWidget::ItemWidget(QWidget *parent, QString itemPath, QString type, bool goback) : QFrame(parent){ - createWidget(); - //Now fill it appropriately - bool inHome = type.endsWith("-home"); //internal code - if(inHome){ type = type.remove("-home"); } - if(itemPath.endsWith(".desktop") || type=="app"){ - XDGDesktop item(itemPath, this); - gooditem = item.isValid(); - //qDebug() << "Good Item:" << gooditem << itemPath; - if(gooditem){ - icon->setPixmap( LXDG::findIcon(item.icon, "preferences-system-windows-actions").pixmap(32,32) ); - iconPath = item.icon; - text = item.name; - if(!item.genericName.isEmpty() && item.name!=item.genericName){ text.append("<br><i> -- "+item.genericName+"</i>"); } - name->setText(text); - name->setToolTip(item.comment); - setupActions(&item); - }else{ - return; - } - }else if(type=="dir"){ - actButton->setVisible(false); - if(itemPath.endsWith("/")){ itemPath.chop(1); } - if(goback){ - icon->setPixmap( LXDG::findIcon("go-previous","").pixmap(64,64) ); - iconPath = "go-previous"; - text = tr("Go Back"); - name->setText( text ); - }else{ - icon->setPixmap( LXDG::findIcon("folder","").pixmap(64,64) ); - iconPath = "folder"; - name->setText( itemPath.section("/",-1)); - text = itemPath.section("/",-1); - } - }else if(type.startsWith("chcat::::")){ - //Category given - actButton->setVisible(false); - iconPath = LXDG::DesktopCatToIcon(type.section("::::",1,50)); - if(goback){ iconPath = "go-previous"; type = "chcat::::"; itemPath = "<B>("+itemPath+")</B>"; } - icon->setPixmap( LXDG::findIcon(iconPath,"applications-other").pixmap(64,64) ); - name->setText(itemPath); - text = itemPath; - icon->setWhatsThis(type); - linkPath = type; - }else{ - actButton->setVisible(false); - if(itemPath.endsWith("/")){ itemPath.chop(1); } - if(QFileInfo(itemPath).isDir()){ - type = "dir"; - icon->setPixmap( LXDG::findIcon("folder","").pixmap(64,64) ); - iconPath = "folder"; - }else if(LUtils::imageExtensions().contains(itemPath.section("/",-1).section(".",-1).toLower()) ){ - icon->setPixmap( QIcon(itemPath).pixmap(64,64) ); - }else{ - if( LUtils::isValidBinary(itemPath) ){ icon->setPixmap( LXDG::findIcon(type, "application-x-executable").pixmap(64,64) ); } - else{ icon->setPixmap( LXDG::findMimeIcon(itemPath.section("/",-1)).pixmap(64,64) ); } - } - name->setText( itemPath.section("/",-1) ); //this->fontMetrics().elidedText(itemPath.section("/",-1), Qt::ElideRight, TEXTCUTOFF) ); - text = itemPath.section("/",-1) ; - } - icon->setWhatsThis(itemPath); - if(!goback){ this->setWhatsThis(name->text()); } - isDirectory = (type=="dir"); //save this for later - if(LDesktopUtils::isFavorite(itemPath)){ - linkPath = itemPath; - isShortcut=true; - }else if( inHome ){//|| itemPath.section("/",0,-2)==QDir::homePath()+"/Desktop" ){ - isShortcut = true; - }else{ - isShortcut = false; - } - if(isShortcut && name->toolTip().isEmpty()){ - name->setToolTip(icon->whatsThis()); //also allow the user to see the full shortcut path - } - //Now setup the button appropriately - setupContextMenu(); -} - -// - Application constructor -ItemWidget::ItemWidget(QWidget *parent, XDGDesktop *item) : QFrame(parent){ - createWidget(); - if(item==0){ gooditem = false; return; } - isDirectory = false; - if(LDesktopUtils::isFavorite(item->filePath)){ - linkPath = item->filePath; - isShortcut=true; - }else if( item->filePath.section("/",0,-2)==QDir::homePath()+"/Desktop" ){ - isShortcut = true; - }else{ - isShortcut = false; - } - if(isShortcut){ - name->setToolTip(icon->whatsThis()); //also allow the user to see the full shortcut path - } - //Now fill it appropriately - icon->setPixmap( LXDG::findIcon(item->icon,"preferences-system-windows-actions").pixmap(64,64) ); - text = item->name; - if(!item->genericName.isEmpty() && item->name!=item->genericName){ text.append("<br><i> -- "+item->genericName+"</i>"); } - name->setText(text); - name->setToolTip(item->comment); - this->setWhatsThis(item->name); - icon->setWhatsThis(item->filePath); - iconPath = item->icon; - //Now setup the buttons appropriately - setupContextMenu(); - setupActions(item); -} - -ItemWidget::~ItemWidget(){ - icon->setPixmap(QPixmap()); //make sure the pixmap is cleared from memory too - actButton->deleteLater(); - contextMenu->clear(); - contextMenu->deleteLater(); - if(actButton->menu()!=0){ - for(int i=0; i<actButton->menu()->actions().length(); i++){ - actButton->menu()->actions().at(i)->deleteLater(); - } - actButton->menu()->deleteLater(); - } - actButton->deleteLater(); - icon->deleteLater(); - name->deleteLater(); - menureset->deleteLater(); - linkPath.clear(); iconPath.clear(); text.clear(); -} - -void ItemWidget::triggerItem(){ - ItemClicked(); -} - -void ItemWidget::createWidget(){ - //Initialize the widgets - gooditem = true; - menuopen = false; - menureset = new QTimer(this); - menureset->setSingleShot(true); - menureset->setInterval(1000); //1 second - this->setContentsMargins(0,0,0,0); - contextMenu = new QMenu(this); - connect(contextMenu, SIGNAL(aboutToShow()), this, SLOT(actionMenuOpen()) ); - connect(contextMenu, SIGNAL(aboutToHide()), this, SLOT(actionMenuClosed()) ); - actButton = new QToolButton(this); - actButton->setPopupMode(QToolButton::InstantPopup); - actButton->setArrowType(Qt::DownArrow); - icon = new QLabel(this); - name = new QLabel(this); - name->setWordWrap(true); - name->setTextFormat(Qt::RichText); - name->setTextInteractionFlags(Qt::NoTextInteraction); - //Add them to the layout - this->setLayout(new QHBoxLayout(this)); - this->layout()->setContentsMargins(1,1,1,1); - this->layout()->addWidget(icon); - this->layout()->addWidget(actButton); - this->layout()->addWidget(name); - //Set a custom object name so this can be tied into the Lumina Theme stylesheets - this->setObjectName("LuminaItemWidget"); -} - -void ItemWidget::setupContextMenu(){ - //Now refresh the context menu - contextMenu->clear(); - if(!QFile::exists(QDir::homePath()+"/Desktop/"+icon->whatsThis().section("/",-1)) ){ - //Does not have a desktop link - contextMenu->addAction( LXDG::findIcon("preferences-desktop-icons",""), tr("Pin to Desktop"), this, SLOT(PinToDesktop()) ); - } - //Favorite Item - if( LDesktopUtils::isFavorite(icon->whatsThis()) ){ //Favorite Item - can always remove this - contextMenu->addAction( LXDG::findIcon("edit-delete",""), tr("Remove from Favorites"), this, SLOT(RemoveFavorite()) ); - }else{ - //This file does not have a shortcut yet -- allow the user to add it - contextMenu->addAction( LXDG::findIcon("bookmark-toolbar",""), tr("Add to Favorites"), this, SLOT(AddFavorite()) ); - } - //QuickLaunch Item - if(LSession::handle()->sessionSettings()->value("QuicklaunchApps",QStringList()).toStringList().contains(icon->whatsThis()) ){ //Favorite Item - can always remove this - contextMenu->addAction( LXDG::findIcon("edit-delete",""), tr("Remove from Quicklaunch"), this, SLOT(RemoveQL()) ); - }else{ - //This file does not have a shortcut yet -- allow the user to add it - contextMenu->addAction( LXDG::findIcon("quickopen",""), tr("Add to Quicklaunch"), this, SLOT(AddQL()) ); - } -} - -void ItemWidget::setupActions(XDGDesktop *app){ - if(app==0 || app->actions.isEmpty()){ actButton->setVisible(false); return; } - //Actions Available - go ahead and list them all - actButton->setMenu( new QMenu(this) ); - for(int i=0; i<app->actions.length(); i++){ - QAction *act = new QAction(LXDG::findIcon(app->actions[i].icon, app->icon), app->actions[i].name, this); - act->setToolTip(app->actions[i].ID); - act->setWhatsThis(app->actions[i].ID); - actButton->menu()->addAction(act); - } - connect(actButton->menu(), SIGNAL(triggered(QAction*)), this, SLOT(actionClicked(QAction*)) ); - connect(actButton->menu(), SIGNAL(aboutToShow()), this, SLOT(actionMenuOpen()) ); - connect(actButton->menu(), SIGNAL(aboutToHide()), this, SLOT(actionMenuClosed()) ); - connect(menureset, SIGNAL(timeout()), this, SLOT(resetmenuflag()) ); -} - -void ItemWidget::updateItems(){ - //update the text/icon to match sizes - int H = 2.3*name->fontMetrics().height(); //make sure the height is large enough for two lines - icon->setFixedSize(QSize(H-4, H-4)); - actButton->setFixedSize( QSize( (H-4)/2, H-4) ); - QStringList newname = text.split("<br>"); - for(int i=0; i<newname.length(); i++){ newname[i] = name->fontMetrics().elidedText(newname[i], Qt::ElideRight, name->width()); } - name->setText( newname.join("<br>") ); - //Now reload the icon if necessary - if(icon->pixmap()!=0){ - if(icon->pixmap()->size().height() < (H-4) ){ - if(iconPath.isEmpty()){ - //Use item path (thumbnail or mimetype) - if(LUtils::imageExtensions().contains(icon->whatsThis().section("/",-1).section(".",-1).toLower()) ){ - icon->setPixmap( QIcon(icon->whatsThis()).pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); - }else{ - icon->setPixmap( LXDG::findMimeIcon(icon->whatsThis().section("/",-1)).pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); - } - }else{ - icon->setPixmap( LXDG::findIcon(iconPath,"preferences-system-windows-actions").pixmap(H-4,H-4).scaledToHeight(H-4,Qt::SmoothTransformation) ); - } - }else if(icon->pixmap()->size().height() > (H-4) ){ - icon->setPixmap( icon->pixmap()->scaled(H-4, H-4, Qt::IgnoreAspectRatio, Qt::SmoothTransformation) ); - } - } -} - -void ItemWidget::PinToDesktop(){ - qDebug() << "Create Link on Desktop:" << icon->whatsThis(); - bool ok = QFile::link(icon->whatsThis(), QDir::homePath()+"/Desktop/"+icon->whatsThis().section("/",-1)); - qDebug() << " - " << (ok ? "Success": "Failure"); -} - -void ItemWidget::RemoveFavorite(){ - LDesktopUtils::removeFavorite(icon->whatsThis()); - linkPath.clear(); - emit RemovedShortcut(); -} - -void ItemWidget::AddFavorite(){ - if( LDesktopUtils::addFavorite(icon->whatsThis()) ){ - linkPath = icon->whatsThis(); - emit NewShortcut(); - } - -} -void ItemWidget::RemoveQL(){ - qDebug() << "Remove QuickLaunch Button:" << icon->whatsThis(); - emit toggleQuickLaunch(icon->whatsThis(), false); -} - -void ItemWidget::AddQL(){ - qDebug() << "Add QuickLaunch Button:" << icon->whatsThis(); - emit toggleQuickLaunch(icon->whatsThis(), true); -} - - -void ItemWidget::ItemClicked(){ - if(!linkPath.isEmpty()){ emit RunItem(linkPath); } - else{ emit RunItem(icon->whatsThis()); } -} - -void ItemWidget::actionClicked(QAction *act){ - actButton->menu()->hide(); - QString cmd = "lumina-open -action \""+act->whatsThis()+"\" \"%1\""; - if(!linkPath.isEmpty()){ cmd = cmd.arg(linkPath); } - else{ cmd = cmd.arg(icon->whatsThis()); } - emit RunItem(cmd); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/ItemWidget.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/ItemWidget.h deleted file mode 100644 index 11394dd6..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/ItemWidget.h +++ /dev/null @@ -1,98 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This item widget manages a single file/directory -//=========================================== -#ifndef _LUMINA_PANEL_SYSTEM_START_ITEM_WIDGET_H -#define _LUMINA_PANEL_SYSTEM_START_ITEM_WIDGET_H - -#include <QFrame> -#include <QLabel> -#include <QToolButton> -#include <QString> -#include <QHBoxLayout> -#include <QSize> -#include <QDir> -#include <QFile> -#include <QMouseEvent> -#include <QAction> -#include <QMenu> -#include <QTimer> -#include <QResizeEvent> - -#include <LuminaXDG.h> - -class ItemWidget : public QFrame{ - Q_OBJECT -public: - //Overloaded Constructors for various uses - // - Favorites (path/type) - ItemWidget(QWidget *parent=0, QString itemPath="", QString type="unknown", bool goback=false); - // - Generic Apps - ItemWidget(QWidget *parent=0, XDGDesktop *item= 0); - - ~ItemWidget(); - - bool gooditem; - - void triggerItem(); //trigger this item - just as if it was clicked on - -private: - QToolButton *actButton; - QMenu *contextMenu; - QLabel *icon, *name; - bool isDirectory, isShortcut, menuopen; - QString linkPath, iconPath, text; - QTimer *menureset; - - void createWidget(); - - void setupContextMenu(); - void setupActions(XDGDesktop*); - - void updateItems(); //update the text/icon to match sizes - -private slots: - void PinToDesktop(); - void RemoveFavorite(); - void AddFavorite(); - void RemoveQL(); - void AddQL(); - void ItemClicked(); - void actionClicked(QAction*); - //Functions to fix the submenu open/close issues - void actionMenuOpen(){ - if(menureset->isActive()){ menureset->stop(); } - menuopen = true; - } - void resetmenuflag(){ menuopen = false; } //tied to the "menureset" timer - void actionMenuClosed(){ menureset->start(); } - - -protected: - void mouseReleaseEvent(QMouseEvent *event){ - if(menuopen){ resetmenuflag(); } //skip this event if a submenu was open - else if(event->button() == Qt::RightButton && !icon->whatsThis().startsWith("chcat::::") ){ - menuopen = true; - setupContextMenu(); - contextMenu->popup(event->globalPos()); - }else if(event->button() != Qt::NoButton){ ItemClicked(); } - } - - void resizeEvent(QResizeEvent *ev){ - updateItems(); //update the sizing of everything - QFrame::resizeEvent(ev); // do the normal procedures - } - -signals: - void NewShortcut(); - void RemovedShortcut(); - void RunItem(QString cmd); - void toggleQuickLaunch(QString path, bool ok); - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/LStartButton.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/LStartButton.cpp deleted file mode 100644 index f44add77..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/LStartButton.cpp +++ /dev/null @@ -1,137 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LStartButton.h" -#include "../../LSession.h" - -#include <LuminaXDG.h> -#include <LUtils.h> //This contains the "ResizeMenu" class - -LStartButtonPlugin::LStartButtonPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonIconOnly); - button->setPopupMode(QToolButton::DelayedPopup); //make sure it runs the update routine first - connect(button, SIGNAL(clicked()), this, SLOT(openMenu())); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - menu = new ResizeMenu(this); - menu->setContentsMargins(1,1,1,1); - connect(menu, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - connect(menu, SIGNAL(MenuResized(QSize)), this, SLOT(SaveMenuSize(QSize)) ); - startmenu = new StartMenu(this); - connect(startmenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) ); - connect(startmenu, SIGNAL(UpdateQuickLaunch(QStringList)), this, SLOT(updateQuickLaunch(QStringList))); - menu->setContents(startmenu); - QSize saved = LSession::handle()->DesktopPluginSettings()->value("panelPlugs/"+this->type()+"/MenuSize", QSize(0,0)).toSize(); - if(!saved.isNull()){ startmenu->setFixedSize(saved); } //re-load the previously saved value - - button->setMenu(menu); - connect(menu, SIGNAL(aboutToHide()), this, SLOT(updateButtonVisuals()) ); - QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes - QTimer::singleShot(0, startmenu, SLOT(ReLoadQuickLaunch()) ); - //Setup the global shortcut handling for opening the start menu - connect(QApplication::instance(), SIGNAL(StartButtonActivated()), this, SLOT(shortcutActivated()) ); - LSession::handle()->registerStartButton(this->type()); -} - -LStartButtonPlugin::~LStartButtonPlugin(){ - LSession::handle()->unregisterStartButton(this->type()); -} - -void LStartButtonPlugin::updateButtonVisuals(){ - button->setToolTip(tr("")); - button->setText( SYSTEM::user() ); - button->setIcon( LXDG::findIcon("start-here-lumina","Lumina-DE") ); //force icon refresh -} - -void LStartButtonPlugin::updateQuickLaunch(QStringList apps){ - //First clear any obsolete apps - QStringList old; - //qDebug() << "Update QuickLaunch Buttons"; - for(int i=0; i<QUICKL.length(); i++){ - if( !apps.contains(QUICKL[i]->whatsThis()) ){ - //App was removed - QUICKL.takeAt(i)->deleteLater(); - i--; - }else{ - //App still listed - update the button - old << QUICKL[i]->whatsThis(); //add the list of current buttons - LFileInfo info(QUICKL[i]->whatsThis()); - QUICKL[i]->setIcon( LXDG::findIcon(info.iconfile(),"unknown") ); - if(info.isDesktopFile()){ QUICKL[i]->setToolTip( info.XDG()->name ); } - else{ QUICKL[i]->setToolTip( info.fileName() ); } - } - } - //Now go through and create any new buttons - for(int i=0; i<apps.length(); i++){ - if( !old.contains(apps[i]) ){ - //New App - LQuickLaunchButton *tmp = new LQuickLaunchButton(apps[i], this); - QUICKL << tmp; - LFileInfo info(apps[i]); - tmp->setIcon( LXDG::findIcon( info.iconfile() ) ); - if(info.isDesktopFile()){ tmp->setToolTip( info.XDG()->name ); } - else{ tmp->setToolTip( info.fileName() ); } - //Now add the button to the layout and connect the signal/slots - this->layout()->insertWidget(i+1,tmp); //"button" is always in slot 0 - connect(tmp, SIGNAL(Launch(QString)), this, SLOT(LaunchQuick(QString)) ); - connect(tmp, SIGNAL(Remove(QString)), this, SLOT(RemoveQuick(QString)) ); - } - } - //qDebug() << " - Done updateing QuickLaunch Buttons"; - QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes -} - -void LStartButtonPlugin::LaunchQuick(QString file){ - //Need to get which button was clicked - //qDebug() << "Quick Launch triggered:" << file; - if(!file.isEmpty()){ - LSession::LaunchApplication("lumina-open \""+file+"\""); - emit MenuClosed(); - } -} - -void LStartButtonPlugin::RemoveQuick(QString file){ - //qDebug() << "Remove Quicklaunch Button:" << file; - if(!file.isEmpty()){ - startmenu->UpdateQuickLaunch(file, false); //always a removal - emit MenuClosed(); - } -} - -void LStartButtonPlugin::SaveMenuSize(QSize sz){ - //Save this size for the menu - LSession::handle()->DesktopPluginSettings()->setValue("panelPlugs/"+this->type()+"/MenuSize", sz); -} - -// ======================== -// PRIVATE FUNCTIONS -// ======================== -void LStartButtonPlugin::openMenu(){ - if(menu->isVisible()){ return; } //don't re-show it - already open - //TESTING CODE TO SEE IF THIS MAKES IT RECOVER MEMORY - /*StartMenu *old = startmenu; - startmenu = new StartMenu(this); - connect(startmenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) ); - connect(startmenu, SIGNAL(UpdateQuickLaunch(QStringList)), this, SLOT(updateQuickLaunch(QStringList))); - menu->setContents(startmenu); - if(old!=0){ old->deleteLater(); }*/ -//-------- - startmenu->UpdateMenu(); - button->showMenu(); -} - -void LStartButtonPlugin::closeMenu(){ - menu->hide(); -} - -void LStartButtonPlugin::shortcutActivated(){ - if(LSession::handle()->registerStartButton(this->type())){ - if(menu->isVisible()){ closeMenu(); } - else{ this->activateWindow(); openMenu(); } - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/LStartButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/LStartButton.h deleted file mode 100644 index d46bb1be..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/LStartButton.h +++ /dev/null @@ -1,113 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin is the main button that allow the user to run -// applications or logout of the desktop -//=========================================== -#ifndef _LUMINA_DESKTOP_START_MENU_PLUGIN_H -#define _LUMINA_DESKTOP_START_MENU_PLUGIN_H - -// Qt includes -#include <QMenu> -#include <QWidgetAction> -#include <QToolButton> -#include <QString> -#include <QWidget> -#include <QMenu> - -// Lumina-desktop includes -//#include "../../Globals.h" -#include "../LPPlugin.h" //main plugin widget - -// libLumina includes -#include <LuminaXDG.h> -#include <LUtils.h> -#include <ResizeMenu.h> - -#include "StartMenu.h" - -//Simple Tool Button For QuickLaunch Items -class LQuickLaunchButton : public QToolButton{ - Q_OBJECT -signals: - void Launch(QString); - void Remove(QString); - -private slots: - void rmentry(){ - emit Remove(this->whatsThis()); - } - void launchentry(){ - emit Launch(this->whatsThis()); - } - -public: - LQuickLaunchButton(QString path, QWidget* parent = 0) : QToolButton(parent){ - this->setWhatsThis(path); - this->setMenu(new QMenu(this)); - this->setContextMenuPolicy(Qt::CustomContextMenu); - this->menu()->addAction( LXDG::findIcon("edit-delete",""), tr("Remove from Quicklaunch"), this, SLOT(rmentry()) ); - connect(this, SIGNAL(clicked()), this, SLOT(launchentry()) ); - connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showMenu()) ); - } - ~LQuickLaunchButton(){} - -}; - -// PANEL PLUGIN BUTTON -class LStartButtonPlugin : public LPPlugin{ - Q_OBJECT - -public: - LStartButtonPlugin(QWidget *parent = 0, QString id = "systemstart", bool horizontal=true); - ~LStartButtonPlugin(); - -private: - ResizeMenu *menu; - //QWidgetAction *mact; - StartMenu *startmenu; - QToolButton *button; - QList<LQuickLaunchButton*> QUICKL; - -private slots: - void openMenu(); - void closeMenu(); - void shortcutActivated(); - - void updateButtonVisuals(); - - void updateQuickLaunch(QStringList); - void LaunchQuick(QString); - void RemoveQuick(QString); - void SaveMenuSize(QSize); - -public slots: - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - for(int i=0; i<QUICKL.length(); i++){ QUICKL[i]->setIconSize(QSize(this->height(), this->height())); } - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - for(int i=0; i<QUICKL.length(); i++){ QUICKL[i]->setIconSize(QSize(this->width(), this->width())); } - } - this->layout()->update(); - updateButtonVisuals(); - } - - void LocaleChange(){ - updateButtonVisuals(); - if(startmenu!=0){ startmenu->UpdateAll(); } - } - - void ThemeChange(){ - updateButtonVisuals(); - if(startmenu!=0){ startmenu->UpdateAll(); } - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.cpp deleted file mode 100644 index d05ba22f..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.cpp +++ /dev/null @@ -1,720 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "StartMenu.h" -#include "ui_StartMenu.h" -//#include <QtConcurrent> - -#include <LuminaOS.h> -#include "../../LSession.h" -#include <QtConcurrent> -#include <QMessageBox> - -#include "ItemWidget.h" -//#define SSAVER QString("xscreensaver-demo") - -StartMenu::StartMenu(QWidget *parent) : QWidget(parent), ui(new Ui::StartMenu){ - ui->setupUi(this); //load the designer file - this->setMouseTracking(true); - searchTimer = new QTimer(this); - searchTimer->setInterval(300); //~1/3 second - searchTimer->setSingleShot(true); - connect(searchTimer, SIGNAL(timeout()), this, SLOT(startSearch()) ); - connect(LSession::handle()->applicationMenu(), SIGNAL(AppMenuUpdated()), this, SLOT(UpdateApps()) ); - connect(LSession::handle(), SIGNAL(FavoritesChanged()), this, SLOT(UpdateFavs()) ); - //Need to load the last used setting of the application list - QString state = LSession::handle()->DesktopPluginSettings()->value("panelPlugs/systemstart/showcategories", "partial").toString(); - if(state=="partial"){ui->check_apps_showcats->setCheckState(Qt::PartiallyChecked); } - else if(state=="true"){ ui->check_apps_showcats->setCheckState(Qt::Checked); } - else{ ui->check_apps_showcats->setCheckState(Qt::Unchecked); } - connect(ui->check_apps_showcats, SIGNAL(stateChanged(int)), this, SLOT(catViewChanged()) ); - UpdateAll(); - QTimer::singleShot(10, this,SLOT(UpdateApps())); - QTimer::singleShot(10, this, SLOT(UpdateFavs())); -} - -StartMenu::~StartMenu(){ - -} - -void StartMenu::UpdateAll(){ - //Update all the icons/text on all the pages - - // Update Text - ui->retranslateUi(this); - - //Update Icons - ui->tool_goto_apps->setIcon(LXDG::findIcon("system-run","")); - ui->tool_goto_settings->setIcon(LXDG::findIcon("preferences-system","")); - ui->tool_launch_fm->setIcon(LXDG::findIcon("user-home","")); - ui->tool_launch_desksettings->setIcon(LXDG::findIcon("preferences-desktop","")); - ui->tool_lock->setIcon(LXDG::findIcon("system-lock-screen","")); - ui->tool_goto_logout->setIcon(LXDG::findIcon("system-log-out","")); - ui->tool_back->setIcon(LXDG::findIcon("go-previous","")); - ui->tool_launch_deskinfo->setIcon(LXDG::findIcon("system-help","")); - - ui->tool_launch_mixer->setIcon( LXDG::findIcon("preferences-desktop-sound","") ); - ui->label_bright_icon->setPixmap( LXDG::findIcon("preferences-system-power-management","").pixmap(ui->tool_goto_apps->iconSize()) ); - ui->label_locale_icon->setPixmap( LXDG::findIcon("preferences-desktop-locale","").pixmap(ui->tool_goto_apps->iconSize()) ); - ui->tool_set_nextwkspace->setIcon(LXDG::findIcon("go-next-view","")); - ui->tool_set_prevwkspace->setIcon(LXDG::findIcon("go-previous-view","")); - ui->tool_logout->setIcon(LXDG::findIcon("system-log-out","")); - ui->tool_restart->setIcon(LXDG::findIcon("system-reboot","")); - ui->tool_shutdown->setIcon(LXDG::findIcon("system-shutdown","")); - ui->tool_suspend->setIcon(LXDG::findIcon("system-suspend","")); - - //Update Visibility of system/session/OS options - // -- Control Panel - QString tmp = LOS::ControlPanelShortcut(); - if(QFile::exists(tmp)){ - ui->tool_launch_controlpanel->setWhatsThis(tmp); - //Now read the file to see which icon to use - XDGDesktop desk(tmp); - if(desk.isValid()){ - ui->tool_launch_controlpanel->setIcon(LXDG::findIcon(desk.icon,"preferences-other")); - }else{ ui->tool_launch_controlpanel->setVisible(false); } - }else{ ui->tool_launch_controlpanel->setVisible(false); } - // -- App Store - tmp = LOS::AppStoreShortcut(); - if(QFile::exists(tmp)){ - ui->tool_launch_store->setWhatsThis(tmp); - //Now read the file to see which icon to use - XDGDesktop desk(tmp); - if(desk.isValid()){ - ui->tool_launch_store->setIcon(LXDG::findIcon(desk.icon,"utilities-file-archiver")); - }else{ ui->tool_launch_store->setVisible(false); } - }else{ ui->tool_launch_store->setVisible(false); } - //Audio Controls - ui->frame_audio->setVisible( LOS::audioVolume() >=0 ); - //Brightness controls - ui->frame_bright->setVisible( LOS::ScreenBrightness() >=0 ); - //Shutdown/restart - bool ok = LOS::userHasShutdownAccess(); - ui->frame_leave_system->setWhatsThis(ok ? "allowed": ""); - ui->frame_leave_system->setVisible(ok); - //Battery Availability - ok = LOS::hasBattery(); - ui->label_status_battery->setWhatsThis(ok ? "allowed": ""); - ui->label_status_battery->setVisible(ok); - //Locale availability - QStringList locales = LUtils::knownLocales(); - ui->stackedWidget->setCurrentWidget(ui->page_main); //need to ensure the settings page is not active - ui->combo_locale->clear(); - QString curr = LUtils::currentLocale(); - //qDebug() << "Update Locales:" << locales; - //qDebug() << "Current Locale:" << curr; - for(int i=0; i<locales.length(); i++){ - QLocale loc( (locales[i]=="pt") ? "pt_PT" : locales[i] ); - ui->combo_locale->addItem(loc.nativeLanguageName() +" ("+locales[i]+")", locales[i]); //Make the display text prettier later - if(locales[i] == curr || locales[i] == curr.section("_",0,0) ){ - //Current Locale - ui->combo_locale->setCurrentIndex(ui->combo_locale->count()-1); //the last item in the list right now - } - } - ui->frame_locale->setVisible(locales.length() > 1); - //User Name in status bar - ui->label_status->setText( QString::fromLocal8Bit(getlogin()) ); - //Lumina Utilities - ui->tool_launch_desksettings->setVisible(LUtils::isValidBinary("lumina-config")); - ui->tool_launch_deskinfo->setVisible(LUtils::isValidBinary("lumina-info")); - -} - -void StartMenu::UpdateMenu(bool forceall){ - //qDebug() << "Update Menu" << forceall; - ui->line_search->clear(); - if(forceall){ UpdateAll(); } - //Quick update routine before the menu is made visible - //qDebug() << "update favs"; - //UpdateFavs(); - //qDebug() << "check page"; - if(ui->stackedWidget->currentWidget() != ui->page_main){ - ui->stackedWidget->setCurrentWidget(ui->page_main); //just show the main page - }else{ - on_stackedWidget_currentChanged(0); //refresh/update the main page every time - } - //qDebug() << "done"; -} - -void StartMenu::ReLoadQuickLaunch(){ - emit UpdateQuickLaunch( LSession::handle()->sessionSettings()->value("QuicklaunchApps",QStringList()).toStringList() ); -} - -void StartMenu::UpdateQuickLaunch(QString path, bool keep){ - QStringList QL = LSession::handle()->sessionSettings()->value("QuicklaunchApps",QStringList()).toStringList(); - if(keep){QL << path; } - else{ QL.removeAll(path); } - QL.removeDuplicates(); - LSession::handle()->sessionSettings()->setValue("QuicklaunchApps",QL); - //LSession::handle()->sessionSettings()->sync(); - emit UpdateQuickLaunch(QL); -} - -// ========================== -// PRIVATE FUNCTIONS -// ========================== -/*void StartMenu::deleteChildren(QWidget *obj){ - if(obj->layout()==0){ - for(int i=0; i<obj->children().count(); i++){ - obj->children().at(i)->deleteLater(); - } - }else{ - - } -}*/ - -void StartMenu::ClearScrollArea(QScrollArea *area){ - //QWidget *old = area->takeWidget(); - //qDebug() << "Clear Scroll Area:"; - //if(old->layout()!=0){ qDebug() << " - Number of items in layout:" << old->layout()->count(); } - //qDebug() << " - Number of Children:" << old->children().count(); - //deleteChildren(old); //make sure we *fully* delete these items to save memory - //old->deleteLater(); - if(area == ui->scroll_favs){ - area->takeWidget()->deleteLater(); - } - if(area->widget()==0){ - area->setWidget( new QWidget(area) ); //create a new widget in the scroll area - } - if(area->widget()->layout()==0){ - QVBoxLayout *layout = new QVBoxLayout(area->widget()); - layout->setSpacing(2); - layout->setContentsMargins(3,1,3,1); - layout->setDirection(QBoxLayout::TopToBottom); - layout->setAlignment(Qt::AlignTop); - area->widget()->setContentsMargins(0,0,0,0); - area->widget()->setLayout(layout); - } - //Now clear the items in the layout - while( area->widget()->layout()->count() >0 ){ - QLayoutItem *it = area->widget()->layout()->takeAt(0); - //Need to delete both the widget and the layout item - if(it->widget()!=0){ it->widget()->deleteLater(); } - delete it; - } -} - -void StartMenu::SortScrollArea(QScrollArea *area){ - //qDebug() << "Sorting Scroll Area:"; - //Sort all the items in the scroll area alphabetically - QLayout *lay = area->widget()->layout(); - QStringList items; - for(int i=0; i<lay->count(); i++){ - items << lay->itemAt(i)->widget()->whatsThis(); - } - - items.sort(); - //qDebug() << " - Sorted Items:" << items; - for(int i=0; i<items.length(); i++){ - if(items[i].isEmpty()){ continue; } - //QLayouts are weird in that they can only add items to the end - need to re-insert almost every item - for(int j=0; j<lay->count(); j++){ - //Find this item - if(lay->itemAt(j)->widget()->whatsThis()==items[i]){ - //Found it - now move it if necessary - //qDebug() << "Found Item:" << items[i] << i << j; - lay->addItem( lay->takeAt(j) ); - break; - } - } - } -} - -void StartMenu::do_search(QString search, bool force){ - search = search.simplified(); //remove unneccesary whitespace - if(search == CSearch && !force){ - //nothing new - just ensure the page is visible - if(ui->stackedWidget->currentWidget()!=ui->page_search ){ ui->stackedWidget->setCurrentWidget(ui->page_search); } - return; - }else if(search.isEmpty()){ - CSearch.clear(); - if(ui->stackedWidget->currentWidget()==ui->page_search ){ on_tool_back_clicked(); } - return; - } - //Got a search term - check it - CSearch = search; //save this for comparison later - qDebug() << "Search for term:" << search; - ClearScrollArea(ui->scroll_search); - topsearch.clear(); - //Now find any items which match the search - QStringList found; //syntax: [<sorter>::::<mimetype>::::<filepath>] - QString tmp = search; - if(LUtils::isValidBinary(tmp)){ found << "0::::application/x-executable::::"+tmp; } - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); - for(int i=0; i<apps.length(); i++){ - int priority = -1; - if(apps[i]->name.toLower()==search.toLower()){ priority = 10; } - else if(apps[i]->name.startsWith(search, Qt::CaseInsensitive)){ priority = 15; } - else if(apps[i]->name.contains(search, Qt::CaseInsensitive)){ priority = 19; } - else if(apps[i]->genericName.contains(search, Qt::CaseInsensitive)){ priority = 20; } - else if(apps[i]->comment.contains(search, Qt::CaseInsensitive)){ priority = 30; } - //Can add other filters here later - - if(priority>0){ - found << QString::number(priority)+"::::app::::"+apps[i]->filePath; - } - } - found.sort(Qt::CaseInsensitive); //sort by priority/type (lower numbers are higher on list) - //qDebug() << "Sorted Items:" << found; - //Now add the items to the menu in order - for(int i=0; i<found.length(); i++){ - if( !QFile::exists(found[i].section("::::",2,-1)) ){ continue; } //invalid favorite - skip it - if(topsearch.isEmpty()){ topsearch = found[i].section("::::",2,-1); } - ItemWidget *it = 0; - if( found[i].section("::::",2,-1).endsWith(".desktop")){ - XDGDesktop item(found[i].section("::::",2,-1)); - if(item.isValid()){ it = new ItemWidget(ui->scroll_favs->widget(), &item); } - }else{ - it = new ItemWidget(ui->scroll_favs->widget(), found[i].section("::::",2,-1), found[i].section("::::",1,1) ); - } - if(it==0){ continue; } - if(!it->gooditem){ it->deleteLater(); continue; } //invalid for some reason - ui->scroll_search->widget()->layout()->addWidget(it); - connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); - if(i%3==0){ - QApplication::processEvents(); - if(searchTimer->isActive()){ return; } //search changed - go ahead and stop here - } - } - ui->stackedWidget->setCurrentWidget(ui->page_search); -} - -bool StartMenu::promptAboutUpdates(bool &skip){ - QString pending = LOS::systemPendingUpdates(); - if(pending.isEmpty()){ skip = false; } //continue without skip - else{ - QMessageBox dlg(QMessageBox::Question, tr("Apply Updates?"), tr("You have system updates waiting to be applied! Do you wish to install them now?"), QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel, this); - dlg.setDetailedText(pending); - dlg.setDefaultButton(QMessageBox::Yes); - dlg.show(); - int ret = dlg.exec(); - if(ret == QMessageBox::Cancel){ return false; } //do not continue - else{ skip = (ret==QMessageBox::No); } - } - return true; -} - -// ======================== -// PRIVATE SLOTS -// ======================== -void StartMenu::LaunchItem(QString path, bool fix){ - if(path.startsWith("chcat::::")){ - ChangeCategory(path.section("::::",1,50)); - return; - } - qDebug() << "Launching Item:" << path << fix; - if(!path.isEmpty()){ - qDebug() << "Launch Application:" << path; - if( fix && !path.startsWith("lumina-open") ){ LSession::LaunchApplication("lumina-open \""+path+"\""); } - else{ LSession::LaunchApplication(path); } - emit CloseMenu(); //so the menu container will close - } -} - -void StartMenu::ChangeCategory(QString cat){ - //This only happens on user interaction - make sure to run the update routine in a separate thread - CCat = cat; - UpdateApps(); - //QtConcurrent::run(this, &StartMenu::UpdateApps); -} - -//Listing Update routines -void StartMenu::UpdateApps(){ - ClearScrollArea(ui->scroll_apps); - //Now assemble the apps list - //qDebug() << "Update Apps:";// << CCat << ui->check_apps_showcats->checkState(); - if(ui->check_apps_showcats->checkState() == Qt::PartiallyChecked){ - //qDebug() << " - Partially Checked"; - //Show a single page of apps, but still divided up by categories - CCat.clear(); - QStringList cats = LSession::handle()->applicationMenu()->currentAppHash()->keys(); - cats.sort(); - cats.removeAll("All"); - for(int c=0; c<cats.length(); c++){ - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value(cats[c]); - if(apps.isEmpty()){ continue; } - //Add the category label to the scroll - QLabel *catlabel = new QLabel("<b>"+cats[c]+"</b>",ui->scroll_apps->widget()); - catlabel->setAlignment(Qt::AlignCenter); - ui->scroll_apps->widget()->layout()->addWidget(catlabel); - //Now add all the apps for this category - for(int i=0; i<apps.length(); i++){ - ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), apps[i] ); - if(!it->gooditem){ qDebug() << "Invalid Item:"; it->deleteLater(); continue; } //invalid for some reason - ui->scroll_apps->widget()->layout()->addWidget(it); - connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); - } - } - - }else if(ui->check_apps_showcats->checkState() == Qt::Checked){ - //qDebug() << " - Checked"; - //Only show categories to start with - and have the user click-into a cat to see apps - if(CCat.isEmpty()){ - //No cat selected yet - show cats only - QStringList cats = LSession::handle()->applicationMenu()->currentAppHash()->keys(); - cats.sort(); - cats.removeAll("All"); //This is not a "real" category - for(int c=0; c<cats.length(); c++){ - ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), cats[c], "chcat::::"+cats[c] ); - if(!it->gooditem){ qDebug() << "Invalid Item:";it->deleteLater(); continue; } //invalid for some reason - ui->scroll_apps->widget()->layout()->addWidget(it); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - } - }else{ - //qDebug() << "Show Apps For category:" << CCat; - //Show the "go back" button - ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), CCat, "chcat::::"+CCat, true); - //if(!it->gooditem){ continue; } //invalid for some reason - ui->scroll_apps->widget()->layout()->addWidget(it); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - //Show apps for this cat - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value(CCat); - for(int i=0; i<apps.length(); i++){ - //qDebug() << " - App:" << apps[i].name; - ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), apps[i] ); - if(!it->gooditem){ qDebug() << "Invalid Item:"; it->deleteLater(); continue; } //invalid for some reason - ui->scroll_apps->widget()->layout()->addWidget(it); - connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); - } - } - - }else{ - //qDebug() << " - Not Checked"; - //No categories at all - just alphabetize all the apps - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); - CCat.clear(); - //Now add all the apps for this category - for(int i=0; i<apps.length(); i++){ - ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), apps[i] ); - if(!it->gooditem){ it->deleteLater(); continue; } //invalid for some reason - ui->scroll_apps->widget()->layout()->addWidget(it); - connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); - } - } - - -} - -void StartMenu::UpdateFavs(){ - //SYNTAX NOTE: (per-line) "<name>::::[dir/app/<mimetype>]::::<path>" - QStringList newfavs = LDesktopUtils::listFavorites(); - if(favs == newfavs){ return; } //nothing to do - same as before - favs = newfavs; - ClearScrollArea(ui->scroll_favs); - favs.sort(); - //Iterate over types of favorites - QStringList rest = favs; - QStringList tmp; - for(int type = 0; type<3; type++){ - if(type==0){ tmp = favs.filter("::::app::::"); } //apps first - else if(type==1){ tmp = favs.filter("::::dir::::"); } //dirs next - else{ tmp = rest; } //everything left over - if(type==1){ - SortScrollArea(ui->scroll_favs); - //Need to run a special routine for sorting the apps (already in the widget) - //qDebug() << "Sort App Widgets..."; - // Since each app actually might have a different name listed within the file - /*QLayout *lay = ui->scroll_favs->widget()->layout(); - QStringList items; - for(int i=0; i<lay->count(); i++){ - items << lay->itemAt(i)->widget()->whatsThis().toLower(); - } - - items.sort(); - // qDebug() << " - Sorted Items:" << items; - for(int i=0; i<items.length(); i++){ - if(items[i].isEmpty()){ continue; } - //QLayouts are weird in that they can only add items to the end - need to re-insert almost every item - for(int j=0; j<lay->count(); j++){ - //Find this item - if(lay->itemAt(j)->widget()->whatsThis().toLower()==items[i]){ - //Found it - now move it if necessary - //qDebug() << "Found Item:" << items[i] << i << j; - lay->addItem( lay->takeAt(j) ); - break; - } - } - }*/ - - }//end of special app sorting routine - tmp.sort(); //Sort alphabetically by name (dirs/files) - for(int i=0; i<tmp.length(); i++){ - if(type<2){ rest.removeAll(tmp[i]); } - if( !QFile::exists(tmp[i].section("::::",2,-1)) ){ continue; } //invalid favorite - skip it - ItemWidget *it = 0; - if( tmp[i].section("::::",2,-1).endsWith(".desktop")){ - XDGDesktop item(tmp[i].section("::::",2,-1)); - if(item.isValid()){ it = new ItemWidget(ui->scroll_favs->widget(), &item); } - }else{ - it = new ItemWidget(ui->scroll_favs->widget(), tmp[i].section("::::",2,-1), tmp[i].section("::::",1,1) ); - } - if(it==0){ continue; } - if(!it->gooditem){ it->deleteLater(); continue; } //invalid for some reason - ui->scroll_favs->widget()->layout()->addWidget(it); - connect(it, SIGNAL(NewShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); - } - //QApplication::processEvents(); - } //end loop over types - ui->scroll_favs->update(); - //qDebug() << "End updateFavs"; -} - -// Page update routines -void StartMenu::on_stackedWidget_currentChanged(int val){ - QWidget *page = ui->stackedWidget->widget(val); - ui->tool_back->setVisible(page != ui->page_main); - ui->line_search->setFocus(); - - //Now the page specific updates - if(page == ui->page_main){ - if(!ui->label_status_battery->whatsThis().isEmpty()){ - //Battery available - update the status button - int charge = LOS::batteryCharge(); - QString TT, ICON; - if(charge<=5){ ICON="-caution"; } - else if(charge<=20){ ICON="-040"; } - else if(charge<=70){ ICON="-060"; } - else if(charge<=90){ ICON="-080"; } - else{ ICON="-100"; } - if(LOS::batteryIsCharging()){ - if(charge>=80){ ICON.clear(); } //for charging, there is no suffix to the icon name over 80% - ICON.prepend("battery-charging"); - TT = QString(tr("%1% (Plugged In)")).arg(QString::number(charge)); - }else{ - ICON.prepend("battery"); - int secs = LOS::batterySecondsLeft(); - if(secs>1){ TT = QString(tr("%1% (%2 Estimated)")).arg(QString::number(charge), LUtils::SecondsToDisplay(secs)); } - else{ TT = QString(tr("%1% Remaining")).arg(QString::number(charge)); } - } - //qDebug() << " Battery Icon:" << ICON << val << TT - ui->label_status_battery->setPixmap( LXDG::findIcon(ICON,"").pixmap(ui->tool_goto_apps->iconSize()/2) ); - ui->label_status_battery->setToolTip(TT); - } - //Network Status - ui->label_status_network->clear(); //not implemented yet - }else if(page == ui->page_apps){ - //Nothing needed for this page explicitly - }else if( page == ui->page_settings){ - // -- Workspaces - int tot = LSession::handle()->XCB->NumberOfWorkspaces(); - if(tot>1){ - ui->frame_wkspace->setVisible(true); - int cur = LSession::handle()->XCB->CurrentWorkspace(); - ui->label_wkspace->setText( QString(tr("Workspace %1/%2")).arg(QString::number(cur+1), QString::number(tot)) ); - }else{ - ui->frame_wkspace->setVisible(false); - } - // -- Brightness Controls - int tmp = LOS::ScreenBrightness(); - ui->frame_bright->setVisible(tmp >= 0); - if(tmp >= 0){ ui->slider_bright->setValue(tmp); } - // -- Audio Controls - tmp = LOS::audioVolume(); - ui->frame_audio->setVisible(tmp >= 0); - if(tmp >= 0){ ui->slider_volume->setValue(tmp); } - }else if(page == ui->page_leave){ - if( !ui->frame_leave_system->whatsThis().isEmpty() ){ - //This frame is allowed/visible - need to adjust the shutdown detection - bool updating = LOS::systemPerformingUpdates(); - ui->tool_restart->setEnabled(!updating); - ui->tool_shutdown->setEnabled(!updating); - ui->label_updating->setVisible(updating); //to let the user know *why* they can't shutdown/restart right now - } - ui->frame_leave_suspend->setVisible( LOS::systemCanSuspend() ); - } - -} - -void StartMenu::catViewChanged(){ - QString state; - switch(ui->check_apps_showcats->checkState()){ - case Qt::Checked: - state = "true"; - break; - case Qt::PartiallyChecked: - state = "partial"; - break; - default: - state = "false"; - } - LSession::handle()->DesktopPluginSettings()->setValue("panelPlugs/systemstart/showcategories", state); - //Now kick off the reload of the apps list - UpdateApps(); - //QtConcurrent::run(this, &StartMenu::UpdateApps); //this was a direct user change - keep it thread safe -} -//Page Change Buttons -void StartMenu::on_tool_goto_apps_clicked(){ - ui->stackedWidget->setCurrentWidget(ui->page_apps); -} - -void StartMenu::on_tool_goto_settings_clicked(){ - ui->stackedWidget->setCurrentWidget(ui->page_settings); -} - -void StartMenu::on_tool_goto_logout_clicked(){ - ui->stackedWidget->setCurrentWidget(ui->page_leave); -} - -void StartMenu::on_tool_back_clicked(){ - ui->stackedWidget->setCurrentWidget(ui->page_main); -} - - -//Launch Buttons -void StartMenu::on_tool_launch_controlpanel_clicked(){ - LaunchItem(ui->tool_launch_controlpanel->whatsThis()); -} - -void StartMenu::on_tool_launch_fm_clicked(){ - LaunchItem(QDir::homePath()); -} - -void StartMenu::on_tool_launch_store_clicked(){ - LaunchItem(ui->tool_launch_store->whatsThis()); -} - -void StartMenu::on_tool_launch_desksettings_clicked(){ - LaunchItem("lumina-config", false); -} - -void StartMenu::on_tool_launch_deskinfo_clicked(){ - LaunchItem("lumina-info",false); -} - -//Logout Buttons -void StartMenu::on_tool_lock_clicked(){ - //QProcess::startDetached("xscreensaver-command -lock"); - LaunchItem("xscreensaver-command -lock",false); -} - -void StartMenu::on_tool_logout_clicked(){ - emit CloseMenu(); - LSession::handle()->StartLogout(); -} - -void StartMenu::on_tool_restart_clicked(){ - emit CloseMenu(); - QCoreApplication::processEvents(); - bool skipupdates = false; - if( !promptAboutUpdates(skipupdates) ){ return; } - LSession::handle()->StartReboot(skipupdates); -} - -void StartMenu::on_tool_shutdown_clicked(){ - emit CloseMenu(); - QCoreApplication::processEvents(); - bool skipupdates = false; - if( !promptAboutUpdates(skipupdates) ){ return; } - LSession::handle()->StartShutdown(skipupdates); -} - -void StartMenu::on_tool_suspend_clicked(){ - //Make sure to lock the system first (otherwise anybody can access it again) - emit CloseMenu(); - LUtils::runCmd("xscreensaver-command -lock"); - LOS::systemSuspend(); -} - - -//Audio Volume -void StartMenu::on_slider_volume_valueChanged(int val){ - ui->label_vol->setText(QString::number(val)+"%"); - LOS::setAudioVolume(val); - //Also adjust the icon for the volume - if(val<1){ ui->tool_mute_audio->setIcon(LXDG::findIcon("audio-volume-muted","")); } - else if(val<33){ ui->tool_mute_audio->setIcon(LXDG::findIcon("audio-volume-low","")); } - else if(val<66){ ui->tool_mute_audio->setIcon(LXDG::findIcon("audio-volume-medium","")); } - else{ ui->tool_mute_audio->setIcon(LXDG::findIcon("audio-volume-high","")); } -} - -void StartMenu::on_tool_launch_mixer_clicked(){ - if(LOS::hasMixerUtility()){ - emit CloseMenu(); - LOS::startMixerUtility(); - } -} - -void StartMenu::on_tool_mute_audio_clicked(){ - static int lastvol = 50; - if(ui->slider_volume->value()==0){ ui->slider_volume->setValue(lastvol); } - else{ - lastvol = ui->slider_volume->value(); - ui->slider_volume->setValue(0); - } -} - -//Screen Brightness -void StartMenu::on_slider_bright_valueChanged(int val){ - ui->label_bright->setText(QString::number(val)+"%"); - LOS::setScreenBrightness(val); -} - - -//Workspace -void StartMenu::on_tool_set_nextwkspace_clicked(){ - int cur = LSession::handle()->XCB->CurrentWorkspace(); - int tot = LSession::handle()->XCB->NumberOfWorkspaces(); - //qDebug()<< "Next Workspace:" << cur << tot; - cur++; - if(cur>=tot){ cur = 0; } //back to beginning - //qDebug() << " - New Current:" << cur; - LSession::handle()->XCB->SetCurrentWorkspace(cur); - ui->label_wkspace->setText( QString(tr("Workspace %1/%2")).arg(QString::number(cur+1), QString::number(tot)) ); -} - -void StartMenu::on_tool_set_prevwkspace_clicked(){ - int cur = LSession::handle()->XCB->CurrentWorkspace(); - int tot = LSession::handle()->XCB->NumberOfWorkspaces(); - //qDebug()<< "Next Workspace:" << cur << tot; - cur--; - if(cur<0){ cur = tot-1; } //back to end - //qDebug() << " - New Current:" << cur; - LSession::handle()->XCB->SetCurrentWorkspace(cur); - ui->label_wkspace->setText( QString(tr("Workspace %1/%2")).arg(QString::number(cur+1), QString::number(tot)) ); -} - - -//Locale -void StartMenu::on_combo_locale_currentIndexChanged(int){ - //Get the currently selected Locale - if(ui->stackedWidget->currentWidget()!=ui->page_settings){ return; } - QString locale = ui->combo_locale->currentData().toString(); - emit CloseMenu(); - LSession::processEvents(); - LSession::handle()->switchLocale(locale); -} - - -//Search -void StartMenu::on_line_search_textEdited(QString){ - if(searchTimer->isActive()){ searchTimer->stop(); } - searchTimer->start(); -} - -void StartMenu::startSearch(){ - if(!this->isVisible()){ return; } //menu closed while timer was active - do_search(ui->line_search->text(),false); //auto-launched -} - -void StartMenu::on_line_search_returnPressed(){ - if(topsearch.isEmpty()){ return; } - LaunchItem(topsearch); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.h deleted file mode 100644 index 8ab04d94..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.h +++ /dev/null @@ -1,105 +0,0 @@ -//=========================================== -// 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_SYSTEM_START_PANEL_PLUGIN_H -#define _LUMINA_DESKTOP_SYSTEM_START_PANEL_PLUGIN_H - -#include <QWidget> -#include <QScrollArea> -#include <QMouseEvent> - -#include <LuminaXDG.h> - -namespace Ui{ - class StartMenu; -}; - -class StartMenu : public QWidget{ - Q_OBJECT -public: - StartMenu(QWidget *parent = 0); - ~StartMenu(); - -public slots: - void UpdateAll(); //for re-translation/icon changes - void UpdateMenu(bool forceall = false); //for item changes - - void ReLoadQuickLaunch(); - void UpdateQuickLaunch(QString, bool); - -private: - Ui::StartMenu *ui; - QStringList favs; - QString CCat, CSearch, topsearch; //current category/search - QTimer *searchTimer; - - //Simple utility functions - //void deleteChildren(QWidget *obj); //recursive function - void ClearScrollArea(QScrollArea *area); - void SortScrollArea(QScrollArea *area); - void do_search(QString search, bool force); - - bool promptAboutUpdates(bool &skip); - -private slots: - void LaunchItem(QString path, bool fix = true); - - //Application/Favorite Listings - void ChangeCategory(QString cat); - void UpdateApps(); - void UpdateFavs(); - - // Page update routines - void on_stackedWidget_currentChanged(int); //page changed - void catViewChanged(); //application categorization view mode changed - - //Page Change Buttons - void on_tool_goto_apps_clicked(); - void on_tool_goto_settings_clicked(); - void on_tool_goto_logout_clicked(); - void on_tool_back_clicked(); - - //Launch Buttons - void on_tool_launch_controlpanel_clicked(); - void on_tool_launch_fm_clicked(); - void on_tool_launch_store_clicked(); - void on_tool_launch_desksettings_clicked(); - void on_tool_launch_deskinfo_clicked(); - - //Logout Buttons - void on_tool_lock_clicked(); - void on_tool_logout_clicked(); - void on_tool_restart_clicked(); - void on_tool_shutdown_clicked(); - void on_tool_suspend_clicked(); - - //Audio Volume - void on_slider_volume_valueChanged(int); - void on_tool_launch_mixer_clicked(); - void on_tool_mute_audio_clicked(); - - //Screen Brightness - void on_slider_bright_valueChanged(int); - - //Workspace - void on_tool_set_nextwkspace_clicked(); - void on_tool_set_prevwkspace_clicked(); - - //Locale - void on_combo_locale_currentIndexChanged(int); - - //Search - void on_line_search_textEdited(QString); - void startSearch(); - void on_line_search_returnPressed(); - -signals: - void CloseMenu(); - void UpdateQuickLaunch(QStringList); - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.ui b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.ui deleted file mode 100644 index 74f61d7f..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemstart/StartMenu.ui +++ /dev/null @@ -1,1148 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>StartMenu</class> - <widget class="QWidget" name="StartMenu"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>181</width> - <height>405</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <property name="styleSheet"> - <string notr="true">QScrollArea{background: transparent; border: none; }</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>1</number> - </property> - <property name="topMargin"> - <number>1</number> - </property> - <property name="rightMargin"> - <number>1</number> - </property> - <property name="bottomMargin"> - <number>1</number> - </property> - <item> - <widget class="QLineEdit" name="line_search"> - <property name="placeholderText"> - <string>Type to search</string> - </property> - </widget> - </item> - <item> - <widget class="QStackedWidget" name="stackedWidget"> - <property name="currentIndex"> - <number>4</number> - </property> - <widget class="QWidget" name="page_main"> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="label_status_battery"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string notr="true">bat%</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_status_network"> - <property name="text"> - <string notr="true">netstat</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_status"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string notr="true"/> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_14"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QScrollArea" name="scroll_favs"> - <property name="contextMenuPolicy"> - <enum>Qt::CustomContextMenu</enum> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Plain</enum> - </property> - <property name="verticalScrollBarPolicy"> - <enum>Qt::ScrollBarAsNeeded</enum> - </property> - <property name="horizontalScrollBarPolicy"> - <enum>Qt::ScrollBarAlwaysOff</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QAbstractScrollArea::AdjustToContents</enum> - </property> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>179</width> - <height>177</height> - </rect> - </property> - </widget> - </widget> - </item> - <item> - <widget class="Line" name="line_3"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_launch_fm"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Browse Files</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_goto_apps"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Browse Applications</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_launch_controlpanel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Control Panel</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_goto_settings"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Preferences</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </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="Line" name="line_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <item> - <widget class="QToolButton" name="tool_goto_logout"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="styleSheet"> - <string notr="true">QToolButton::menu-arrow{ image: rightarrow-icon; }</string> - </property> - <property name="text"> - <string>Leave</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="popupMode"> - <enum>QToolButton::DelayedPopup</enum> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - <property name="arrowType"> - <enum>Qt::NoArrow</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_lock"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string notr="true">lock</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_apps"> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QToolButton" name="tool_launch_store"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Manage Applications</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_15"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="check_apps_showcats"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Show Categories</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="tristate"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QScrollArea" name="scroll_apps"> - <property name="horizontalScrollBarPolicy"> - <enum>Qt::ScrollBarAlwaysOff</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QAbstractScrollArea::AdjustToContents</enum> - </property> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents_2"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>179</width> - <height>284</height> - </rect> - </property> - </widget> - </widget> - </item> - <item> - <widget class="Line" name="line_5"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_settings"> - <layout class="QVBoxLayout" name="verticalLayout_9"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_7"> - <item> - <widget class="QToolButton" name="tool_launch_desksettings"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Configure Desktop</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_launch_deskinfo"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string notr="true">info</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_8"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QFrame" name="frame_audio"> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QVBoxLayout" name="verticalLayout_8"> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_5"> - <item> - <widget class="QToolButton" name="tool_mute_audio"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string notr="true"/> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <layout class="QVBoxLayout" name="verticalLayout_11"> - <item> - <widget class="QSlider" name="slider_volume"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="maximum"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_vol"> - <property name="text"> - <string notr="true">vol%</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QToolButton" name="tool_launch_mixer"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string notr="true"/> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="autoRaise"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_7"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QFrame" name="frame_bright"> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QVBoxLayout" name="verticalLayout_7"> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QLabel" name="label_bright_icon"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="text"> - <string notr="true"/> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QSlider" name="slider_bright"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="minimum"> - <number>10</number> - </property> - <property name="maximum"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_bright"> - <property name="text"> - <string notr="true">br%</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_9"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QFrame" name="frame_wkspace"> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QToolButton" name="tool_set_prevwkspace"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string notr="true">prev</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_wkspace"> - <property name="text"> - <string notr="true">workspace #</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_set_nextwkspace"> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string notr="true">next</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_10"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QFrame" name="frame_locale"> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QLabel" name="label_locale_icon"> - <property name="text"> - <string notr="true">Locale:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="combo_locale"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>161</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="Line" name="line_6"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_leave"> - <layout class="QVBoxLayout" name="verticalLayout_6"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <spacer name="verticalSpacer_2"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>185</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QFrame" name="frame_leave_suspend"> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QVBoxLayout" name="verticalLayout_10"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QToolButton" name="tool_suspend"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Suspend System</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_11"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QFrame" name="frame_leave_system"> - <property name="styleSheet"> - <string notr="true">QFrame#frame_leave_system{border: none; background: transparent; }</string> - </property> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Raised</enum> - </property> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QToolButton" name="tool_restart"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Restart System</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_shutdown"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Power Off System</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_updating"> - <property name="text"> - <string>(System Performing Updates)</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="Line" name="line_13"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_logout"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Sign Out User</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line_12"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="page_search"> - <layout class="QVBoxLayout" name="verticalLayout_12"> - <item> - <widget class="QScrollArea" name="scroll_search"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents_3"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>161</width> - <height>332</height> - </rect> - </property> - </widget> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_back"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Back</string> - </property> - <property name="iconSize"> - <size> - <width>32</width> - <height>32</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - <property name="arrowType"> - <enum>Qt::NoArrow</enum> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/LSysTray.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/LSysTray.cpp deleted file mode 100644 index a71fd57e..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/LSysTray.cpp +++ /dev/null @@ -1,167 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LSysTray.h" -#include "../../LSession.h" - -LSysTray::LSysTray(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - frame = new QFrame(this); - frame->setContentsMargins(0,0,0,0); - //frame->setStyleSheet("QFrame{ background: transparent; border: 1px solid transparent; border-radius: 3px; }"); - LI = new QBoxLayout( this->layout()->direction()); - frame->setLayout(LI); - LI->setAlignment(Qt::AlignCenter); - LI->setSpacing(0); - LI->setContentsMargins(0,0,0,0); - this->layout()->addWidget(frame); - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - //TrayID=0; - upTimer = new QTimer(this); - upTimer->setInterval(300000); //maximum time between refreshes is 5 minutes - connect(upTimer, SIGNAL(timeout()), this, SLOT(checkAll()) ); - isRunning = false; stopping = false; checking = false; pending = false; - QTimer::singleShot(100, this, SLOT(start()) ); - //Also do one extra check a minute or so after startup (just in case something got missed in the initial flood of registrations) - QTimer::singleShot(90000,this, SLOT(checkAll()) ); - connect(LSession::handle(), SIGNAL(TrayListChanged()), this, SLOT(checkAll()) ); - connect(LSession::handle(), SIGNAL(TrayIconChanged(WId)), this, SLOT(UpdateTrayWindow(WId)) ); - connect(LSession::handle(), SIGNAL(VisualTrayAvailable()), this, SLOT(start()) ); -} - -LSysTray::~LSysTray(){ - if(isRunning){ - this->stop(); - } -} - -void LSysTray::start(){ - if(isRunning || stopping){ return; } //already running - isRunning = LSession::handle()->registerVisualTray(this->winId()); - qDebug() << "Visual Tray Started:" << this->type() << isRunning; - if(isRunning){ - //upTimer->start(); - QTimer::singleShot(0,this, SLOT(checkAll()) ); - } -} - -void LSysTray::stop(){ - if(!isRunning){ return; } - stopping = true; - upTimer->stop(); - //Now close down the system tray registry - qDebug() << "Stop visual system tray:" << this->type(); - //LX11::closeSystemTray(TrayID); - //TrayID = 0; - disconnect(this); //remove any signals/slots - isRunning = false; - //Release all the tray applications and delete the containers - if( !LSession::handle()->currentTrayApps(this->winId()).isEmpty() ){ - qDebug() << " - Remove tray applications"; - //This overall system tray is not closed down - go ahead and release them here - for(int i=(trayIcons.length()-1); i>=0; i--){ - trayIcons[i]->detachApp(); - TrayIcon *cont = trayIcons.takeAt(i); - LI->removeWidget(cont); - cont->deleteLater(); - } - } - //Now let some other visual tray take over - LSession::handle()->unregisterVisualTray(this->winId()); - qDebug() << "Done stopping visual tray"; -} - -// ======================== -// PRIVATE FUNCTIONS -// ======================== -void LSysTray::checkAll(){ - if(!isRunning || stopping || checking){ pending = true; return; } //Don't check if not running at the moment - checking = true; - pending = false; - //Make sure this tray should handle the windows (was not disabled in the backend) - bool TrayRunning = LSession::handle()->registerVisualTray(this->winId()); - //qDebug() << "System Tray: Check tray apps"; - QList<WId> wins = LSession::handle()->currentTrayApps(this->winId()); - for(int i=0; i<trayIcons.length(); i++){ - int index = wins.indexOf(trayIcons[i]->appID()); - if(index < 0){ - //Tray Icon no longer exists: remove it - qDebug() << " - Visual System Tray: Remove Icon:" << trayIcons[i]->appID(); - TrayIcon *cont = trayIcons.takeAt(i); - cont->cleanup(); - LI->removeWidget(cont); - cont->deleteLater(); - i--; //List size changed - //Re-adjust the maximum widget size to account for what is left - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setMaximumSize( trayIcons.length()*this->height(), 10000); - }else{ - this->setMaximumSize(10000, trayIcons.length()*this->width()); - } - }else{ - //Tray Icon already exists - //qDebug() << " - SysTray: Update Icon"; - trayIcons[i]->update(); - wins.removeAt(index); //Already found - remove from the list - } - } - //Now go through any remaining windows and add them - for(int i=0; i<wins.length() && TrayRunning; i++){ - qDebug() << " - Visual System Tray: Add Icon:" << wins[i]; - TrayIcon *cont = new TrayIcon(this); - connect(cont, SIGNAL(BadIcon()), this, SLOT(checkAll()) ); - //LSession::processEvents(); - trayIcons << cont; - LI->addWidget(cont); - //qDebug() << " - Update tray layout"; - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - int sz = this->height()-2-2*frame->frameWidth(); - if(sz>64){ sz = 64; } - cont->setSizeSquare(sz); //horizontal tray - this->setMaximumSize( trayIcons.length()*this->height(), 10000); - }else{ - int sz = this->width()-2-2*frame->frameWidth(); - if(sz>64){ sz = 64; } - cont->setSizeSquare(sz); //vertical tray - this->setMaximumSize(10000, trayIcons.length()*this->width()); - } - //LSession::processEvents(); - //qDebug() << " - Attach tray app"; - cont->attachApp(wins[i]); - if(cont->appID()==0){ - //could not attach window - remove the widget - qDebug() << " - Invalid Tray App: Could Not Embed:"; - trayIcons.takeAt(trayIcons.length()-1); //Always at the end - LI->removeWidget(cont); - cont->deleteLater(); - continue; - } - LI->update(); //make sure there is no blank space in the layout - } - /*if(listChanged){ - //Icons got moved around: be sure to re-draw all of them to fix visuals - for(int i=0; i<trayIcons.length(); i++){ - trayIcons[i]->update(); - } - }*/ - //qDebug() << " - System Tray: check done"; - checking = false; - if(pending){ QTimer::singleShot(0,this, SLOT(checkAll()) ); } -} - -void LSysTray::UpdateTrayWindow(WId win){ - if(!isRunning || stopping || checking){ return; } - for(int i=0; i<trayIcons.length(); i++){ - if(trayIcons[i]->appID()==win){ - //qDebug() << "System Tray: Update Window " << win; - trayIcons[i]->repaint(); //don't use update() because we need an instant repaint (not a cached version) - return; //finished now - } - } - //Could not find tray in the list, run the checkall routine to make sure we are not missing any - //qDebug() << "System Tray: Missing Window - check all"; - QTimer::singleShot(0,this, SLOT(checkAll()) ); -} - diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/LSysTray.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/LSysTray.h deleted file mode 100644 index 7db307c6..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/LSysTray.h +++ /dev/null @@ -1,74 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2012-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_SYSTRAY_H -#define _LUMINA_DESKTOP_SYSTRAY_H - -//Qt includes -#include <QFrame> -#include <QHBoxLayout> -#include <QDebug> -#include <QX11Info> -#include <QCoreApplication> - -//Local includes -#include "../LPPlugin.h" -#include "TrayIcon.h" - -//SYSTEM TRAY STANDARD DEFINITIONS -#define SYSTEM_TRAY_REQUEST_DOCK 0 -#define SYSTEM_TRAY_BEGIN_MESSAGE 1 -#define SYSTEM_TRAY_CANCEL_MESSAGE 2 - -class LSysTray : public LPPlugin{ - Q_OBJECT -public: - LSysTray(QWidget *parent = 0, QString id="systemtray", bool horizontal=true); - ~LSysTray(); - - virtual void AboutToClose(){ - this->stop(); - } - -private: - bool isRunning, stopping, checking, pending; - QList<TrayIcon*> trayIcons; - QFrame *frame; - QBoxLayout *LI; //layout items - QTimer *upTimer; //manual timer to force refresh of all items - -private slots: - void checkAll(); - void UpdateTrayWindow(WId win); - - //void removeTrayIcon(WId win); - -public slots: - void start(); - void stop(); - - virtual void OrientationChange(){ - //make sure the internal layout has the same orientation as the main widget - LI->setDirection( this->layout()->direction() ); - //Re-adjust the maximum widget size - int sz; - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setMaximumSize( trayIcons.length()*this->height(), 10000); - sz = this->height()-2*frame->frameWidth(); - }else{ - this->setMaximumSize(10000, trayIcons.length()*this->width()); - sz = this->width()-2*frame->frameWidth(); - } - if(sz>64){ sz = 64; } //many tray icons can't go larger than this anyway - for(int i=0; i<trayIcons.length(); i++){ - trayIcons[i]->setSizeSquare(sz); - trayIcons[i]->repaint(); - } - } - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/TrayIcon.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/TrayIcon.cpp deleted file mode 100644 index 9fdbce50..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/TrayIcon.cpp +++ /dev/null @@ -1,128 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "TrayIcon.h" - -#include <LSession.h> -#include <QScreen> -#include <LuminaX11.h> - -TrayIcon::TrayIcon(QWidget *parent) : QWidget(parent){ - AID = 0; //nothing yet - IID = 0; - dmgID = 0; - badpaints = 0; - //this->setLayout(new QHBoxLayout); - //this->layout()->setContentsMargins(0,0,0,0); -} - -TrayIcon::~TrayIcon(){ -} - -void TrayIcon::cleanup(){ - AID = IID = 0; -} - -WId TrayIcon::appID(){ - return AID; -} - -void TrayIcon::attachApp(WId id){ - if(id==0){ return; } //nothing to attach - else if(AID!=0){ qWarning() << "Tray Icon is already attached to a window!"; return; } - AID = id; - //WIN = QWindow::fromWinId(AID); - //connect(WIN, SIGNAL( - //this->layout()->addWidget( QWidget::createWindowContainer(WIN, this) ); - IID = this->winId(); //embed directly into this widget - dmgID = LSession::handle()->XCB->EmbedWindow(AID, IID); - if( dmgID != 0 ){ - LSession::handle()->XCB->RestoreWindow(AID); //make it visible - //qDebug() << "New System Tray App:" << AID; - QTimer::singleShot(1000, this, SLOT(updateIcon()) ); - }else{ - //qWarning() << "Could not Embed Tray Application:" << AID; - IID = 0; - AID = 0; - } -} - -void TrayIcon::setSizeSquare(int side){ - //qDebug() << " Set Fixed Systray size:" << side; - this->setFixedSize( QSize(side, side) ); -} - -// ============== -// PUBLIC SLOTS -// ============== -void TrayIcon::detachApp(){ - if(AID==0){ return; } //already detached - //qDebug() << "Detach App:" << AID; - //Temporarily move the AID, so that internal slots do not auto-run - WId tmp = AID; - AID = 0; - //Now detach the application window and clean up - //qDebug() << " - Unembed"; - //WIN->setParent(0); //Reset parentage back to the main stack - LSession::handle()->XCB->UnembedWindow(tmp); - //qDebug() << " - finished app:" << tmp; - IID = 0; -} - -// ============== -// PRIVATE SLOTS -// ============== -void TrayIcon::updateIcon(){ - if(AID==0){ return; } - //Make sure the icon is square - QSize icosize = this->size(); - LSession::handle()->XCB->ResizeWindow(AID, icosize.width(), icosize.height()); - QTimer::singleShot(500, this, SLOT(update()) ); //make sure to re-draw the window in a moment -} - -// ============= -// PROTECTED -// ============= -void TrayIcon::paintEvent(QPaintEvent *event){ - QWidget::paintEvent(event); //make sure the background is already painted - if(AID!=0){ - //Update the background on the tray app - //qDebug() << "Paint Tray Background"; - //LSession::handle()->XCB->SetWindowBackground(this, this->geometry(), AID); - //qDebug() << "Paint Tray:" << AID; - QPainter painter(this); - //Now paint the tray app on top of the background - //qDebug() << " - Draw tray:" << AID << IID << this->winId(); - //qDebug() << " - - " << event->rect().x() << event->rect().y() << event->rect().width() << event->rect().height(); - //qDebug() << " - Get image:" << AID; - QPixmap pix = LSession::handle()->XCB->TrayImage(AID); //= WIN->icon().pixmap(this->size()); - - //qDebug() << " - Pix size:" << pix.size().width() << pix.size().height(); - //qDebug() << " - Geom:" << this->geometry().x() << this->geometry().y() << this->geometry().width() << this->geometry().height(); - if(!pix.isNull()){ - if(this->size() != pix.size()){ QTimer::singleShot(10, this, SLOT(updateIcon())); } - painter.drawPixmap(0,0,this->width(), this->height(), pix.scaled(this->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation) ); - badpaints = 0; //good paint - }else{ - badpaints++; - if(badpaints>5){ - qWarning() << " - - No Tray Icon/Image found!" << "ID:" << AID; - AID = 0; //reset back to nothing - IID = 0; - emit BadIcon(); //removed/destroyed in some non-valid way? - } - } - //qDebug() << " - Done"; - } -} - -void TrayIcon::resizeEvent(QResizeEvent *event){ - //qDebug() << "Resize Event:" << event->size().width() << event->size().height(); - if(AID!=0){ - LSession::handle()->XCB->ResizeWindow(AID, event->size()); - QTimer::singleShot(500, this, SLOT(update()) ); //make sure to re-draw the window in a moment - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/TrayIcon.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/TrayIcon.h deleted file mode 100644 index 5d072cc1..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/systemtray/TrayIcon.h +++ /dev/null @@ -1,55 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// Note: The basic idea behind this class that that it puts the app window -// in the same spot as the tray icon (to directly pass mouse events and such), -// while keeping the tray icon visual in sync with the app window -//=========================================== -#ifndef _LUMINA_PANEL_PLUGIN_SYSTEM_TRAY_ICON_H -#define _LUMINA_PANEL_PLUGIN_SYSTEM_TRAY_ICON_H - -//Qt includes -#include <QWidget> -#include <QTimer> -#include <QPaintEvent> -#include <QMoveEvent> -#include <QResizeEvent> -#include <QPainter> -#include <QPixmap> -#include <QImage> -//#include <QWindow> -// libLumina includes -//#include <LuminaX11.h> - -class TrayIcon : public QWidget{ - Q_OBJECT -public: - TrayIcon(QWidget* parent = 0); - ~TrayIcon(); - - void cleanup(); //about to be removed after window was detroyed - - WId appID(); //the ID for the attached application - void attachApp(WId id); - void setSizeSquare(int side); - -public slots: - void detachApp(); - void updateIcon(); - -private: - WId IID, AID; //icon ID and app ID - int badpaints; - uint dmgID; - -protected: - void paintEvent(QPaintEvent *event); - void resizeEvent(QResizeEvent *event); - -signals: - void BadIcon(); -}; -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskButton.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskButton.cpp deleted file mode 100644 index 0dd68bb0..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskButton.cpp +++ /dev/null @@ -1,271 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LTaskButton.h" -#include "LSession.h" - -#ifndef DEBUG -#define DEBUG 0 -#endif - -LTaskButton::LTaskButton(QWidget *parent, bool smallDisplay) : LTBWidget(parent){ - actMenu = new QMenu(this); - winMenu = new QMenu(this); - UpdateMenus(); - showText = !smallDisplay; - this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - this->setAutoRaise(false); //make sure these always look like buttons - this->setContextMenuPolicy(Qt::CustomContextMenu); - this->setFocusPolicy(Qt::NoFocus); - this->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); - winMenu->setContextMenuPolicy(Qt::CustomContextMenu); - connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(openActionMenu()) ); - connect(this, SIGNAL(clicked()), this, SLOT(buttonClicked()) ); - connect(winMenu, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(openActionMenu()) ); - connect(winMenu, SIGNAL(triggered(QAction*)), this, SLOT(winClicked(QAction*)) ); - connect(winMenu, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - connect(actMenu, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); -} - -LTaskButton::~LTaskButton(){ - -} - -//=========== -// PUBLIC -//=========== -QList<WId> LTaskButton::windows(){ - QList<WId> list; - for(int i=0; i<WINLIST.length(); i++){ - list << WINLIST[i].windowID(); - } - return list; -} - -QString LTaskButton::classname(){ - return cname; -} - -bool LTaskButton::isActive(){ - return cstate == LXCB::ACTIVE; -} - -void LTaskButton::addWindow(WId win){ - WINLIST << LWinInfo(win); - UpdateButton(); -} - -void LTaskButton::rmWindow(WId win){ - for(int i=0; i<WINLIST.length(); i++){ - if(WINLIST[i].windowID() == win){ - WINLIST.removeAt(i); - break; - } - } - UpdateButton(); -} - -//========== -// PRIVATE -//========== -LWinInfo LTaskButton::currentWindow(){ - if(WINLIST.length() == 1 || cWin.windowID()==0){ - return WINLIST[0]; //only 1 window - this must be it - }else{ - return cWin; - } -} - -//============= -// PUBLIC SLOTS -//============= -void LTaskButton::UpdateButton(){ - if(winMenu->isVisible()){ return; } //skip this if the window menu is currently visible for now - bool statusOnly = (WINLIST.length() == LWINLIST.length()); - LWINLIST = WINLIST; - - winMenu->clear(); - LXCB::WINDOWVISIBILITY showstate = LXCB::IGNORE; - for(int i=0; i<WINLIST.length(); i++){ - if(WINLIST[i].windowID() == 0){ - WINLIST.removeAt(i); - i--; - continue; - } - if(i==0 && !statusOnly){ - //Update the button visuals from the first window - this->setIcon(WINLIST[i].icon(noicon)); - cname = WINLIST[i].Class(); - if(cname.isEmpty()){ - //Special case (chrome/chromium does not register *any* information with X except window title) - cname = WINLIST[i].text(); - if(cname.contains(" - ")){ cname = cname.section(" - ",-1); } - } - this->setToolTip(cname); - } - bool junk; - QAction *tmp = winMenu->addAction( WINLIST[i].icon(junk), WINLIST[i].text() ); - tmp->setData(i); //save which number in the WINLIST this entry is for - LXCB::WINDOWVISIBILITY stat = WINLIST[i].status(true); //update the saved state for the window - if(stat<LXCB::ACTIVE && WINLIST[i].windowID() == LSession::handle()->activeWindow()){ stat = LXCB::ACTIVE; } - if(stat > showstate){ showstate = stat; } //higher priority - } - //Now setup the button appropriately - // - visibility - if(showstate == LXCB::IGNORE || WINLIST.length() < 1){ this->setVisible(false); } - else{ this->setVisible(true); } - // - functionality - if(WINLIST.length() == 1){ - //single window - this->setPopupMode(QToolButton::DelayedPopup); - this->setMenu(actMenu); - if(showText){ - QString txt = WINLIST[0].text(); - if(txt.length()>30){ txt.truncate(27); txt.append("..."); } - else if(txt.length()<30){ txt = txt.leftJustified(30, ' '); } - this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); this->setText(txt); - }else if(noicon){ this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); this->setText( cname ); } - else{ this->setToolButtonStyle(Qt::ToolButtonIconOnly); this->setText(""); } - this->setToolTip(WINLIST[0].text()); - }else if(WINLIST.length() > 1){ - //multiple windows - this->setPopupMode(QToolButton::InstantPopup); - this->setMenu(winMenu); - this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - if(noicon || showText){ "("+QString::number(WINLIST.length())+") "+cname; } - else{ this->setText("("+QString::number(WINLIST.length())+")"); } - } - this->setState(showstate); //Make sure this is after the button setup so that it properly sets the margins/etc - cstate = showstate; //save this for later -} - -void LTaskButton::UpdateMenus(){ - //Action menu should be auto-created for the state of the current window (cWin/cstate) - actMenu->clear(); - if(cstate!=LXCB::ACTIVE){ - actMenu->addAction( LXDG::findIcon("edit-select",""), tr("Activate Window"), this, SLOT(triggerWindow()) ); - } - if(cstate!=LXCB::INVISIBLE){ - actMenu->addAction( LXDG::findIcon("view-close",""), tr("Minimize Window"), this, SLOT(minimizeWindow()) ); - if(LSession::handle()->XCB->WindowIsMaximized(cWin.windowID()) ){ - actMenu->addAction( LXDG::findIcon("view-restore",""), tr("Restore Window"), this, SLOT(maximizeWindow()) ); - }else{ - actMenu->addAction( LXDG::findIcon("view-fullscreen",""), tr("Maximize Window"), this, SLOT(maximizeWindow()) ); - } - } - actMenu->addAction( LXDG::findIcon("window-close",""), tr("Close Window"), this, SLOT(closeWindow()) ); - if(WINLIST.length()>1 && !winMenu->isVisible()){ - actMenu->addSeparator(); - actMenu->addAction( LXDG::findIcon("layer-visible-on",""), tr("Show All Windows"), this, SLOT(showAllWindows()) ); - actMenu->addAction( LXDG::findIcon("layer-visible-off",""), tr("Minimize All Windows"), this, SLOT(hideAllWindows()) ); - actMenu->addAction( LXDG::findIcon("window-close",""), tr("Close All Windows"), this, SLOT(closeAllWindows()) ); - } -} - -//============= -// PRIVATE SLOTS -//============= -void LTaskButton::buttonClicked(){ - if(WINLIST.length() > 1){ - winMenu->popup(QCursor::pos()); - }else{ - triggerWindow(); - } -} - -void LTaskButton::closeWindow(){ - if(DEBUG){ qDebug() << "Close Window:" << this->text(); } - if(winMenu->isVisible()){ winMenu->hide(); } - LWinInfo win = currentWindow(); - LSession::handle()->XCB->CloseWindow(win.windowID()); - cWin = LWinInfo(); //clear the current -} - -void LTaskButton::maximizeWindow(){ - if(DEBUG){ qDebug() << "Maximize Window:" << this->text(); } - if(winMenu->isVisible()){ winMenu->hide(); } - LWinInfo win = currentWindow(); - LSession::handle()->XCB->MaximizeWindow(win.windowID()); - //LSession::handle()->adjustWindowGeom(win.windowID(), true); //run this for now until the WM works properly - cWin = LWinInfo(); //clear the current -} - -void LTaskButton::minimizeWindow(){ - if(DEBUG){ qDebug() << "Minimize Window:" << this->text(); } - if(winMenu->isVisible()){ winMenu->hide(); } - LWinInfo win = currentWindow(); - LSession::handle()->XCB->MinimizeWindow(win.windowID()); - cWin = LWinInfo(); //clear the current - QTimer::singleShot(100, this, SLOT(UpdateButton()) ); //make sure to update this button if losing active status -} - -void LTaskButton::showAllWindows(){ - for(int i=WINLIST.length()-1; i>=0; i--){ - if(WINLIST[i].status()==LXCB::INVISIBLE){ - LSession::handle()->XCB->RestoreWindow(WINLIST[i].windowID()); - } - } -} - -void LTaskButton::hideAllWindows(){ - for(int i=WINLIST.length()-1; i>=0; i--){ - LXCB::WINDOWVISIBILITY state = WINLIST[i].status(); - if(state==LXCB::VISIBLE || state==LXCB::ACTIVE){ - LSession::handle()->XCB->MinimizeWindow(WINLIST[i].windowID()); - } - } -} - -void LTaskButton::closeAllWindows(){ - for(int i=WINLIST.length()-1; i>=0; i--){ - LSession::handle()->XCB->CloseWindow(WINLIST[i].windowID()); - } -} - -void LTaskButton::triggerWindow(){ - LWinInfo win = currentWindow(); - //Check which state the window is currently in and flip it to the other - //LXCB::WINDOWSTATE state = cstate; - //if(DEBUG){ qDebug() << "Window State: " << state; } - if(cstate == LXCB::ACTIVE){ - if(DEBUG){ qDebug() << "Minimize Window:" << this->text(); } - LSession::handle()->XCB->MinimizeWindow(win.windowID()); - QTimer::singleShot(100, this, SLOT(UpdateButton()) ); //make sure to update this button if losing active status - }else{ - if(DEBUG){ qDebug() << "Activate Window:" << this->text(); } - LSession::handle()->XCB->ActivateWindow(win.windowID()); - } - cWin = LWinInfo(); //clear the current -} - -void LTaskButton::winClicked(QAction* act){ - //Get the window from the action - if(act->data().toInt() < WINLIST.length()){ - cWin = WINLIST[act->data().toInt()]; - cstate = cWin.status(); - }else{ cWin = LWinInfo(); } //clear it - //Now trigger the window - triggerWindow(); -} - -void LTaskButton::openActionMenu(){ - //Get the Window the mouse is currently over - QPoint curpos = QCursor::pos(); - QAction *act = winMenu->actionAt(winMenu->mapFromGlobal(curpos)); - //qDebug() << "Button Context Menu:" << curpos.x() << curpos.y() << winMenu->geometry().x() << winMenu->geometry().y() << winMenu->geometry().width() << winMenu->geometry().height(); - cWin = WINLIST[0]; //default to the first window - if( act != 0 && winMenu->isVisible() ){ - //Get the window from the action - //qDebug() << "Found Action:" << act->data().toInt(); - if(act->data().toInt() < WINLIST.length()){ - cWin = WINLIST[act->data().toInt()]; - } - } - cstate = cWin.status(); - //Now show the action menu - UpdateMenus(); - actMenu->popup(QCursor::pos()); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskButton.h deleted file mode 100644 index 6b171c6a..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskButton.h +++ /dev/null @@ -1,73 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_TASK_BUTTON_H -#define _LUMINA_DESKTOP_TASK_BUTTON_H - -// Qt includes -#include <QWidget> -#include <QList> -#include <QIcon> -#include <QCursor> -#include <QMenu> -#include <QEvent> -#include <QAction> - -// libLumina includes -#include <LuminaXDG.h> -#include <LuminaX11.h> - -// Local includes -#include "../../LWinInfo.h" -#include "../LTBWidget.h" - -class LTaskButton : public LTBWidget{ - Q_OBJECT -public: - LTaskButton(QWidget *parent=0, bool smallDisplay = true); - ~LTaskButton(); - - //Window Information - QList<WId> windows(); - QString classname(); - bool isActive(); - - //Window Management - void addWindow(WId win); //Add a window to this button - void rmWindow(WId win); //Remove a window from this button - -private: - QList<LWinInfo> WINLIST; - QList<LWinInfo> LWINLIST; - QMenu *actMenu; // action menu (custom context menu) - QMenu *winMenu; // window menu (if more than 1) - LWinInfo cWin; - QString cname; //class name for the entire button - bool noicon, showText; - - LWinInfo currentWindow(); //For getting the currently-active window - LXCB::WINDOWVISIBILITY cstate; //current state of the button - -public slots: - void UpdateButton(); //re-sync the current window infomation - void UpdateMenus(); //re-create the menus (text + icons) - -private slots: - void buttonClicked(); - void closeWindow(); //send the signal to close a window - void maximizeWindow(); //send the signal to maximize/restore a window - void minimizeWindow(); //send the signal to minimize a window (iconify) - void showAllWindows(); - void hideAllWindows(); - void closeAllWindows(); - void triggerWindow(); //change b/w visible and invisible - void winClicked(QAction*); - void openActionMenu(); - -signals: - void MenuClosed(); -}; -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskManagerPlugin.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskManagerPlugin.cpp deleted file mode 100644 index 79c5dd36..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskManagerPlugin.cpp +++ /dev/null @@ -1,141 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LTaskManagerPlugin.h" -#include "../../LSession.h" - -LTaskManagerPlugin::LTaskManagerPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - timer = new QTimer(this); - timer->setSingleShot(true); - timer->setInterval(10); // 1/100 second - connect(timer, SIGNAL(timeout()), this, SLOT(UpdateButtons()) ); - usegroups = true; //backwards-compatible default value - if(id.contains("-nogroups")){ usegroups = false; } - connect(LSession::handle(), SIGNAL(WindowListEvent()), this, SLOT(checkWindows()) ); - connect(LSession::handle(), SIGNAL(WindowListEvent(WId)), this, SLOT(UpdateButton(WId)) ); - this->layout()->setContentsMargins(0,0,0,0); - QTimer::singleShot(0,this, SLOT(UpdateButtons()) ); //perform an initial sync - //QTimer::singleShot(100,this, SLOT(OrientationChange()) ); //perform an initial sync -} - -LTaskManagerPlugin::~LTaskManagerPlugin(){ - -} - -//============== -// PRIVATE SLOTS -//============== -void LTaskManagerPlugin::UpdateButtons(){ - updating = QDateTime::currentDateTime(); //global time stamp - QDateTime ctime = updating; //current thread time stamp - - //Get the current window list - QList<WId> winlist = LSession::handle()->XCB->WindowList(); - // Ignore the windows which don't want to be listed - for (int i = 0; i < winlist.length(); i++) { - QList<LXCB::WINDOWSTATE> states = LSession::handle()->XCB->WM_Get_Window_States(winlist[i]); - for (int j = 0; j < states.length(); j++) { - if (states[j] == LXCB::S_SKIP_TASKBAR) { - // Skip taskbar window - winlist.removeAt(i); - i--; - break; - } - } - } - //Do not change the status of the previously active window if it just changed to a non-visible window - //WId activeWin = LSession::handle()->XCB->ActiveWindow(); - //bool skipActive = !winlist.contains(activeWin); - //qDebug() << "Update Buttons:" << winlist; - if(updating > ctime){ return; } //another thread kicked off already - stop this one - //Now go through all the current buttons first - for(int i=0; i<BUTTONS.length(); i++){ - //Get the windows managed in this button - QList<WId> WI = BUTTONS[i]->windows(); - bool updated=false; - if(updating > ctime){ return; } //another thread kicked off already - stop this one - //Loop over all the windows for this button - for(int w=0; w<WI.length(); w++){ - if(updating > ctime){ return; } //another thread kicked off already - stop this one - if( winlist.contains( WI[w] ) ){ - //Still current window - update it later - winlist.removeAll(WI[w] ); //remove this window from the list since it is done - }else{ - //Window was closed - remove it - if(WI.length()==1){ - //Remove the entire button - //qDebug() << "Window Closed: Remove Button" ; - this->layout()->takeAt(i); //remove from the layout - BUTTONS.takeAt(i)->deleteLater(); - i--; - updated = true; //prevent updating a removed button - break; //break out of the button->window loop - }else{ - //qDebug() << "Window Closed: Remove from button:" << WI[w].windowID() << "Button:" << w; - BUTTONS[i]->rmWindow(WI[w]); // one of the multiple windows for the button - WI.removeAt(w); //remove this window from the list - w--; - } - updated=true; //button already changed - } - if(updating > ctime){ return; } //another thread kicked off already - stop this one - } - if(!updated){ - //qDebug() << "Update Button:" << i; - if(updating > ctime){ return; } //another thread kicked off already - stop this one - //if(!skipActive || !BUTTONS[i]->isActive()){ - QTimer::singleShot(1,BUTTONS[i], SLOT(UpdateButton()) ); //keep moving on - //} - } - } - //Now go through the remaining windows - for(int i=0; i<winlist.length(); i++){ - //New windows, create buttons for each (add grouping later) - if(updating > ctime){ return; } //another thread kicked off already - stop this one - //Check for a button that this can just be added to - QString ctxt = LSession::handle()->XCB->WindowClass(winlist[i]); - bool found = false; - for(int b=0; b<BUTTONS.length(); b++){ - if(updating > ctime){ return; } //another thread kicked off already - stop this one - if(BUTTONS[b]->classname()== ctxt && usegroups){ - //This adds a window to an existing group - found = true; - //qDebug() << "Add Window to Button:" << b; - BUTTONS[b]->addWindow(winlist[i]); - break; - } - } - if(!found){ - if(updating > ctime){ return; } //another thread kicked off already - stop this one - //No group, create a new button - //qDebug() << "New Button"; - LTaskButton *but = new LTaskButton(this, usegroups); - but->addWindow( winlist[i] ); - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - but->setIconSize(QSize(this->height(), this->height())); - }else{ - but->setIconSize(QSize(this->width(), this->width())); - } - this->layout()->addWidget(but); - connect(but, SIGNAL(MenuClosed()), this, SIGNAL(MenuClosed())); - BUTTONS << but; - } - } -} - -void LTaskManagerPlugin::UpdateButton(WId win){ - for(int i=0; i<BUTTONS.length(); i++){ - if(BUTTONS[i]->windows().contains(win)){ - qDebug() << "Update Task Manager Button (single window ping)"; - QTimer::singleShot(0,BUTTONS[i], SLOT(UpdateButton()) ); - break; - } - } -} - -void LTaskManagerPlugin::checkWindows(){ - timer->start(); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskManagerPlugin.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskManagerPlugin.h deleted file mode 100644 index e6371f34..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/taskmanager/LTaskManagerPlugin.h +++ /dev/null @@ -1,71 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#ifndef _LUMINA_DESKTOP_TASK_MANAGER_PLUGIN_H -#define _LUMINA_DESKTOP_TASK_MANAGER_PLUGIN_H - -// Qt includes -#include <QWidget> -#include <QList> -#include <QString> -#include <QDebug> -#include <QTimer> -#include <QEvent> -#include <QDateTime> - -// libLumina includes -#include <LuminaX11.h> - -// Local includes -#include "LTaskButton.h" -#include "LWinInfo.h" -#include "../LPPlugin.h" - -class LTaskManagerPlugin : public LPPlugin{ - Q_OBJECT -public: - LTaskManagerPlugin(QWidget *parent=0, QString id="taskmanager", bool horizontal=true); - ~LTaskManagerPlugin(); - -private: - QList<LTaskButton*> BUTTONS; //to keep track of the current buttons - QTimer *timer; - QDateTime updating; //quick flag for if it is currently working - bool usegroups; - -private slots: - void UpdateButtons(); - void UpdateButton(WId win); - void checkWindows(); - -public slots: - void LocaleChange(){ - UpdateButtons(); - } - void ThemeChange(){ - UpdateButtons(); - } - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ //horizontal - this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - this->layout()->setAlignment(Qt::AlignLeft); - QSize sz(this->height(), this->height()); - for(int i=0; i<BUTTONS.length(); i++){ - BUTTONS[i]->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - BUTTONS[i]->setIconSize(sz); - } - }else{ //vertical - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); - this->layout()->setAlignment(Qt::AlignTop); - QSize sz(this->width(), this->width()); - for(int i=0; i<BUTTONS.length(); i++){ - BUTTONS[i]->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); - BUTTONS[i]->setIconSize(sz); - } - } - } -}; -#endif
\ No newline at end of file diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/LUserButton.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/LUserButton.cpp deleted file mode 100644 index acb27135..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/LUserButton.cpp +++ /dev/null @@ -1,67 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "LUserButton.h" -#include "../../LSession.h" - -LUserButtonPlugin::LUserButtonPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ - button = new QToolButton(this); - button->setAutoRaise(true); - button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - button->setPopupMode(QToolButton::DelayedPopup); //make sure it runs the update routine first - connect(button, SIGNAL(clicked()), this, SLOT(openMenu())); - this->layout()->setContentsMargins(0,0,0,0); - this->layout()->addWidget(button); - menu = new QMenu(this); - menu->setContentsMargins(1,1,1,1); - connect(menu, SIGNAL(aboutToHide()), this, SIGNAL(MenuClosed())); - usermenu = new UserWidget(this); - connect(usermenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) ); - mact = new QWidgetAction(this); - mact->setDefaultWidget(usermenu); - menu->addAction(mact); - - button->setMenu(menu); - connect(menu, SIGNAL(aboutToHide()), this, SLOT(updateButtonVisuals()) ); - //Setup the global shortcut handling for opening the start menu - connect(QApplication::instance(), SIGNAL(StartButtonActivated()), this, SLOT(shortcutActivated()) ); - LSession::handle()->registerStartButton(this->type()); - - QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes -} - -LUserButtonPlugin::~LUserButtonPlugin(){ - -} - -void LUserButtonPlugin::updateButtonVisuals(){ - button->setToolTip(tr("Quickly launch applications or open files")); - button->setText( SYSTEM::user() ); - if( QFile::exists(QDir::homePath()+"/.loginIcon.png") ){ - button->setIcon( QIcon(QDir::homePath()+"/.loginIcon.png") ); - }else{ - button->setIcon( LXDG::findIcon("user-identity", ":/images/default-user.png") ); //force icon refresh - } -} - -// ======================== -// PRIVATE FUNCTIONS -// ======================== -void LUserButtonPlugin::openMenu(){ - usermenu->UpdateMenu(); - button->showMenu(); -} - -void LUserButtonPlugin::closeMenu(){ - menu->hide(); -} - -void LUserButtonPlugin::shortcutActivated(){ - if(LSession::handle()->registerStartButton(this->type())){ - if(menu->isVisible()){ closeMenu(); } - else{ openMenu(); } - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/LUserButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/LUserButton.h deleted file mode 100644 index 8d5e5040..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/LUserButton.h +++ /dev/null @@ -1,75 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin is the main button that allow the user to run -// applications or logout of the desktop -//=========================================== -#ifndef _LUMINA_DESKTOP_USER_MENU_PLUGIN_H -#define _LUMINA_DESKTOP_USER_MENU_PLUGIN_H - -// Qt includes -#include <QMenu> -#include <QWidgetAction> -#include <QToolButton> -#include <QString> -#include <QWidget> - - -// Lumina-desktop includes -//#include "../../Globals.h" -#include "../LPPlugin.h" //main plugin widget - -// libLumina includes -#include "LuminaXDG.h" - -#include "UserWidget.h" - -// PANEL PLUGIN BUTTON -class LUserButtonPlugin : public LPPlugin{ - Q_OBJECT - -public: - LUserButtonPlugin(QWidget *parent = 0, QString id = "userbutton", bool horizontal=true); - ~LUserButtonPlugin(); - -private: - QMenu *menu; - QWidgetAction *mact; - UserWidget *usermenu; - QToolButton *button; - -private slots: - void openMenu(); - void closeMenu(); - void shortcutActivated(); - - void updateButtonVisuals(); - -public slots: - void OrientationChange(){ - if(this->layout()->direction()==QBoxLayout::LeftToRight){ - this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); - button->setIconSize( QSize(this->height(), this->height()) ); - }else{ - this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - button->setIconSize( QSize(this->width(), this->width()) ); - } - this->layout()->update(); - updateButtonVisuals(); - } - - void LocaleChange(){ - updateButtonVisuals(); - usermenu->UpdateAll(); - } - - void ThemeChange(){ - updateButtonVisuals(); - usermenu->UpdateAll(); - } -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserItemWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserItemWidget.cpp deleted file mode 100644 index 8d7dab7a..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserItemWidget.cpp +++ /dev/null @@ -1,205 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "UserItemWidget.h" -#include <LUtils.h> -#include <LDesktopUtils.h> -#include <QMenu> - -#define TEXTCUTOFF 165 -UserItemWidget::UserItemWidget(QWidget *parent, QString itemPath, QString type, bool goback) : QFrame(parent){ - createWidget(); - //Now fill it appropriately - bool inHome = type.endsWith("-home"); //internal code - if(inHome){ type = type.remove("-home"); } - if(itemPath.endsWith(".desktop") || type=="app"){ - XDGDesktop item(itemPath); - if( item.isValid() ){ - icon->setPixmap( LXDG::findIcon(item.icon, "preferences-system-windows-actions").pixmap(32,32) ); - name->setText( this->fontMetrics().elidedText(item.name, Qt::ElideRight, TEXTCUTOFF) ); - setupActions(&item); - }else{ - gooditem = false; - return; - } - }else if(type=="dir"){ - actButton->setVisible(false); - if(itemPath.endsWith("/")){ itemPath.chop(1); } - if(goback){ - icon->setPixmap( LXDG::findIcon("go-previous","").pixmap(32,32) ); - name->setText( tr("Go Back") ); - }else{ - icon->setPixmap( LXDG::findIcon("folder","").pixmap(32,32) ); - name->setText( this->fontMetrics().elidedText(itemPath.section("/",-1), Qt::ElideRight, TEXTCUTOFF) ); - } - }else{ - actButton->setVisible(false); - if(itemPath.endsWith("/")){ itemPath.chop(1); } - if(QFileInfo(itemPath).isDir()){ - type = "dir"; - icon->setPixmap( LXDG::findIcon("folder","").pixmap(32,32) ); - }else if(LUtils::imageExtensions().contains(itemPath.section("/",-1).section(".",-1).toLower()) ){ - icon->setPixmap( QIcon(itemPath).pixmap(32,32) ); - }else{ - icon->setPixmap( LXDG::findMimeIcon(itemPath.section("/",-1)).pixmap(32,32) ); - } - name->setText( this->fontMetrics().elidedText(itemPath.section("/",-1), Qt::ElideRight, TEXTCUTOFF) ); - } - icon->setWhatsThis(itemPath); - if(!goback){ this->setWhatsThis(name->text()); } - isDirectory = (type=="dir"); //save this for later - if(LDesktopUtils::isFavorite(itemPath)){ - linkPath = itemPath; - isShortcut=true; - }else if( inHome ){//|| itemPath.section("/",0,-2)==QDir::homePath()+"/Desktop" ){ - isShortcut = true; - }else{ - isShortcut = false; - } - //Now setup the button appropriately - setupButton(goback); -} - -UserItemWidget::UserItemWidget(QWidget *parent, XDGDesktop *item) : QFrame(parent){ - if(item==0){ return; } - createWidget(); - isDirectory = false; - if(LDesktopUtils::isFavorite(item->filePath)){ - linkPath = item->filePath; - isShortcut=true; - }else if( item->filePath.section("/",0,-2)==QDir::homePath()+"/Desktop" ){ - isShortcut = true; - }else{ - isShortcut = false; - } - //Now fill it appropriately - icon->setPixmap( LXDG::findIcon(item->icon,"preferences-system-windows-actions").pixmap(32,32) ); - name->setText( this->fontMetrics().elidedText(item->name, Qt::ElideRight, TEXTCUTOFF) ); - this->setWhatsThis(name->text()); - icon->setWhatsThis(item->filePath); - //Now setup the buttons appropriately - setupButton(); - setupActions(item); -} - -UserItemWidget::~UserItemWidget(){ - delete button; - delete icon; - delete name; -} - - -void UserItemWidget::createWidget(){ - //Initialize the widgets - gooditem = true; - menuopen = false; - menureset = new QTimer(this); - menureset->setSingleShot(true); - menureset->setInterval(1000); //1 second - this->setContentsMargins(0,0,0,0); - button = new QToolButton(this); - button->setIconSize( QSize(14,14) ); - button->setAutoRaise(true); - actButton = new QToolButton(this); - actButton->setPopupMode(QToolButton::InstantPopup); - actButton->setFixedSize( QSize(17,34) ); - actButton->setArrowType(Qt::DownArrow); - icon = new QLabel(this); - icon->setFixedSize( QSize(34,34) ); - name = new QLabel(this); - //Add them to the layout - this->setLayout(new QHBoxLayout()); - this->layout()->setContentsMargins(1,1,1,1); - this->layout()->addWidget(icon); - this->layout()->addWidget(actButton); - this->layout()->addWidget(name); - this->layout()->addWidget(button); - //Set a custom object name so this can be tied into the Lumina Theme stylesheets - this->setObjectName("LuminaUserItemWidget"); - //Install the stylesheet - //this->setStyleSheet("UserItemWidget{ background: transparent; border-radius: 5px;} UserItemWidget::hover{ background: rgba(255,255,255,200); border-radius: 5px; }"); -} - -void UserItemWidget::setupButton(bool disable){ - //if(isDirectory){ qDebug() << "Directory Entry:" << isShortcut << linkPath << icon->whatsThis(); } - - if(disable){ - button->setVisible(false); - }else if(isShortcut && !linkPath.isEmpty()){ //Favorite Item - can always remove this - button->setWhatsThis("remove"); - button->setIcon( LXDG::findIcon("list-remove","") ); - button->setToolTip(tr("Remove Shortcut")); - connect(button, SIGNAL(clicked()), this, SLOT(buttonClicked()) ); - }else if(isShortcut){ //Physical File/Dir - can remove - button->setWhatsThis("remove"); - button->setIcon( LXDG::findIcon("user-trash","") ); - button->setToolTip(tr("Delete File")); - connect(button, SIGNAL(clicked()), this, SLOT(buttonClicked()) ); - }else if(!isShortcut){// if( !QFile::exists( QDir::homePath()+"/Desktop/"+icon->whatsThis().section("/",-1) ) && !LUtils::isFavorite(icon->whatsThis() ) ){ - //This file does not have a shortcut yet -- allow the user to add it - button->setWhatsThis("add"); - button->setIcon( LXDG::findIcon("bookmark-toolbar","") ); - button->setToolTip(tr("Create Shortcut")); - connect(button, SIGNAL(clicked()), this, SLOT(buttonClicked()) ); - }else{ - //This already has a desktop shortcut -- no special actions - button->setVisible(false); - } - if(isShortcut){ - name->setToolTip(icon->whatsThis()); //also allow the user to see the full shortcut path - } -} - -void UserItemWidget::setupActions(XDGDesktop *app){ - if(app==0 || app->actions.isEmpty()){ actButton->setVisible(false); return; } - //Actions Available - go ahead and list them all - actButton->setMenu( new QMenu(this) ); - for(int i=0; i<app->actions.length(); i++){ - QAction *act = new QAction(LXDG::findIcon(app->actions[i].icon, app->icon), app->actions[i].name, this); - act->setToolTip(app->actions[i].ID); - act->setWhatsThis(app->actions[i].ID); - actButton->menu()->addAction(act); - } - connect(actButton->menu(), SIGNAL(triggered(QAction*)), this, SLOT(actionClicked(QAction*)) ); - connect(actButton->menu(), SIGNAL(aboutToShow()), this, SLOT(actionMenuOpen()) ); - connect(actButton->menu(), SIGNAL(aboutToHide()), this, SLOT(actionMenuClosed()) ); - connect(menureset, SIGNAL(timeout()), this, SLOT(resetmenuflag()) ); -} - -void UserItemWidget::buttonClicked(){ - button->setVisible(false); - if(button->whatsThis()=="add"){ - LDesktopUtils::addFavorite(icon->whatsThis()); - //QFile::link(icon->whatsThis(), QDir::homePath()+"/.lumina/favorites/"+icon->whatsThis().section("/",-1) ); - emit NewShortcut(); - }else if(button->whatsThis()=="remove"){ - if(linkPath.isEmpty()){ - //This is a desktop file - if(isDirectory){ - QProcess::startDetached("rm -r \""+icon->whatsThis()+"\""); - }else{ - QFile::remove(icon->whatsThis()); - } - //Don't emit the RemovedShortcut signal here - the automatic ~/Desktop watcher will see the change when finished - }else{ - LDesktopUtils::removeFavorite(icon->whatsThis()); //This is a favorite - emit RemovedShortcut(); - } - } -} - -void UserItemWidget::ItemClicked(){ - if(!linkPath.isEmpty()){ emit RunItem(linkPath); } - else{ emit RunItem(icon->whatsThis()); } -} - -void UserItemWidget::actionClicked(QAction *act){ - actButton->menu()->hide(); - QString cmd = "lumina-open -action \""+act->whatsThis()+"\" \"%1\""; - if(!linkPath.isEmpty()){ cmd = cmd.arg(linkPath); } - else{ cmd = cmd.arg(icon->whatsThis()); } - emit RunItem(cmd); -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserItemWidget.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserItemWidget.h deleted file mode 100644 index 0b212f10..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserItemWidget.h +++ /dev/null @@ -1,72 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This item widget manages a single file/directory -//=========================================== -#ifndef _LUMINA_PANEL_USER_ITEM_WIDGET_H -#define _LUMINA_PANEL_USER_ITEM_WIDGET_H - -#include <QFrame> -#include <QLabel> -#include <QToolButton> -#include <QString> -#include <QHBoxLayout> -#include <QSize> -#include <QDir> -#include <QFile> -#include <QMouseEvent> -#include <QAction> -#include <QMenu> -#include <QTimer> - -#include <LuminaXDG.h> - -class UserItemWidget : public QFrame{ - Q_OBJECT -public: - UserItemWidget(QWidget *parent=0, QString itemPath="", QString type="unknown", bool goback=false); - UserItemWidget(QWidget *parent=0, XDGDesktop *item= 0); - ~UserItemWidget(); - - bool gooditem; -private: - QToolButton *button, *actButton; - QLabel *icon, *name; - bool isDirectory, isShortcut, menuopen; - QString linkPath; - QTimer *menureset; - - void createWidget(); - void setupButton(bool disable = false); - void setupActions(XDGDesktop*); - -private slots: - void buttonClicked(); - void ItemClicked(); - void actionClicked(QAction*); - //Functions to fix the submenu open/close issues - void actionMenuOpen(){ - if(menureset->isActive()){ menureset->stop(); } - menuopen = true; - } - void resetmenuflag(){ menuopen = false; } //tied to the "menureset" timer - void actionMenuClosed(){ menureset->start(); } - - -protected: - void mouseReleaseEvent(QMouseEvent *event){ - if(menuopen){ resetmenuflag(); } //skip this event if a submenu was open - else if(event->button() != Qt::NoButton){ ItemClicked(); } - } - -signals: - void NewShortcut(); - void RemovedShortcut(); - void RunItem(QString cmd); - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.cpp deleted file mode 100644 index a0ba8996..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.cpp +++ /dev/null @@ -1,393 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014-2015, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -#include "UserWidget.h" -#include "ui_UserWidget.h" -#include "../../LSession.h" -#include "../../AppMenu.h" - -UserWidget::UserWidget(QWidget* parent) : QTabWidget(parent), ui(new Ui::UserWidget){ - ui->setupUi(this); - updatingfavs = false; - if(parent!=0){ parent->setMouseTracking(true); } - this->setMouseTracking(true); - sysapps = LSession::handle()->applicationMenu()->currentAppHash(); //get the raw info - - //Connect the signals/slots - connect(ui->tool_desktopsettings, SIGNAL(clicked()), this, SLOT(openDeskSettings()) ); - connect(ui->tool_config_screensaver, SIGNAL(clicked()), this, SLOT(openScreenSaverConfig()) ); - connect(ui->tool_config_screensettings, SIGNAL(clicked()), this, SLOT(openScreenConfig()) ); - connect(ui->tool_fav_apps, SIGNAL(clicked()), this, SLOT(FavChanged()) ); - connect(ui->tool_fav_files, SIGNAL(clicked()), this, SLOT(FavChanged()) ); - connect(ui->tool_fav_dirs, SIGNAL(clicked()), this, SLOT(FavChanged()) ); - connect(ui->combo_app_cats, SIGNAL(currentIndexChanged(int)), this, SLOT(updateApps()) ); - connect(ui->tool_home_gohome, SIGNAL(clicked()), this, SLOT(slotGoHome()) ); - connect(ui->tool_home_browse, SIGNAL(clicked()), this, SLOT(slotOpenDir()) ); - connect(ui->tool_home_search, SIGNAL(clicked()), this, SLOT(slotOpenSearch()) ); - connect(ui->tool_config_about, SIGNAL(clicked()), this, SLOT(openLuminaInfo()) ); - - //Setup the special buttons - connect(ui->tool_app_store, SIGNAL(clicked()), this, SLOT(openStore()) ); - connect(ui->tool_controlpanel, SIGNAL(clicked()), this, SLOT(openControlPanel()) ); - //connect(ui->tool_qtconfig, SIGNAL(clicked()), this, SLOT(openQtConfig()) ); - - lastUpdate = QDateTime(); //make sure it refreshes - - connect(LSession::handle()->applicationMenu(), SIGNAL(AppMenuUpdated()), this, SLOT(UpdateMenu()) ); - connect(QApplication::instance(), SIGNAL(DesktopFilesChanged()), this, SLOT(updateFavItems()) ); - QTimer::singleShot(10,this, SLOT(UpdateAll())); //make sure to load this once after initialization -} - -UserWidget::~UserWidget(){ -} - -//=========== -// PRIVATE -//=========== -void UserWidget::ClearScrollArea(QScrollArea *area){ - QWidget *wgt = area->takeWidget(); - wgt->deleteLater(); //delete the widget and all children - area->setWidget( new QWidget() ); //create a new widget in the scroll area - area->widget()->setContentsMargins(0,0,0,0); - QVBoxLayout *layout = new QVBoxLayout; - layout->setSpacing(2); - layout->setContentsMargins(3,1,3,1); - layout->setDirection(QBoxLayout::TopToBottom); - layout->setAlignment(Qt::AlignTop); - area->widget()->setLayout(layout); -} - -void UserWidget::SortScrollArea(QScrollArea *area){ - //qDebug() << "Sorting Scroll Area:"; - //Sort all the items in the scroll area alphabetically - QLayout *lay = area->widget()->layout(); - QStringList items; - for(int i=0; i<lay->count(); i++){ - items << lay->itemAt(i)->widget()->whatsThis().toLower(); - } - - items.sort(); - //qDebug() << " - Sorted Items:" << items; - for(int i=0; i<items.length(); i++){ - if(items[i].isEmpty()){ continue; } - //QLayouts are weird in that they can only add items to the end - need to re-insert almost every item - for(int j=0; j<lay->count(); j++){ - //Find this item - if(lay->itemAt(j)->widget()->whatsThis().toLower()==items[i]){ - //Found it - now move it if necessary - //qDebug() << "Found Item:" << items[i] << i << j; - lay->addItem( lay->takeAt(j) ); - break; - } - } - } - -} - -QIcon UserWidget::rotateIcon(QIcon ico){ - //Rotate the given icon to appear vertical in the tab widget - QPixmap pix = ico.pixmap(32,32); - QTransform tran; - tran.rotate(+90); //For tabs on the left/West - pix = pix.transformed(tran); - ico = QIcon(pix); - return ico; -} - -//============ -// PRIVATE SLOTS -//============ -void UserWidget::UpdateAll(){ - ui->retranslateUi(this); - //Setup the Icons - // - favorites tab - this->setTabIcon(0, rotateIcon(LXDG::findIcon("folder-favorites","")) ); - this->setTabText(0,""); - // - apps tab - this->setTabIcon(1, rotateIcon(LXDG::findIcon("system-run","")) ); - this->setTabText(1,""); - // - home tab - this->setTabIcon(2, rotateIcon(LXDG::findIcon("user-home","")) ); - this->setTabText(2,""); - // - config tab - this->setTabIcon(3, rotateIcon(LXDG::findIcon("preferences-system","")) ); - this->setTabText(3,""); - ui->tool_fav_apps->setIcon( LXDG::findIcon("system-run","") ); - ui->tool_fav_dirs->setIcon( LXDG::findIcon("folder","") ); - ui->tool_fav_files->setIcon( LXDG::findIcon("document-multiple","") ); - ui->tool_desktopsettings->setIcon( LXDG::findIcon("preferences-desktop","") ); - ui->tool_config_screensaver->setIcon( LXDG::findIcon("preferences-desktop-screensaver","") ); - ui->tool_config_screensettings->setIcon( LXDG::findIcon("preferences-other","") ); - ui->tool_home_gohome->setIcon( LXDG::findIcon("go-home","") ); - ui->tool_home_browse->setIcon( LXDG::findIcon("document-open","") ); - ui->tool_home_search->setIcon( LXDG::findIcon("system-search","") ); - ui->tool_config_about->setIcon( LXDG::findIcon("lumina","") ); - - //Setup the special buttons - QString APPSTORE = LOS::AppStoreShortcut(); - if(QFile::exists(APPSTORE) && !APPSTORE.isEmpty()){ - //Now load the info - XDGDesktop store(APPSTORE); - bool ok = store.isValid(); - if(ok){ - ui->tool_app_store->setIcon( LXDG::findIcon(store.icon, "") ); - ui->tool_app_store->setText( store.name ); - } - ui->tool_app_store->setVisible(ok); //availability - }else{ - ui->tool_app_store->setVisible(false); //not available - } - QString CONTROLPANEL = LOS::ControlPanelShortcut(); - if(QFile::exists(CONTROLPANEL) && !CONTROLPANEL.isEmpty()){ - //Now load the info - XDGDesktop cpan(CONTROLPANEL); - bool ok = cpan.isValid(); - if(ok){ - ui->tool_controlpanel->setIcon( LXDG::findIcon(cpan.icon, "") ); - } - ui->tool_controlpanel->setVisible(ok); //availability - }else{ - ui->tool_controlpanel->setVisible(false); //not available - } - /*QString QTCONFIG = LOS::QtConfigShortcut(); - if(QFile::exists(QTCONFIG) && !QTCONFIG.isEmpty()){ - ui->tool_qtconfig->setVisible(true); - ui->tool_qtconfig->setIcon( LXDG::findIcon("preferences-desktop-theme","") ); - }else{ - ui->tool_qtconfig->setVisible(false); - }*/ - //Now update the menus - UpdateMenu(); -} - -void UserWidget::UpdateMenu(bool forceall){ - this->setCurrentWidget(ui->tab_fav); - ui->tool_fav_apps->setChecked(true); - ui->tool_fav_dirs->setChecked(false); - ui->tool_fav_files->setChecked(false); - cfav = 0; //favorite apps - FavChanged(); - QString cdir = ui->label_home_dir->whatsThis(); - if(cdir.isEmpty() || !QFile::exists(cdir)){ - //Directory deleted or nothing loaded yet - ui->label_home_dir->setWhatsThis(QDir::homePath()); - QTimer::singleShot(0,this, SLOT(updateHome()) ); - }else if( lastUpdate < QFileInfo(cdir).lastModified() || forceall){ - //Directory contents changed - reload it - QTimer::singleShot(0,this, SLOT(updateHome()) ); - } - if(lastUpdate < LSession::handle()->applicationMenu()->lastHashUpdate || lastUpdate.isNull() || forceall){ - updateAppCategories(); - QTimer::singleShot(0,this, SLOT(updateApps()) ); - } - lastUpdate = QDateTime::currentDateTime(); -} - -void UserWidget::LaunchItem(QString path, bool fix){ - if(!path.isEmpty()){ - qDebug() << "Launch Application:" << path; - if( fix && !path.startsWith("lumina-open") ){ LSession::LaunchApplication("lumina-open \""+path+"\""); } - else{ LSession::LaunchApplication(path); } - emit CloseMenu(); //so the menu container will close - } -} - -void UserWidget::FavChanged(){ - //uncheck the current item for a moment - int oldfav = cfav; - if(cfav==0){ ui->tool_fav_apps->setChecked(false); } - else if(cfav==1){ ui->tool_fav_dirs->setChecked(false); } - if(cfav==2){ ui->tool_fav_files->setChecked(false); } - //Now check what other item is now the only one checked - if(ui->tool_fav_apps->isChecked() && !ui->tool_fav_dirs->isChecked() && !ui->tool_fav_files->isChecked() ){ - cfav = 0; - }else if(!ui->tool_fav_apps->isChecked() && ui->tool_fav_dirs->isChecked() && !ui->tool_fav_files->isChecked() ){ - cfav = 1; - }else if(!ui->tool_fav_apps->isChecked() && !ui->tool_fav_dirs->isChecked() && ui->tool_fav_files->isChecked() ){ - cfav = 2; - }else{ - //Re-check the old item (something invalid) - ui->tool_fav_apps->setChecked(cfav==0); - ui->tool_fav_dirs->setChecked(cfav==1); - ui->tool_fav_files->setChecked(cfav==2); - } - updateFavItems(oldfav!=cfav); -} - -void UserWidget::updateFavItems(bool newfilter){ - if(updatingfavs){ return; } - updatingfavs = true; - //qDebug() << "Updating User Favorite Items"; - QStringList newfavs = LDesktopUtils::listFavorites(); - //qDebug() << "Favorites:" << newfavs; - if(lastHomeUpdate.isNull() || (QFileInfo(QDir::homePath()+"/Desktop").lastModified() > lastHomeUpdate) || newfavs!=favs ){ - favs = newfavs; - - homefiles = LSession::handle()->DesktopFiles(); - lastHomeUpdate = QDateTime::currentDateTime(); - }else if(!newfilter){ updatingfavs = false; return; } //nothing new to change - stop now - //qDebug() << " - Passed Smoke Test..."; - QStringList favitems; - //Remember for format for favorites: <name>::::[app/dir/<mimetype>]::::<full path> - if(ui->tool_fav_apps->isChecked()){ - favitems = favs.filter("::::app::::"); - for(int i=0; i<homefiles.length(); i++){ - if(homefiles[i].fileName().endsWith(".desktop") && favitems.filter(homefiles[i].canonicalFilePath()).isEmpty() ){ - favitems << homefiles[i].fileName()+"::::app-home::::"+homefiles[i].absoluteFilePath(); - } - } - }else if(ui->tool_fav_dirs->isChecked()){ - favitems = favs.filter("::::dir::::"); - for(int i=0; i<homefiles.length(); i++){ - if(homefiles[i].isDir() && favitems.filter(homefiles[i].canonicalFilePath()).isEmpty() ){ - favitems << homefiles[i].fileName()+"::::dir-home::::"+homefiles[i].absoluteFilePath(); - } - } - }else{ - //Files - for(int i=0; i<favs.length(); i++){ - QString type = favs[i].section("::::",1,1); - if(type != "app" && type !="dir"){ - favitems << favs[i]; - } - } - for(int i=0; i<homefiles.length(); i++){ - if(!homefiles[i].isDir() && !homefiles[i].fileName().endsWith(".desktop") && favitems.filter(homefiles[i].canonicalFilePath()).isEmpty() ){ - favitems << homefiles[i].fileName()+"::::"+LXDG::findAppMimeForFile(homefiles[i].fileName())+"-home::::"+homefiles[i].absoluteFilePath(); - } - } - } - ClearScrollArea(ui->scroll_fav); - //qDebug() << " - Sorting Items"; - favitems.sort(); //sort them alphabetically - //qDebug() << " - Creating Items:" << favitems; - for(int i=0; i<favitems.length(); i++){ - if( !QFile::exists(favitems[i].section("::::",2,50)) ){ continue; } //file does not exist - just skip it - UserItemWidget *it = new UserItemWidget(ui->scroll_fav->widget(), favitems[i].section("::::",2,50), favitems[i].section("::::",1,1) ); - if(!it->gooditem){ it->deleteLater(); continue; } - ui->scroll_fav->widget()->layout()->addWidget(it); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - connect(it, SIGNAL(NewShortcut()), this, SLOT(updateFavItems()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(updateFavItems()) ); - QApplication::processEvents(); //keep the UI snappy - might be a number of these - } - SortScrollArea(ui->scroll_fav); - updatingfavs = false; - //qDebug() << " - Done"; -} - -//Apps Tab -void UserWidget::updateAppCategories(){ - ui->combo_app_cats->clear(); - QStringList cats = sysapps->keys(); - cats.sort(); - for(int i=0; i<cats.length(); i++){ - QString name, icon; - if(cats[i] == "All"){ name = tr("All"); icon = "application-x-executable"; } - else if(cats[i] == "Multimedia"){ name = tr("Multimedia"); icon = "applications-multimedia"; } - else if(cats[i] == "Development"){ name = tr("Development"); icon = "applications-development"; } - else if(cats[i] == "Education"){ name = tr("Education"); icon = "applications-education"; } - else if(cats[i] == "Game"){ name = tr("Games"); icon = "applications-games"; } - else if(cats[i] == "Graphics"){ name = tr("Graphics"); icon = "applications-graphics"; } - else if(cats[i] == "Network"){ name = tr("Network"); icon = "applications-internet"; } - else if(cats[i] == "Office"){ name = tr("Office"); icon = "applications-office"; } - else if(cats[i] == "Science"){ name = tr("Science"); icon = "applications-science"; } - else if(cats[i] == "Settings"){ name = tr("Settings"); icon = "preferences-system"; } - else if(cats[i] == "System"){ name = tr("System"); icon = "applications-system"; } - else if(cats[i] == "Utility"){ name = tr("Utilities"); icon = "applications-utilities"; } - else if(cats[i] == "Wine"){ name = tr("Wine"); icon = "wine"; } - else{ name = tr("Unsorted"); icon = "applications-other"; } - ui->combo_app_cats->addItem( LXDG::findIcon(icon,""), name, cats[i] ); - } -} - -void UserWidget::updateApps(){ - if(ui->combo_app_cats->currentIndex() < 0){ return; } //no cat - QString cat = ui->combo_app_cats->itemData( ui->combo_app_cats->currentIndex() ).toString(); - QList<XDGDesktop*> items = sysapps->value(cat); - ClearScrollArea(ui->scroll_apps); - for(int i=0; i<items.length(); i++){ - UserItemWidget *it = new UserItemWidget(ui->scroll_apps->widget(), items[i]); - ui->scroll_apps->widget()->layout()->addWidget(it); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); - connect(it, SIGNAL(NewShortcut()), this, SLOT(updateFavItems()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(updateFavItems()) ); - QApplication::processEvents(); //keep the UI snappy - might be a number of these - } -} - -//Home Tab -void UserWidget::updateHome(){ - qDebug() << "Update Home"; - ClearScrollArea(ui->scroll_home); - qDebug() << " - dir:" << ui->label_home_dir->whatsThis(); - QDir homedir(ui->label_home_dir->whatsThis()); - QStringList items; - if(QDir::homePath() == homedir.absolutePath()){ - ui->label_home_dir->setText(tr("Home")); - ui->tool_home_gohome->setVisible(false); - }else{ - qDebug() << " - Show the back button"; - ui->tool_home_gohome->setVisible(true); - ui->label_home_dir->setText( this->fontMetrics().elidedText(homedir.dirName(), Qt::ElideRight, ui->label_home_dir->width())); - //Now make sure to put a "go back" button at the top of the list - QString dir = ui->label_home_dir->whatsThis(); - if(dir.endsWith("/")){ dir.chop(1); } - dir.chop( dir.section("/",-1).length() ); - items << dir; - } - qDebug() << " - Load items"; - ui->label_home_dir->setToolTip(ui->label_home_dir->whatsThis()); - items << homedir.entryList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot, QDir::Name | QDir::DirsFirst); - QString type = ""; - if(homedir.absolutePath() == QDir::homePath()+"/Desktop"){ type.append("-home"); }//internal code - for(int i=0; i<items.length(); i++){ - qDebug() << " - New item:" << homedir.absoluteFilePath(items[i]); - UserItemWidget *it; - if(items[i].startsWith("/")){ it = new UserItemWidget(ui->scroll_home->widget(), items[i], "dir", true); } //go-back button - else{ it = new UserItemWidget(ui->scroll_home->widget(), homedir.absoluteFilePath(items[i]), type, false); } - qDebug() << " - Add to layout"; - ui->scroll_home->widget()->layout()->addWidget(it); - connect(it, SIGNAL(RunItem(QString)), this, SLOT(slotGoToDir(QString)) ); - connect(it, SIGNAL(NewShortcut()), this, SLOT(updateFavItems()) ); - connect(it, SIGNAL(RemovedShortcut()), this, SLOT(updateFavItems()) ); - qDebug() << " - process events"; - QApplication::processEvents(); //keep the UI snappy - may be a lot of these to load - } - qDebug() << " - Done"; -} - -void UserWidget::slotGoToDir(QString dir){ - if(!QFileInfo(dir).isDir()){ - LaunchItem(dir); - }else{ - ui->label_home_dir->setWhatsThis(dir); - updateHome(); - } -} - -void UserWidget::slotGoHome(){ - slotGoToDir(QDir::homePath()); -} - -void UserWidget::slotOpenDir(){ - LaunchItem(ui->label_home_dir->whatsThis()); -} - -void UserWidget::slotOpenSearch(){ - LaunchItem("lumina-search -dir \""+ui->label_home_dir->whatsThis()+"\"", false); //use command as-is -} - -void UserWidget::mouseMoveEvent( QMouseEvent *event){ - QTabBar *wid = tabBar(); - if(wid==0){ return; } //invalid widget found - QPoint relpos = wid->mapFromGlobal( this->mapToGlobal(event->pos()) ); - //qDebug() << "Mouse Move Event: " << event->pos().x() << event->pos().y() << relpos.x() << relpos.y() << wid->width() << wid->height(); - if(wid && wid->tabAt(relpos) != -1){ - qDebug() << " - Mouse over tab"; - this->setCurrentIndex( wid->tabAt(relpos) ); - } -} diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.h deleted file mode 100644 index 8b03c489..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.h +++ /dev/null @@ -1,101 +0,0 @@ -//=========================================== -// Lumina-DE source code -// Copyright (c) 2014, Ken Moore -// Available under the 3-clause BSD license -// See the LICENSE file for full details -//=========================================== -// This panel plugin allows the user to quickly access user favorites and applications -//=========================================== -#ifndef _LUMINA_PANEL_USER_BUTTON_WIDGET_H -#define _LUMINA_PANEL_USER_BUTTON_WIDGET_H - -#include <QWidget> -#include <QString> -#include <QList> -#include <QHash> -#include <QVBoxLayout> -#include <QScrollArea> -#include <QDateTime> -#include <QTransform> -#include <QMouseEvent> -#include <QTabWidget> - -#include <LuminaXDG.h> -#include <LuminaOS.h> -#include "UserItemWidget.h" - -#define SSAVER QString("xscreensaver-demo") - -namespace Ui{ - class UserWidget; -}; - -class UserWidget : public QTabWidget{ - Q_OBJECT -public: - UserWidget(QWidget *parent=0); - ~UserWidget(); - -public slots: - void UpdateAll(); //for re-translation/icon changes - void UpdateMenu(bool forceall = false); //for item changes - -private: - Ui::UserWidget *ui; - QHash<QString, QList<XDGDesktop*> > *sysapps; - QDateTime lastUpdate, lastHomeUpdate; - QStringList favs; - QFileInfoList homefiles; - int cfav; //current favorite category - void ClearScrollArea(QScrollArea *area); - void SortScrollArea(QScrollArea *area); - QIcon rotateIcon(QIcon); - bool updatingfavs; - -private slots: - void LaunchItem(QString path, bool fix = true); - - //Favorites Tab - void FavChanged(); //for ensuring radio-button-like behaviour - void updateFavItems(bool newfilter = true); //if false, will only update if filesystem changes - - //Apps Tab - void updateAppCategories(); - void updateApps(); - - //Home Tab - void updateHome(); - void slotGoToDir(QString dir); - void slotGoHome(); - void slotOpenDir(); - void slotOpenSearch(); - - //Slots for the special buttons - void openStore(){ - LaunchItem(LOS::AppStoreShortcut()); - } - void openControlPanel(){ - LaunchItem(LOS::ControlPanelShortcut()); - } - void openDeskSettings(){ - LaunchItem("lumina-config", false); - } - void openScreenSaverConfig(){ - LaunchItem(SSAVER, false); - } - void openScreenConfig(){ - LaunchItem("lumina-xconfig",false); - } - void openLuminaInfo(){ - LaunchItem("lumina-info",false); - } - -protected: - void mouseMoveEvent( QMouseEvent *event); - -signals: - void CloseMenu(); - -}; - -#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.ui b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.ui deleted file mode 100644 index 9ef5af7e..00000000 --- a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/userbutton/UserWidget.ui +++ /dev/null @@ -1,593 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>UserWidget</class> - <widget class="QTabWidget" name="UserWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>294</width> - <height>289</height> - </rect> - </property> - <property name="windowTitle"> - <string>UserWidget</string> - </property> - <property name="tabPosition"> - <enum>QTabWidget::West</enum> - </property> - <property name="currentIndex"> - <number>0</number> - </property> - <widget class="QWidget" name="tab_fav"> - <attribute name="title"> - <string>Favorites</string> - </attribute> - <attribute name="toolTip"> - <string>Favorites</string> - </attribute> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>1</number> - </property> - <property name="topMargin"> - <number>1</number> - </property> - <property name="rightMargin"> - <number>1</number> - </property> - <property name="bottomMargin"> - <number>1</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QToolButton" name="tool_fav_apps"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="cursor"> - <cursorShape>ArrowCursor</cursorShape> - </property> - <property name="toolTip"> - <string>Favorite Applications</string> - </property> - <property name="text"> - <string>Applications</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_fav_dirs"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="toolTip"> - <string>Favorite Directories</string> - </property> - <property name="text"> - <string>Places</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_fav_files"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="toolTip"> - <string>Favorite FIles</string> - </property> - <property name="text"> - <string>Files</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QScrollArea" name="scroll_fav"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>259</width> - <height>247</height> - </rect> - </property> - </widget> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_apps"> - <attribute name="title"> - <string>Apps</string> - </attribute> - <attribute name="toolTip"> - <string>Applications</string> - </attribute> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>1</number> - </property> - <property name="topMargin"> - <number>1</number> - </property> - <property name="rightMargin"> - <number>1</number> - </property> - <property name="bottomMargin"> - <number>1</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QComboBox" name="combo_app_cats"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>30</height> - </size> - </property> - <property name="maxVisibleItems"> - <number>12</number> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QToolButton" name="tool_app_store"> - <property name="minimumSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="text"> - <string/> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QScrollArea" name="scroll_apps"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents_2"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>98</width> - <height>28</height> - </rect> - </property> - </widget> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_home"> - <attribute name="title"> - <string>Home</string> - </attribute> - <attribute name="toolTip"> - <string>Home Directory</string> - </attribute> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <property name="spacing"> - <number>2</number> - </property> - <property name="leftMargin"> - <number>1</number> - </property> - <property name="topMargin"> - <number>1</number> - </property> - <property name="rightMargin"> - <number>1</number> - </property> - <property name="bottomMargin"> - <number>1</number> - </property> - <item> - <layout class="QGridLayout" name="gridLayout"> - <property name="horizontalSpacing"> - <number>4</number> - </property> - <property name="verticalSpacing"> - <number>1</number> - </property> - <item row="0" column="3"> - <widget class="QToolButton" name="tool_home_search"> - <property name="toolTip"> - <string>Search this Directory</string> - </property> - <property name="text"> - <string notr="true"/> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QToolButton" name="tool_home_browse"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="toolTip"> - <string>Open Directory</string> - </property> - <property name="text"> - <string notr="true">Browse</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonIconOnly</enum> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QToolButton" name="tool_home_gohome"> - <property name="minimumSize"> - <size> - <width>30</width> - <height>30</height> - </size> - </property> - <property name="toolTip"> - <string>Go back to home directory</string> - </property> - <property name="text"> - <string notr="true">home</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="autoRaise"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_home_dir"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>30</height> - </size> - </property> - <property name="font"> - <font> - <pointsize>10</pointsize> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="frameShape"> - <enum>QFrame::NoFrame</enum> - </property> - <property name="text"> - <string notr="true"><current dir></string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - <property name="margin"> - <number>0</number> - </property> - <property name="indent"> - <number>0</number> - </property> - <property name="textInteractionFlags"> - <set>Qt::NoTextInteraction</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QScrollArea" name="scroll_home"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents_3"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>98</width> - <height>28</height> - </rect> - </property> - </widget> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_config"> - <attribute name="title"> - <string>Config</string> - </attribute> - <attribute name="toolTip"> - <string>Desktop Preferences</string> - </attribute> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="QToolButton" name="tool_controlpanel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Control Panel</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_desktopsettings"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Desktop Appearance/Plugins</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_config_screensettings"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Screen Configuration</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_config_screensaver"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Screensaver Settings</string> - </property> - <property name="iconSize"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>243</width> - <height>162</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_config_about"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>About the Lumina Desktop</string> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp index c3e9a1db..47f0e3d7 100644 --- a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp @@ -6,67 +6,105 @@ //=========================================== #include "ContextMenu.h" #include <global-objects.h> +#include <JsonMenu.h> void DesktopContextMenu::SettingsChanged(DesktopSettings::File file){ - if(file == DesktopSettings::ContextMenu){ UpdateMenu(); } + if(file == DesktopSettings::ContextMenu){ UpdateMenu(false); } } -void DesktopContextMenu::UpdateMenu(){ +void DesktopContextMenu::UpdateMenu(bool fast){ //Put a label at the top unsigned int num = Lumina::NWS->currentWorkspace(); workspaceLabel->setText( "<b>"+QString(tr("Workspace %1")).arg(QString::number(num+1))+"</b>"); + if(fast && usewinmenu){ updateWinMenu(); } + if(fast){ return; } //already done this->clear(); //clear it for refresh this->addAction(wkspaceact); this->addSeparator(); //Now load the user's menu setup and fill the menu - QStringList items = DesktopSettings::instance()->value(DesktopSettings::ContextMenu, "itemlist", QStringList()<< "terminal" << "filemanager" << "line" << "settings" <<"lockdesktop").toStringList(); - //usewinmenu=false; + QStringList items = DesktopSettings::instance()->value(DesktopSettings::ContextMenu, "itemlist", QStringList()<< "terminal" << "filemanager" << "line" << "applications" << "windowlist" << "settings" << "lockdesktop").toStringList(); + usewinmenu=false; for(int i=0; i<items.length(); i++){ - if(items[i]=="terminal"){ this->addAction(LXDG::findIcon("utilities-terminal",""), tr("Terminal"))->setWhatsThis("lumina-open -terminal"); } - else if(items[i]=="lockdesktop"){ this->addAction(LXDG::findIcon("system-lock-screen",""), tr("Lock Session"), this, SIGNAL(LockSession()) ); } - else if(items[i]=="filemanager"){ this->addAction( LXDG::findIcon("user-home",""), tr("Browse Files"))->setWhatsThis("lumina-open \""+QDir::homePath()+"\""); } - //else if(items[i]=="applications"){ this->addMenu( LSession::handle()->applicationMenu() ); } + if(items[i]=="terminal"){ + QAction *act = this->addAction( tr("Terminal")); + LIconCache::instance()->loadIcon(act, "utilities-terminal"); + act->setWhatsThis("--terminal"); + } + else if(items[i]=="lockdesktop"){ + QAction *act = this->addAction( tr("Lock Session"), this, SIGNAL(LockSession()) ); + LIconCache::instance()->loadIcon(act, "system-lock-screen"); + } + else if(items[i]=="filemanager"){ + QAction *act = this->addAction( tr("Browse Files")); + LIconCache::instance()->loadIcon(act, "user-home"); + act->setWhatsThis(QDir::homePath()); + } + else if(items[i]=="applications"){ + if(appMenu==0){ updateAppMenu(); } + this->addMenu( appMenu ); + } else if(items[i]=="line"){ this->addSeparator(); } //else if(items[i]=="settings"){ this->addMenu( LSession::handle()->settingsMenu() ); } - //else if(items[i]=="windowlist"){ this->addMenu( winMenu); usewinmenu=true;} - else if(items[i].startsWith("app::::") && items[i].endsWith(".desktop")){ + else if(items[i]=="windowlist"){ + if(winMenu==0){ updateWinMenu(); } + this->addMenu( winMenu); + usewinmenu=true; + }else if(items[i].startsWith("app::::") && items[i].endsWith(".desktop")){ //Custom *.desktop application QString file = items[i].section("::::",1,1).simplified(); - XDGDesktop xdgf(file);// = LXDG::loadDesktopFile(file, ok); - if(xdgf.type!=XDGDesktop::BAD){ - this->addAction( LXDG::findIcon(xdgf.icon,""), xdgf.name)->setWhatsThis("lumina-open \""+file+"\""); - }else{ - qDebug() << "Could not load application file:" << file; - } - }/*else if(items[i].startsWith("jsonmenu::::")){ + //Try to use the pre-loaded app entry for this + XDGDesktop *xdg = XDGDesktopList::instance()->findAppFile(file); + if(xdg!=0){ xdg->addToMenu(this); } + else{ + XDGDesktop xdgf(file);// = LXDG::loadDesktopFile(file, ok); + if(xdgf.type!=XDGDesktop::BAD){ xdgf.addToMenu(this); } + } + }else if(items[i].startsWith("jsonmenu::::")){ //Custom JSON menu system (populated on demand via external scripts/tools QStringList info = items[i].split("::::"); //FORMAT:[ "jsonmenu",exec,name, icon(optional)] if(info.length()>=3){ - qDebug() << "Custom JSON Menu Loaded:" << info; - JsonMenu *tmp = new JsonMenu(info[1], deskMenu); + //qDebug() << "Custom JSON Menu Loaded:" << info; + JsonMenu *tmp = new JsonMenu(info[1], this); tmp->setTitle(info[2]); connect(tmp, SIGNAL(triggered(QAction*)), this, SLOT(SystemApplication(QAction*)) ); if(info.length()>=4){ tmp->setIcon( LXDG::findIcon(info[3],"") ); } this->addMenu(tmp); } - }*/ + } } //Now add the system quit options this->addSeparator(); this->addAction(LXDG::findIcon("system-log-out",""), tr("Leave"), this, SIGNAL(showLeaveDialog()) ); } +// === PRIVATE === +void DesktopContextMenu::AddWindowToMenu(NativeWindow *win){ + QString label = win->property(NativeWindow::ShortTitle).toString(); + if(label.isEmpty()){ label = win->property(NativeWindow::Title).toString(); } + if(label.isEmpty()){ label = win->property(NativeWindow::Name).toString(); } + QAction *tmp = winMenu->addAction( win->property(NativeWindow::Icon).value<QIcon>(), label, win, SLOT(toggleVisibility()) ); + //Need to change the visual somehow to indicate whether it is visible or not + //bool visible = win->property(NativeWindow::Visible).toBool(); + // TODO +} + // === PUBLIC === DesktopContextMenu::DesktopContextMenu(QWidget *parent) : QMenu(parent){ if(parent!=0){ parent->setContextMenuPolicy(Qt::CustomContextMenu); connect(parent, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showMenu(const QPoint&)) ); } + appMenu = 0; + winMenu = 0; + usewinmenu = false; workspaceLabel = new QLabel(0); + workspaceLabel->setAlignment(Qt::AlignCenter); wkspaceact = new QWidgetAction(0); wkspaceact->setDefaultWidget(workspaceLabel); connect(this, SIGNAL(triggered(QAction*)), this, SLOT(LaunchAction(QAction*)) ); - + //Connect to a couple global objects + connect(this, SIGNAL(aboutToShow()), this, SLOT(UpdateMenu()) ); //this will do a "fast" update + qDebug() << "Done Creating Context Menu"; } DesktopContextMenu::~DesktopContextMenu(){ @@ -78,9 +116,9 @@ DesktopContextMenu::~DesktopContextMenu(){ void DesktopContextMenu::start(){ connect(DesktopSettings::instance(), SIGNAL(FileModified(DesktopSettings::File)), this, SLOT(SettingsChanged(DesktopSettings::File)) ); connect(this, SIGNAL(LockSession()), Lumina::SS, SLOT(LockScreenNow()) ); - + connect(XDGDesktopList::instance(), SIGNAL(appsUpdated()), this, SLOT(updateAppMenu()) ); + UpdateMenu(false); //Still need to connect to some "workspaceChanged(int)" signal - QTimer::singleShot(0, this, SLOT(UpdateMenu()) ); //initial update } // === PRIVATE SLOTS === @@ -89,9 +127,63 @@ void DesktopContextMenu::LaunchAction(QAction *act){ if(act->whatsThis().isEmpty() || act->parent()!=this ){ return; } qDebug() << "Launch Menu Action:" << act->whatsThis(); QString cmd = act->whatsThis(); - ExternalProcess::launch(cmd); + if(cmd.startsWith("-action ")){ + LaunchApp(act); //forward this to the XDGDesktop parser + }else if(cmd.startsWith("--") || cmd.endsWith(".desktop")){ + LSession::instance()->LaunchStandardApplication(cmd); + }else if(QFile::exists(cmd)){ + QString mime = XDGMime::fromFileName(cmd); + LSession::instance()->LaunchStandardApplication(mime, QStringList() << cmd); + } +} + +void DesktopContextMenu::LaunchApp(QAction *act){ + + // The "whatsThis() field is set by the XDGDesktop object/format + if(act->whatsThis().isEmpty()){ return; } + QString action, file; + QString wt = act->whatsThis(); + if(wt.startsWith("-action")){ + action = wt.section(" ",1,1); action=action.remove("\""); + file = wt.section(" ",2,-1); file=file.remove("\""); + } + else{ file = wt; } + LSession::instance()->LaunchDesktopApplication(file, action); + } void DesktopContextMenu::showMenu(const QPoint &pt){ this->popup(pt); } + +void DesktopContextMenu::updateAppMenu(){ + //qDebug() << "Update App Menu"; + if(appMenu==0){ + appMenu = new QMenu(this); + appMenu->setTitle( tr("Applications")); + LIconCache::instance()->loadIcon( appMenu, "system-run"); + connect(appMenu, SIGNAL(triggered(QAction*)), this, SLOT(LaunchApp(QAction*)) ); + } + //qDebug() << "Populate App Menu"; + XDGDesktopList::instance()->populateMenu(appMenu); +} + +void DesktopContextMenu::updateWinMenu(){ + //qDebug() << "Update Win Menu"; + if(winMenu==0){ + winMenu = new QMenu(this); + winMenu->setTitle( tr("Task Manager") ); + LIconCache::instance()->loadIcon( winMenu, "preferences-system-windows"); + } + winMenu->clear(); + QList<NativeWindow*> wins = Lumina::NWS->currentWindows(); + unsigned int wkspace = Lumina::NWS->currentWorkspace(); + for(int i=0; i<wins.length(); i++){ + //First check if this window is in the current workspace (or is "sticky") + if(wins.at(i)->property(NativeWindow::Workspace).toUInt() != wkspace + && wins.at(i)->property(NativeWindow::States).value< QList<NativeWindow::State> >().contains(NativeWindow::S_STICKY) ){ + continue; + } + AddWindowToMenu(wins.at(i)); + } +} diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h index 7fd21967..78756e8c 100644 --- a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h @@ -13,11 +13,15 @@ class DesktopContextMenu : public QMenu{ Q_OBJECT public slots: void SettingsChanged(DesktopSettings::File); - void UpdateMenu(); //re-create the menu + void UpdateMenu(bool fast = true); //re-create the menu private: QLabel *workspaceLabel; QWidgetAction *wkspaceact; + QMenu *appMenu, *winMenu; + bool usewinmenu; + + void AddWindowToMenu(NativeWindow*); public: DesktopContextMenu(QWidget *parent = 0); @@ -27,8 +31,13 @@ public: private slots: void LaunchAction(QAction *act); + void LaunchApp(QAction *act); + void showMenu(const QPoint&); + void updateAppMenu(); + void updateWinMenu(); + signals: void LockSession(); void showLeaveDialog(); diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/RootWindow.cpp b/src-qt5/core/lumina-desktop-unified/src-desktop/RootWindow.cpp new file mode 100644 index 00000000..0cfa4e6b --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/RootWindow.cpp @@ -0,0 +1,44 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "RootWindow.h" + +RootWindow::RootWindow() : QObject(){ + root_win = QWindow::fromWinId( QX11Info::appRootWindow() ); // + root_view = new QQuickView(root_win); //make it a child of the root window + root_obj = RootDesktopObject::instance(); + syncRootSize(); + connect(root_win, SIGNAL(widthChanged(int)), this, SLOT(syncRootSize()) ); + connect(root_win, SIGNAL(heightChanged(int)),this, SLOT(syncRootSize()) ); + //Now setup the QQuickView + root_view->setResizeMode(QQuickView::SizeRootObjectToView); + root_view->engine()->rootContext()->setContextProperty("RootObject", root_obj); + RootDesktopObject::RegisterType(); //make sure object classes are registered with the QML subsystems +} + +RootWindow::~RootWindow(){ + root_view->deleteLater(); + root_obj->deleteLater(); +} + +void RootWindow::start(){ + root_view->setSource(QUrl("qrc:///qml/RootDesktop.qml")); + root_win->show(); + root_view->show(); +} + +void RootWindow::syncRootSize(){ + //qDebug() << "Sync Root Size:" << root_win->width() << root_win->height() << root_view->geometry(); + QList<QScreen*> screens = QApplication::screens(); + QRect unif; + for(int i=0; i<screens.length(); i++){ unif = unif.united(screens[i]->geometry()); } + if(unif.width() != root_view->width() || unif.height() != root_view->height()){ + root_view->setGeometry(0, 0, unif.width(), unif.height() ); + emit RootResized(root_view->geometry()); + } + root_obj->updateScreens(); + //qDebug() << " - after:" << root_view->geometry(); +} diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/RootWindow.h b/src-qt5/core/lumina-desktop-unified/src-desktop/RootWindow.h new file mode 100644 index 00000000..ba489465 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/RootWindow.h @@ -0,0 +1,34 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#ifndef _LUMINA_DESKTOP_ROOT_WINDOW_H +#define _LUMINA_DESKTOP_ROOT_WINDOW_H +#include <global-includes.h> + +class RootWindow : public QObject{ + Q_OBJECT +private: + QWindow *root_win; + QQuickView *root_view; + RootDesktopObject *root_obj; + +public: + RootWindow(); + ~RootWindow(); + + void start(); + +public slots: + void syncRootSize(); + +signals: + void startLogout(); + void RegisterVirtualRoot(WId); + void RootResized(QRect); + void MouseMoved(); +}; + +#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/desktop.pri b/src-qt5/core/lumina-desktop-unified/src-desktop/desktop.pri index 75aef8a6..e4c4faeb 100644 --- a/src-qt5/core/lumina-desktop-unified/src-desktop/desktop.pri +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/desktop.pri @@ -1,6 +1,11 @@ -SOURCES *= $${PWD}/ContextMenu.cpp +QT *= gui widgets qml quick -HEADERS *= $${PWD}/ContextMenu.h +SOURCES *= $${PWD}/RootWindow.cpp + +HEADERS *= $${PWD}/RootWindow.h #update the includepath so we can just #include as needed without paths -INCLUDEPATH *= ${PWD} +INCLUDEPATH *= $${PWD} + +include($${PWD}/src-cpp/src-cpp.pri) +include($${PWD}/src-qml/src-qml.pri) diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp new file mode 100644 index 00000000..60cf56c3 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.cpp @@ -0,0 +1,88 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "RootDesktopObject.h" +#include <QQmlEngine> +#include <QApplication> +#include <QScreen> + +#include <QDebug> + +// === PUBLIC === +RootDesktopObject::RootDesktopObject(QObject *parent) : QObject(parent){ + updateScreens(); //make sure the internal list is updated right away +} + +RootDesktopObject::~RootDesktopObject(){ + +} + +void RootDesktopObject::RegisterType(){ + qmlRegisterType<RootDesktopObject>("Lumina.Backend.RootDesktopObject", 2, 0, "RootDesktopObject"); + //Also register any types that are needed by this class + ScreenObject::RegisterType(); +} + +RootDesktopObject* RootDesktopObject::instance(){ + static RootDesktopObject* r_obj = new RootDesktopObject(); + return r_obj; +} + +//QML Read Functions +QStringList RootDesktopObject::screens(){ + qDebug() << "Request Screens:" << s_objects.length(); + QStringList names; + for(int i=0; i<s_objects.length(); i++){ names << s_objects[i]->name(); } + return names; +} + +ScreenObject* RootDesktopObject::screen(QString id){ + qDebug() << "Got Screen Request:" << id; + for(int i=0; i<s_objects.length(); i++){ + if(s_objects[i]->name()==id){ return s_objects[i]; } + } + return 0; +} + +void RootDesktopObject::logout(){ + emit startLogout(); +} + +void RootDesktopObject::lockscreen(){ + emit lockScreen(); +} + +void RootDesktopObject::mousePositionChanged(){ + emit mouseMoved(); +} + +// === PUBLIC SLOTS === +void RootDesktopObject::updateScreens(){ + QList<QScreen*> scrns = QApplication::screens(); + QList<ScreenObject*> tmp; //copy of the internal array initially + for(int i=0; i<scrns.length(); i++){ + bool found = false; + for(int j=0; j<s_objects.length() && !found; j++){ + if(s_objects[j]->name()==scrns[i]->name()){ found = true; tmp << s_objects.takeAt(j); } + } + if(!found){ tmp << new ScreenObject(scrns[i], this); } + } + //Delete any leftover objects + for(int i=0; i<s_objects.length(); i++){ s_objects[i]->deleteLater(); } + s_objects = tmp; + emit screensChanged(); + for(int i=0; i<s_objects.length(); i++){ + s_objects[i]->emit geomChanged(); + } +} + +void RootDesktopObject::ChangeWallpaper(QString screen, QString value){ + for(int i=0; i<s_objects.length(); i++){ + if(s_objects[i]->name()==screen){ s_objects[i]->setBackground(value); break; } + } +} + +// === PRIVATE === diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h new file mode 100644 index 00000000..ba586701 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/RootDesktopObject.h @@ -0,0 +1,55 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is the base C++ object that is used to pass information to the QML "RootDesktop" object +//=========================================== +#ifndef _LUMINA_DESKTOP_QML_BACKEND_ROOT_DESKTOP_OBJECT_H +#define _LUMINA_DESKTOP_QML_BACKEND_ROOT_DESKTOP_OBJECT_H +#include <QObject> +#include <QList> + +#include "ScreenObject.h" + +class RootDesktopObject : public QObject{ + Q_OBJECT + //Define all the QML Properties here (interface between QML and the C++ methods below) + Q_PROPERTY( QStringList screens READ screens NOTIFY screensChanged) + +public: + //main contructor/destructor + RootDesktopObject(QObject *parent = 0); + ~RootDesktopObject(); + + static void RegisterType(); + + //primary interface to fetch the current instance of the class (so only one is running at any given time) + static RootDesktopObject* instance(); + + //QML Read Functions + QStringList screens(); + Q_INVOKABLE ScreenObject* screen(QString id); + + //QML Access Functions + Q_INVOKABLE void logout(); + Q_INVOKABLE void lockscreen(); + Q_INVOKABLE void mousePositionChanged(); +private: + QList<ScreenObject*> s_objects; + +public slots: + void updateScreens(); //rescan/update screen objects + void ChangeWallpaper(QString screen, QString); + +private slots: + +signals: + void screensChanged(); + void startLogout(); + void mouseMoved(); + void lockScreen(); + +}; +#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/ScreenObject.cpp b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/ScreenObject.cpp new file mode 100644 index 00000000..4c1d6189 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/ScreenObject.cpp @@ -0,0 +1,31 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "ScreenObject.h" +#include <QQmlEngine> +#include <QDebug> + +ScreenObject::ScreenObject(QScreen *scrn, QObject *parent) : QObject(parent){ + bg_screen = scrn; +} + +void ScreenObject::RegisterType(){ + qmlRegisterType<ScreenObject>("Lumina.Backend.ScreenObject",2,0, "ScreenObject"); +} + +QString ScreenObject::name(){ return bg_screen->name(); } +QString ScreenObject::background(){ qDebug() << "Got Background:" << bg_screen->name() << bg << bg_screen->geometry(); return bg; } +int ScreenObject::x(){ return bg_screen->geometry().x(); } +int ScreenObject::y(){ return bg_screen->geometry().y(); } +int ScreenObject::width(){ return bg_screen->geometry().width(); } +int ScreenObject::height(){ return bg_screen->geometry().height(); } + +void ScreenObject::setBackground(QString fileOrColor){ + if(bg!=fileOrColor){ + bg = fileOrColor; + emit backgroundChanged(); + } +} diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/ScreenObject.h b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/ScreenObject.h new file mode 100644 index 00000000..8076f1ae --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/ScreenObject.h @@ -0,0 +1,48 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is the base C++ object that is used to pass Screen/Wallpaper info to the QML classes +//=========================================== +#ifndef _LUMINA_DESKTOP_SCREEN_DESKTOP_OBJECT_H +#define _LUMINA_DESKTOP_SCREEN_DESKTOP_OBJECT_H +#include <QObject> +#include <QString> +#include <QScreen> + +class ScreenObject : public QObject { + Q_OBJECT + Q_PROPERTY( QString name READ name ) + Q_PROPERTY( QString background READ background NOTIFY backgroundChanged) + Q_PROPERTY( int x READ x NOTIFY geomChanged) + Q_PROPERTY( int y READ y NOTIFY geomChanged) + Q_PROPERTY( int width READ width NOTIFY geomChanged) + Q_PROPERTY( int height READ height NOTIFY geomChanged) + +private: + QScreen *bg_screen; + QString bg; + +public: + ScreenObject(QScreen *scrn = 0, QObject *parent = 0); + + static void RegisterType(); + + Q_INVOKABLE QString name(); + Q_INVOKABLE QString background(); + Q_INVOKABLE int x(); + Q_INVOKABLE int y(); + Q_INVOKABLE int width(); + Q_INVOKABLE int height(); + +public slots: + void setBackground(QString fileOrColor); + +signals: + void backgroundChanged(); + void geomChanged(); +}; + +#endif diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/src-cpp.pri b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/src-cpp.pri new file mode 100644 index 00000000..33b699da --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-cpp/src-cpp.pri @@ -0,0 +1,8 @@ +SOURCES *= $${PWD}/RootDesktopObject.cpp \ + $${PWD}/ScreenObject.cpp + +HEADERS *= $${PWD}/RootDesktopObject.h \ + $${PWD}/ScreenObject.h + +INCLUDEPATH *= $${PWD} + diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/ContextMenu.qml b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/ContextMenu.qml new file mode 100644 index 00000000..4ab8e156 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/ContextMenu.qml @@ -0,0 +1,30 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +import QtQuick 2.2 +import QtQuick.Window 2.2 +import QtQuick.Controls 1 + +import Lumina.Backend.RootDesktopObject 2.0 + +Menu { + id: contextMenu + MenuItem { + text: "Lock Screen" + iconName: "system-lock-screen" + onTriggered: { + RootObject.lockscreen() + } + } + + MenuItem { + text: "Logout" + iconName: "system-log-out" + onTriggered: { + RootObject.logout() + } + } + } diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/RootDesktop.qml b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/RootDesktop.qml new file mode 100644 index 00000000..e0381e23 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/RootDesktop.qml @@ -0,0 +1,57 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is the base QML script the launches/controls the desktop interface itself +//=========================================== +// NOTE: This needs to be paired/used with the corresponding C++ class: RootDesktopObject +// Which should be added as the "RootObject" context property to the QML engine +//------------------ +// Example Code: +// RootDesktopObject *rootobj = new RootDesktopObject(); +// QQuickView *root = new QQuickView(); +// root->setResizeMode(QQuickView::SizeRootObjectToView); +// root->engine()->rootContext()->setContextProperty("RootObject", rootobj); +//=========================================== +import QtQuick 2.2 +import QtQuick.Window 2.2 +import QtQuick.Controls 1 + +import "." as QML + +import Lumina.Backend.RootDesktopObject 2.0 +import Lumina.Backend.ScreenObject 2.0 + +Rectangle { + id: rootCanvas + color: "black" + + //Setup the right-click context menu + MouseArea { + anchors.fill: rootCanvas + acceptedButtons: Qt.RightButton + onClicked: { + /*contextMenu.x = mouseX + contextMenu.y = mouseY + contextMenu.open() */ + contextMenu.popup() + } + onPositionChanged: { + RootObject.mousePositionChanged() + } + } + + //Create the context menu itself + QML.ContextMenu { id: contextMenu } + + //Setup the wallpapers + Repeater{ + model: RootObject.screens + QML.WallpaperImage{ + screen_id: modelData + z: 0+index + } + } +} diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/WallpaperImage.qml b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/WallpaperImage.qml new file mode 100644 index 00000000..1b44963f --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/WallpaperImage.qml @@ -0,0 +1,26 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +import QtQuick 2.2 +import QtQuick.Window 2.2 +import QtQuick.Controls 1 + +import Lumina.Backend.ScreenObject 2.0 + +AnimatedImage { + //C++ backend object + property string screen_id + property ScreenObject object: RootObject.screen(screen_id) + + //Normal geometries/placements + asynchronous: true + clip: true + source: object.background + x: object.x + y: object.y + width: object.width + height: object.height + } diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/src-qml.pri b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/src-qml.pri new file mode 100644 index 00000000..fed18e02 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/src-qml.pri @@ -0,0 +1,8 @@ +#Show the QML files to lupdate for translation purposes - not for the actual build +lupdate_only{ + SOURCES *= $${PWD}/RootDesktop.qml \ + $${PWD}/ContextMenu.qml \ + $${PWD}/WallpaperImage.qml +} + +RESOURCES *= $${PWD}/src-qml.qrc diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/src-qml.qrc b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/src-qml.qrc new file mode 100644 index 00000000..ebdcc606 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-desktop/src-qml/src-qml.qrc @@ -0,0 +1,7 @@ +<RCC> + <qresource prefix="qml"> + <file>RootDesktop.qml</file> + <file>ContextMenu.qml</file> + <file>WallpaperImage.qml</file> + </qresource> +</RCC> diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.cpp index 0ff70142..2cfd0f4a 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LLockScreen.cpp @@ -77,7 +77,19 @@ void LLockScreen::TryUnlock(){ this->setEnabled(false); QString pass = ui->line_password->text(); ui->line_password->clear(); - bool ok = (LUtils::runCmd("lumina-checkpass", QStringList() << pass) == 0); + //Create a temporary file for the password, then pass that file descriptor to lumina-checkpass + QTemporaryFile *TF = new QTemporaryFile(".XXXXXXXXXX"); + TF->setAutoRemove(true); + bool ok = false; + if( TF->open() ){ + QTextStream in(TF); + in << pass.toUtf8()+"\0"; //make sure it is null-terminated + TF->close(); + //qDebug() << "Trying to unlock session:" << TF->fileName() << LUtils::readFile(TF->fileName()); + //qDebug() << "UserName:" << getlogin(); + LUtils::runCommand(ok, "lumina-checkpass",QStringList() << "-f" << TF->fileName() ); + } + delete TF; //ensure the temporary file is removed **right now** for security purposes if(ok){ emit ScreenUnlocked(); this->setEnabled(true); diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.cpp index 39a7b596..a0edde9f 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.cpp @@ -8,7 +8,7 @@ #include <QScreen> #include <QApplication> -#define DEBUG 1 +#define DEBUG 0 LScreenSaver::LScreenSaver() : QWidget(0,Qt::BypassWindowManagerHint | Qt::WindowStaysOnTopHint){ starttimer = new QTimer(this); @@ -20,7 +20,6 @@ LScreenSaver::LScreenSaver() : QWidget(0,Qt::BypassWindowManagerHint | Qt::Windo LOCKER = new LLockScreen(this); LOCKER->hide(); - settings = new QSettings("lumina-desktop","lumina-screensaver",this); SSRunning = SSLocked = updating = false; this->setObjectName("LSCREENSAVERBASE"); this->setStyleSheet("LScreenSaver#LSCREENSAVERBASE{ background: grey; }"); @@ -60,10 +59,9 @@ void LScreenSaver::start(){ } void LScreenSaver::reloadSettings(){ - settings->sync(); - starttimer->setInterval( settings->value("timedelaymin",10).toInt() * 60000 ); - locktimer->setInterval( settings->value("lockdelaymin",1).toInt() * 60000 ); - hidetimer->setInterval( settings->value("hidesecs",15).toInt() * 1000 ); + starttimer->setInterval( DesktopSettings::instance()->value(DesktopSettings::ScreenSaver, "timedelaymin",10).toInt() * 60000 ); + locktimer->setInterval( DesktopSettings::instance()->value(DesktopSettings::ScreenSaver, "lockdelaymin",1).toInt() * 60000 ); + hidetimer->setInterval( DesktopSettings::instance()->value(DesktopSettings::ScreenSaver, "hidesecs",15).toInt() * 1000 ); } void LScreenSaver::newInputEvent(){ @@ -107,12 +105,14 @@ void LScreenSaver::ShowScreenSaver(){ for(int i=0; i<SCREENS.length(); i++){ bounds = bounds.united(SCREENS[i]->geometry()); if(DEBUG){ qDebug() << " - New SS Base:" << i; } - BASES << new SSBaseWidget(this, settings); + BASES << new SSBaseWidget(this); connect(BASES[i], SIGNAL(InputDetected()), this, SLOT(newInputEvent()) ); - + //Setup the geometry of the base to match the screen BASES[i]->setGeometry(SCREENS[i]->geometry()); //match this screen geometry - BASES[i]->setPlugin(settings->value("screenplugin"+QString::number(i+1), settings->value("defaultscreenplugin","random").toString() ).toString() ); + QString plug = DesktopSettings::instance()->value(DesktopSettings::ScreenSaver, "plugin_"+SCREENS[i]->name(), "").toString(); + if(plug.isEmpty()){ plug = DesktopSettings::instance()->value(DesktopSettings::ScreenSaver, "default_plugin","random").toString(); } + BASES[i]->setPlugin(plug); } //Now set the overall parent widget geometry and show everything this->setGeometry(bounds); //overall background widget @@ -151,7 +151,7 @@ void LScreenSaver::HideScreenSaver(){ emit ClosingScreenSaver(); emit LockStatusChanged(false); } - qDebug() << "Stop ScreenSavers"; + if(DEBUG){ qDebug() << "Stop ScreenSavers"; } for(int i=0; i<BASES.length(); i++){ BASES[i]->stopPainting(); BASES[i]->hide(); diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.h index 18f12fab..2276fb6d 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/LScreenSaver.h @@ -22,7 +22,6 @@ public: private: QTimer *starttimer, *locktimer, *hidetimer; - QSettings *settings; QList<SSBaseWidget*> BASES; LLockScreen *LOCKER; int cBright; diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp index 7854b597..7c098887 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp @@ -7,78 +7,55 @@ #include "SSBaseWidget.h" -#define DEBUG 1 +#define DEBUG 0 -static QStringList validPlugs; // ======== // PUBLIC // ======== -SSBaseWidget::SSBaseWidget(QWidget *parent, QSettings *set) : QWidget(parent){ - if(validPlugs.isEmpty()){ validPlugs << "none"; } //add more later - settings = set; //needed to pass along for plugins to read any special options/settings +SSBaseWidget::SSBaseWidget(QWidget *parent) : QQuickView(parent->windowHandle()){ this->setObjectName("LuminaBaseSSWidget"); - ANIM = 0; - this->setMouseTracking(true); + this->setResizeMode(QQuickView::SizeRootObjectToView); + this->setColor(QColor("black")); //default color for the view + this->setCursor(Qt::BlankCursor); plugType="none"; + restartTimer = new QTimer(this); + restartTimer->setInterval( DesktopSettings::instance()->value(DesktopSettings::ScreenSaver, "globals/plugin_time_seconds", 120).toInt() * 1000); + restartTimer->setSingleShot(true); + connect(restartTimer, SIGNAL(timeout()), this, SLOT(startPainting()) ); } SSBaseWidget::~SSBaseWidget(){ - if(ANIM!=0){ this->stopPainting(); } } void SSBaseWidget::setPlugin(QString plug){ - plug = plug.toLower(); - if(validPlugs.contains(plug) || plug=="random"){ plugType = plug; } - else{ plugType = "none"; } + plugType = plug.toLower(); } // ============= // PUBLIC SLOTS // ============= void SSBaseWidget::startPainting(){ - cplug = plugType; //free up any old animation instance - if(ANIM!=0){ - stopPainting(); - } + stopPainting(); //If a random plugin - grab one of the known plugins - if(cplug=="random"){ - QStringList valid = BaseAnimGroup::KnownAnimations(); - valid.removeAll("none"); //they want a screensaver - remove the "none" option from the valid list - if(valid.isEmpty()){ cplug = "none"; } //no known plugins - else{ cplug = valid[ qrand()%valid.length() ]; } //grab a random plugin - } - if(DEBUG){ qDebug() << " - Screen Saver:" << cplug; } - //Now list all the various plugins and start them appropriately - QString style; - if(cplug=="none"){ - style = "background: black;"; //show the underlying black parent widget - }else{ - style = "background: black;"; + if(plugType=="random"){ + QList<SSPlugin> valid = SSPluginSystem::findAllPlugins(); + if(!valid.isEmpty()){ cplug = valid[ qrand()%valid.length() ]; } //grab a random plugin + }else if(plugType!="none"){ + cplug = SSPluginSystem::findPlugin(plugType); } - this->setStyleSheet("QWidget#LuminaBaseSSWidget{ "+style+"}"); - this->repaint(); - //If not a stylesheet-based plugin - set it here - if(cplug!="none"){ - ANIM = BaseAnimGroup::NewAnimation(cplug, this, settings); - connect(ANIM, SIGNAL(finished()), this, SLOT(startPainting()) ); //repeat the plugin as needed - ANIM->LoadAnimations(); - } - //Now start the animation(s) - if(ANIM!=0){ - if(ANIM->animationCount()>0){ - if(DEBUG){ qDebug() << " - Starting SS Plugin:" << cplug << ANIM->animationCount() << ANIM->duration() << ANIM->loopCount(); } - ANIM->start(); - } + if(DEBUG){ qDebug() << " - Screen Saver:" << plugType << cplug.scriptURL() << cplug.isValid(); } + if(cplug.isValid()){ + this->setSource( cplug.scriptURL() ); + if(plugType=="random"){ restartTimer->start(); } } + } void SSBaseWidget::stopPainting(){ - if(ANIM!=0){ - qDebug() << "Stopping Animation!!"; - ANIM->stop(); - //ANIM->clear(); - ANIM->deleteLater(); - ANIM = 0; + if(!this->source().isEmpty()){ + this->setSource(QUrl()); + cplug = SSPlugin(); //empty structure } + if(restartTimer->isActive()){ restartTimer->stop(); } } diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.h index 9d987178..72e02702 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.h @@ -10,12 +10,12 @@ #define _LUMINA_DESKTOP_SCREEN_SAVER_BASE_WIDGET_H #include "global-includes.h" -#include "animations/BaseAnimGroup.h" +#include <plugins-screensaver.h> -class SSBaseWidget : public QWidget{ +class SSBaseWidget : public QQuickView{ Q_OBJECT public: - SSBaseWidget(QWidget *parent, QSettings *set); + SSBaseWidget(QWidget *parent); ~SSBaseWidget(); void setPlugin(QString); @@ -25,9 +25,9 @@ public slots: void stopPainting(); private: - QString plugType, cplug; //type of custom painting to do - BaseAnimGroup *ANIM; - QSettings *settings; + QString plugType; + SSPlugin cplug; + QTimer *restartTimer; private slots: @@ -43,12 +43,6 @@ protected: ev->accept(); emit InputDetected(); } - void paintEvent(QPaintEvent*){ - QStyleOption opt; - opt.init(this); - QPainter p(this); - style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); - } }; 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 c8a248c0..9b095fe4 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 @@ -15,27 +15,37 @@ #include "ImageSlideshow.h" #include "VideoSlideshow.h" + +QVariant BaseAnimGroup::readSetting(QString variable, QVariant defaultvalue){ + return DesktopSettings::instance()->value(DesktopSettings::ScreenSaver, + "Animations/"+animPlugin+"/"+variable, defaultvalue); +} + //============================== // PLUGIN LOADING/LISTING //============================== -BaseAnimGroup* BaseAnimGroup::NewAnimation(QString type, QWidget *parent, QSettings *set){ +BaseAnimGroup* BaseAnimGroup::NewAnimation(QString type, QWidget *parent){ //This is where we place all the known plugin ID's, and load the associated subclass + BaseAnimGroup *anim = 0; if(type=="fireflies"){ - return (new FirefliesAnimation(parent,set)); + anim = new FirefliesAnimation(parent); }else if(type == "grav") { - return (new GravAnimation(parent, set)); + anim = new GravAnimation(parent); }else if(type == "text") { - return (new TextAnimation(parent, set)); + anim = new TextAnimation(parent); }else if(type == "imageSlideshow") { - return (new ImageAnimation(parent, set)); + anim = new ImageAnimation(parent); }else if(type == "videoSlideshow") { - return (new VideoAnimation(parent, set)); + anim = new VideoAnimation(parent); }else { //Unknown screensaver, return a blank animation group - return (new BaseAnimGroup(parent, set)); + anim = new BaseAnimGroup(parent); } + //tag the animation with the type it is and return it + if(anim!=0){ anim->animPlugin = type; } + return anim; } QStringList BaseAnimGroup::KnownAnimations(){ - return (QStringList() << "imageSlideshow" /*<< "grav" << "text" << "imageSlideshow" << "fireflies"*/); + return (QStringList() << "none" << "grav" << "text" << "imageSlideshow" << "videoSlideshow" << "fireflies"); } diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.h index b1324e78..92e038ed 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/BaseAnimGroup.h @@ -16,21 +16,23 @@ class BaseAnimGroup : public QParallelAnimationGroup{ Q_OBJECT public: QWidget *canvas; - QSettings *settings; + QString animPlugin; virtual void LoadAnimations(){} //This is the main function which needs to be subclassed - BaseAnimGroup(QWidget *parent, QSettings *set){ + BaseAnimGroup(QWidget *parent){ canvas = parent; - settings = set; canvas->setCursor( QCursor(Qt::BlankCursor) ); } ~BaseAnimGroup(){} + QVariant readSetting(QString variable, QVariant defaultvalue = QVariant()); + + //============================== // PLUGIN LOADING/LISTING (Change in the .cpp file) //============================== - static BaseAnimGroup* NewAnimation(QString type, QWidget *parent, QSettings *set); + static BaseAnimGroup* NewAnimation(QString type, QWidget *parent); static QStringList KnownAnimations(); }; diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Fireflies.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Fireflies.h index 75dfb1ae..dfc12e79 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Fireflies.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/Fireflies.h @@ -12,6 +12,7 @@ #include "global-includes.h" #include "BaseAnimGroup.h" #include <QSequentialAnimationGroup> +#include <QGraphicsOpacityEffect> class Firefly : public QSequentialAnimationGroup{ Q_OBJECT @@ -34,9 +35,12 @@ private slots: movement->setEndValue(pt); movement->setDuration( qrand() %500 + 1000); //between 1000->1500 ms animations for movements //Adjust the flash duration/size a bit - flash->setDuration(qrand() %300 + 700); //700-1000 ms - int sz = qrand()%4 + 6; //6-10 pixel square + flash->setDuration(qrand() %200 + 500); //500-700 ms + int sz = qrand()%4 + 4; //6-10 pixel square + //flash->setKeyValueAt(0.5, (qrand()%50) /100.0); + //fly->resize(sz,sz); flash->setKeyValueAt(0.5, QSize(sz,sz)); //half-way point for the flash + fly->show(); } void stopped(){ fly->hide(); } @@ -46,24 +50,41 @@ public: fly = new QWidget(parent); range = parent->size(); maxX = range.width()/4; maxY = range.height()/4; - fly->setStyleSheet("background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 rgba(215, 215, 143, 255), stop:0.83871 rgba(221, 235, 64, 140), stop:0.99 rgba(0, 0, 0, 255), stop:1 transparent);"); + QString B = QString::number(qrand()%70); + QString RY = QString::number(qrand()%200+50); + QString style = "background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 rgba(245, 245, 143, 200), stop:0.83871 rgba(%1, %1, %2, 140), stop:0.99 rgba(0, 0, 0, 255), stop:1 transparent);"; + fly->setStyleSheet(style.arg(RY, B) ); //setup the movement animation movement = new QPropertyAnimation(fly); movement->setTargetObject(fly); movement->setPropertyName("pos"); movement->setEndValue( QPoint( qrand() % range.width(), qrand()%range.height()) ); //on anim start, this will become the starting point //setup the flashing animation - flash = new QPropertyAnimation(fly); + /*QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(parent); + fly->setGraphicsEffect(eff); + flash = new QPropertyAnimation(eff, "opacity");*/ + flash = new QPropertyAnimation(this); flash->setTargetObject(fly); flash->setPropertyName("size"); - flash->setStartValue(QSize(2,2)); + flash->setStartValue(QSize(0,0)); flash->setEndValue(flash->startValue()); + //fly->setProperty("opacity",0); + //flash->setPropertyName("opacity"); + //flash->setStartValue(0); + //flash->setEndValue(0); //now setup the order of the animations this->setLoopCount(100); //do this 100 times - this->addAnimation(movement); - this->addAnimation(flash); + //Roughly half the number of fireflies with start with movement/flash + if(qrand()%2 == 1){ + this->addAnimation(movement); + this->addAnimation(flash); + }else{ + this->addAnimation(flash); + this->addAnimation(movement); + } //Start up this firefly LoopChanged(); //load initial values + fly->setGeometry( QRect(movement->startValue().toPoint(), flash->startValue().toSize()) ); connect(this, SIGNAL(currentLoopChanged(int)), this, SLOT(LoopChanged()) ); connect(this, SIGNAL(finished()), this, SLOT(stopped()) ); @@ -78,7 +99,7 @@ private: QList<Firefly*> fireflies; public: - FirefliesAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + FirefliesAnimation(QWidget *parent) : BaseAnimGroup(parent){} ~FirefliesAnimation(){ this->stop(); //while(fireflies.length()>0){ fireflies.takeAt(0)->deleteLater(); } @@ -87,14 +108,14 @@ public: void LoadAnimations(){ while(fireflies.length()>0){ fireflies.takeAt(0)->deleteLater(); } canvas->setStyleSheet("background: black;"); - int number = settings->value("fireflies/number",100).toInt(); + int number = readSetting("number",qrand()%30 + 50).toInt(); for(int i=0; i<number; i++){ if(fireflies.length()>number){ continue; } Firefly *tmp = new Firefly(canvas); this->addAnimation(tmp); fireflies << tmp; } - while( fireflies.length()>number){ fireflies.takeAt(number)->deleteLater(); } + } }; 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 50d733e9..df75ad67 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 @@ -36,7 +36,7 @@ private: double xrand = 0.4; //(qrand()%10+4)/10.0; double yrand = 0.4; //(qrand()%10+4)/10.0; - double theta = 1.5707963; + 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; @@ -46,9 +46,9 @@ private: //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); + QPoint rotFP = rotation.map(firstP); qDebug() << "First Point" << firstP; - qDebug() << "Rotation by Matrix" << rotFP; + 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); @@ -77,13 +77,13 @@ private slots: orbit->setDuration(10); } }*/ - void stopped(){ qDebug() << "Planet stopped"; planet->hide();} + void stopped(){ planet->hide();} public: Grav(QWidget *parent) : QParallelAnimationGroup(parent){ planet = new QWidget(parent); range = parent->size(); - QPoint center = parent->geometry().center(); + QPoint center = QRect(QPoint(0,0), parent->size()).center();; //Creates a random planet size. Between 12 and 45 pixels int planet_radius = qRound(1.75* ((qrand()%20)+7) ); @@ -114,7 +114,7 @@ public: planet->show(); //Ensures the screensaver will not stop until the user wishes to login or it times out - this->setLoopCount(1); //number of orbits + this->setLoopCount(3); //number of orbits orbit->setDuration( qrand() %1000 + 19000); //20 second orbits //orbit->setEndValue(path.at(0)); //LoopChanged(0); //load initial values @@ -145,7 +145,7 @@ private slots: } public: - GravAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + GravAnimation(QWidget *parent) : BaseAnimGroup(parent){} ~GravAnimation(){ sun->deleteLater(); while(planets.length()>0){ planets.takeAt(0)->deleteLater(); } @@ -154,7 +154,7 @@ public: void LoadAnimations(){ //Creates the sun, which is a thin shell with a gradient from green to yellow sun = new QWidget(canvas); - QPoint center = canvas->geometry().center(); + QPoint center = QRect(QPoint(0,0), canvas->size()).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));"); @@ -164,11 +164,11 @@ public: wobble = new QPropertyAnimation(sun); wobble->setPropertyName("geometry"); wobble->setTargetObject(sun); - QRect initgeom = QRect(center-QPoint(12,12), QSize(60, 60)); + QRect initgeom = QRect(center-QPoint(30,30), QSize(60, 60)); wobble->setStartValue(initgeom); wobble->setKeyValueAt(0, initgeom ); //starting point wobble->setKeyValueAt(1, initgeom ); //starting point - wobble->setKeyValueAt(0.5, QRect(center-QPoint(18,18), QSize(90, 90))); //starting point + wobble->setKeyValueAt(0.5, QRect(center-QPoint(45,45), QSize(90, 90))); //starting point wobble->setDuration(2000); wobble->setLoopCount(-1); this->addAnimation(wobble); @@ -176,13 +176,13 @@ public: sun->setGeometry(initgeom); //Gives the screensaver a black background - canvas->setStyleSheet("background: black;"); + //canvas->setStyleSheet("background: black;"); //Pulls number of planets from settings, with 10 as default - int number = settings->value("planets/number",10).toInt(); + int number = readSetting("planets/number",qrand()%5+3).toInt(); //Loops through all planets and sets up the animations, then adds them to the base group and vector, which - qDebug() << "Starting planets"; + //qDebug() << "Starting planets"; for(int i=0; i<number; i++){ Grav *tmp = new Grav(canvas); this->addAnimation(tmp); 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 index a64144ac..81bc2b35 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/ImageSlideshow.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/ImageSlideshow.h @@ -17,7 +17,7 @@ private: QPropertyAnimation *bounce, *fading; QPixmap pixmap; QStringList imageFiles; - QString imagePath, scriptPath; + QString imagePath, scriptPath, curpixmap; QSize screenSize; bool animate, scriptLoad; @@ -40,30 +40,34 @@ private: } 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()]; - if(scriptLoad){ - QProcess process; - process.start("/home/zwelch/test.sh"); - process.waitForFinished(1000); - QByteArray output = process.readAllStandardOutput(); - qDebug() << output; - pixmap.load(imagePath+imageFiles[qrand() % imageFiles.size()]); - }else{ - 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) + /*if(scriptLoad){ + QProcess process; + process.start("/home/zwelch/test.sh"); + process.waitForFinished(1000); + QByteArray output = process.readAllStandardOutput(); + //qDebug() << output; + //pixmap.load(randomFile); + }else{*/ + //File Load + QString randomFile = curpixmap; + if(imageFiles.size()>1 || curpixmap.isEmpty()){ + while(curpixmap==randomFile){ randomFile = imagePath+imageFiles[qrand() % imageFiles.size()]; } + } + if(curpixmap!=randomFile){ + curpixmap = randomFile; //save this for later + //no need to load the new file or change the label + pixmap.load(randomFile); + //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); + if(pixmap.width() >= (screenSize.width()-10) || pixmap.height() >= (screenSize.height()-10) ){ + pixmap = pixmap.scaled(screenSize*(3.0/4.0), Qt::KeepAspectRatio); + } + //Set pixmap to the image label + image->setPixmap(pixmap); + image->resize(pixmap.size()); + } + //} - //Set pixmap to the image label - image->setPixmap(pixmap); - image->resize(pixmap.size()); } private slots: @@ -72,7 +76,7 @@ private slots: chooseImage(); setupAnimation(); } - void stopped(){ qDebug() << "Image Stopped"; image->hide();} + void stopped(){ image->hide();} public: ImageSlideshow(QWidget *parent, QString path, bool animate, bool scriptLoad, QString scriptPath) : QParallelAnimationGroup(parent){ @@ -80,20 +84,25 @@ public: image = new QLabel(parent); screenSize = parent->size(); this->animate = animate; - this->scriptLoad = scriptLoad; - this->scriptPath = scriptPath; - + this->scriptLoad = scriptLoad; + this->scriptPath = scriptPath; + //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(); + //Ensure all the files are actually images + for(int i=0; i<imageFiles.length(); i++){ + if(QImageReader::imageFormat(imagePath+"/"+imageFiles[i]).isEmpty()){ imageFiles.removeAt(i); i--; } + } + if(imageFiles.empty()){ + qDebug() << "Current image file path has no files."; + image->setText("No image files found:\n"+imagePath); + }else{ + //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); @@ -117,8 +126,8 @@ public: //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); + //Loop through 15 times for a total for 2 minutes + this->setLoopCount(15); bounce->setDuration(8000); fading->setDuration(8000); @@ -132,7 +141,7 @@ public: class ImageAnimation: public BaseAnimGroup{ Q_OBJECT public: - ImageAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + ImageAnimation(QWidget *parent) : BaseAnimGroup(parent){} ~ImageAnimation(){ this->stop(); } @@ -140,13 +149,14 @@ public: 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(); + QString imagePath = readSetting("path", LOS::LuminaShare()+"../wallpapers/").toString(); //Load whether to animate the image (default true) - bool animate = settings->value("imageSlideshow/animate", true).toBool(); - bool scriptLoad = settings->value("imageSlideshow/scriptLoad", true).toBool(); - QString scriptPath; - if(scriptLoad) - scriptPath = settings->value("imageSlideshow/scriptPath", "/usr/local/backgrounds/script.sh").toString(); + bool animate = readSetting("animate", true).toBool(); + bool scriptLoad = readSetting("scriptLoad", true).toBool(); + QString scriptPath; + if(scriptLoad){ + scriptPath = readSetting("scriptPath", "/usr/local/backgrounds/script.sh").toString(); + } ImageSlideshow *tmp = new ImageSlideshow(canvas, imagePath, animate, scriptLoad, scriptPath); this->addAnimation(tmp); } diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/SampleAnimation.h b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/SampleAnimation.h index c2bb0c96..c7a8b237 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/SampleAnimation.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/SampleAnimation.h @@ -18,7 +18,7 @@ private: QWidget *ball; public: - SampleAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + SampleAnimation(QWidget *parent) : BaseAnimGroup(parent){} ~SampleAnimation(){ this->stop(); delete ball; } void LoadAnimations(){ 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 3ec0af82..6ba18b22 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 @@ -12,6 +12,8 @@ #include <QParallelAnimationGroup> #include <QtMath> +#include <unistd.h> + class Text: public QParallelAnimationGroup{ Q_OBJECT private: @@ -38,15 +40,15 @@ private slots: void stopped(){ qDebug() << "Text Stopped"; text->hide();} public: - Text(QWidget *parent) : QParallelAnimationGroup(parent){ + Text(QWidget *parent, QString display) : QParallelAnimationGroup(parent){ text = new QLabel(parent); range = parent->size(); - QPoint center = parent->geometry().center(); + QPoint center = QRect( QPoint(0,0), parent->size()).center(); QString color = "rgba(" + QString::number(qrand() % 206 + 50) + ", " + QString::number(qrand() % 206 + 50) + ", " + QString::number(qrand() % 206 + 50); - text->setStyleSheet("QLabel {background-color: rgba(255, 255, 255, 10); color: " + color + "); }"); + text->setStyleSheet("QLabel {background-color: transparent; color: " + color + "); }"); text->setFont(QFont("Courier", 24, QFont::Bold)); - text->setText("test"); + text->setText(display); QFontMetrics metrics(text->font()); text->setMinimumSize(QSize( metrics.width(text->text())+10, metrics.height()*text->text().count("\n") +10)); @@ -60,7 +62,7 @@ public: v.setY((qrand() % 100 + 50) * qPow(-1, qrand() % 2)); movement->setStartValue(center); //Ensures the screensaver will not stop until the user wishes to login or it times out - this->setLoopCount(2000); //number of movements + this->setLoopCount(200); //number of wall bounces movement->setDuration(200); movement->setEndValue(QPoint(qrand() % (int)range.height(), qrand() % range.width())); LoopChanged(); //load initial values @@ -75,14 +77,22 @@ public: class TextAnimation : public BaseAnimGroup{ Q_OBJECT public: - TextAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + TextAnimation(QWidget *parent) : BaseAnimGroup(parent){} ~TextAnimation(){ this->stop(); } void LoadAnimations(){ canvas->setStyleSheet("background: black;"); - Text *tmp = new Text(canvas); + //Read off the text that needs to be displayed + QString textToShow = readSetting("text", "").toString(); + if(textToShow.isEmpty()){ + char hname[300]; + gethostname(hname, 300); + textToShow = QString::fromLocal8Bit(hname); + } + // Now create the animation + Text *tmp = new Text(canvas, textToShow); this->addAnimation(tmp); } 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 index cc3c1b83..358b4bfb 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/VideoSlideshow.h +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/animations/VideoSlideshow.h @@ -10,55 +10,19 @@ #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)); - this->setDuration(1000000); - this->setLoopCount(-1); - } - ~VideoSlideshow(){} - -}; - class VideoAnimation: public BaseAnimGroup{ Q_OBJECT private: - QString videoPath; - VideoSlideshow *tmp; + QString videoPath, singleVideo; QVideoWidget *videoWidget; QMediaPlayer *video; QStringList videoFiles; - bool multimonitor; + bool multiple; private slots: - void startVideo(QAbstractAnimation::State state) { - qDebug() << "Status: " << video->mediaStatus() << "New Animation State:" << state; - if(state==QAbstractAnimation::Running){ - video->setVolume(100); - video->play(); - } - if(state==QAbstractAnimation::Stopped && video->state()!=QMediaPlayer::StoppedState){ - video->stop(); - } - } - - void stopVideo() { - if(video->state() == QMediaPlayer::StoppedState) { - qDebug() << "Stopping Animation"; - //this->deleteLater(); - videoWidget->hide(); - tmp->stop(); - //tmp->deleteLater(); - videoWidget->deleteLater(); - video->deleteLater(); - } - } public: - VideoAnimation(QWidget *parent, QSettings *set) : BaseAnimGroup(parent, set){} + VideoAnimation(QWidget *parent) : BaseAnimGroup(parent){} ~VideoAnimation(){ this->stop(); @@ -68,36 +32,53 @@ public: 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(); + videoPath = readSetting("path","/usr/local/videos").toString(); + singleVideo = readSetting("videoLocation","").toString(); + multiple = readSetting("multiple",true).toBool(); if(!videoPath.endsWith("/")){ videoPath.append("/"); } //Set whether to copy videos on two monitors or play different videos - multimonitor = settings->value("videoSlideshow/multimonitor",true).toBool(); + //multimonitor = settings->value("videoSlideshow/multimonitor",true).toBool(); + //Set up the VideoWidget video = new QMediaPlayer(canvas, QMediaPlayer::VideoSurface); videoWidget = new QVideoWidget(canvas); + video->setVideoOutput(videoWidget); videoWidget->setGeometry(QRect(QPoint(0,0), canvas->size())); - tmp = new VideoSlideshow(canvas, videoWidget); - this->addAnimation(tmp); - //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."; + if(videoFiles.empty()){ + qDebug() << "Current video file path has no files:" << videoPath; + return; + } - this->setLoopCount(1); + if(singleVideo.isNull()) + singleVideo = videoPath+videoFiles[0]; - QUrl url = QUrl::fromLocalFile(videoPath+videoFiles[qrand() % videoFiles.size()]); - video->setMedia(url); - qDebug() << url; - video->setVideoOutput(videoWidget); + //Loading a random file from a directory + QDesktopWidget *dw = new QDesktopWidget(); + QMediaPlaylist *playlist = new QMediaPlaylist(); + if(multiple) { + for(int i = 0; i < videoFiles.size(); i++){ + playlist->addMedia(QUrl::fromLocalFile(videoPath+videoFiles[i])); + } + playlist->shuffle(); + }else{ + playlist->addMedia(QUrl::fromLocalFile(singleVideo)); + playlist->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop); + } videoWidget->show(); + if(multiple) + video->setPlaylist(playlist); + + //Only play sound for one monitor to prevent messed up audio + if(dw->screenNumber(canvas) == 0) + video->setVolume(100); + else + video->setVolume(0); - qDebug() << "VideoWidget Displayed"; - connect(tmp, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), this, SLOT(startVideo(QAbstractAnimation::State)) ); - //connect(video, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(startVideo()) ); - connect(video, SIGNAL(stateChanged(QMediaPlayer::State)), this, SLOT(stopVideo()) ); + video->play(); } }; diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/screensaver.pri b/src-qt5/core/lumina-desktop-unified/src-screensaver/screensaver.pri index f95891c1..92cc7bd2 100644 --- a/src-qt5/core/lumina-desktop-unified/src-screensaver/screensaver.pri +++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/screensaver.pri @@ -9,7 +9,7 @@ HEADERS *= $${PWD}/LLockScreen.h \ FORMS *= $${PWD}/LLockScreen.ui #update the includepath so we can just (#include <LScreenSaver.h>) as needed without paths -INCLUDEPATH *= ${PWD} +INCLUDEPATH *= $${PWD} #Now include all the screensaver animations/options -include(animations/animations.pri) +#include(animations/animations.pri) diff --git a/src-qt5/core/lumina-desktop/AppMenu.cpp b/src-qt5/core/lumina-desktop/AppMenu.cpp index c3c52375..9ad51c93 100644 --- a/src-qt5/core/lumina-desktop/AppMenu.cpp +++ b/src-qt5/core/lumina-desktop/AppMenu.cpp @@ -142,7 +142,7 @@ void AppMenu::updateAppList(){ else{ ICONS->loadIcon(sact, appL[a]->icon); } sact->setToolTip(appL[a]->comment); sact->setWhatsThis("-action \""+appL[a]->actions[sa].ID+"\" \""+appL[a]->filePath+"\""); - submenu->addAction(sact); + submenu->addAction(sact); } menu->addMenu(submenu); } diff --git a/src-qt5/core/lumina-desktop/Globals.h b/src-qt5/core/lumina-desktop/Globals.h index 15e7a4b6..43ea3a87 100644 --- a/src-qt5/core/lumina-desktop/Globals.h +++ b/src-qt5/core/lumina-desktop/Globals.h @@ -11,6 +11,7 @@ #include <LuminaXDG.h> #include <LuminaOS.h> #include <LDesktopUtils.h> +#include <LFileInfo.h> #include <QWidgetAction> #include <QMenu> diff --git a/src-qt5/core/lumina-desktop/LDesktop.cpp b/src-qt5/core/lumina-desktop/LDesktop.cpp index 37bc7ffa..a7ab1340 100644 --- a/src-qt5/core/lumina-desktop/LDesktop.cpp +++ b/src-qt5/core/lumina-desktop/LDesktop.cpp @@ -88,7 +88,7 @@ QRect LDesktop::availableScreenGeom(){ return globalWorkRect; //saved from previous calculations }else{ return LSession::handle()->screenGeom( Screen() ); - } + } } void LDesktop::UpdateGeometry(){ @@ -150,7 +150,7 @@ void LDesktop::checkResolution(){ }else if(scrn.width()==oldWidth && scrn.height()==oldHeight){ //nothing to do - same as before }else{ - //Calculate the scale factor between the old/new sizes in each dimension + //Calculate the scale factor between the old/new sizes in each dimension // and forward that on to all the interface elements double xscale = scrn.width()/((double) oldWidth); double yscale = scrn.height()/((double) oldHeight); @@ -194,7 +194,7 @@ void LDesktop::checkResolution(){ } } DP->sync(); //make sure it gets saved to disk right away - + } issyncing = false; } @@ -238,7 +238,7 @@ void LDesktop::InitDesktop(){ bgWindow->setWindowOpacity(0.0); connect(bgWindow, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowMenu()) );*/ if(DEBUG){ qDebug() << "Create bgDesktop"; } - bgDesktop = new LDesktopPluginSpace(); + bgDesktop = new LDesktopPluginSpace(); int grid = settings->value(DPREFIX+"GridSize",-1).toInt(); if(grid<0 && LSession::desktop()->screenGeometry(Screen()).height() > 2000){ grid = 200; } else if(grid<0){ grid = 100; } @@ -266,7 +266,7 @@ void LDesktop::InitDesktop(){ } void LDesktop::SettingsChanged(){ - if(issyncing){ return; } //don't refresh for internal modifications to the + if(issyncing){ return; } //don't refresh for internal modifications to the issyncing = true; qDebug() << "Found Settings Change:" << screenID; settings->sync(); //make sure to sync with external settings changes @@ -341,7 +341,7 @@ void LDesktop::UpdateMenu(bool fast){ void LDesktop::UpdateWinMenu(){ winMenu->clear(); //Get the current list of windows - QList<WId> wins = LSession::handle()->XCB->WindowList(); + QList<WId> wins = LSession::handle()->XCB->WindowList(); //Now add them to the menu for(int i=0; i<wins.length(); i++){ LWinInfo info(wins[i]); @@ -352,7 +352,7 @@ void LDesktop::UpdateWinMenu(){ } void LDesktop::winClicked(QAction* act){ - LSession::handle()->XCB->ActivateWindow( act->data().toString().toULong() ); + LSession::handle()->XCB->ActivateWindow( act->data().toString().toULong() ); } void LDesktop::UpdateDesktop(){ @@ -393,7 +393,7 @@ void LDesktop::UpdateDesktop(){ if(settings->value(DPREFIX+"generateMediaIcons",true).toBool()){ QDir media("/media"); QStringList mediadirs = media.entryList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot, QDir::Name); - for(int i=0; i<mediadirs.length(); i++){ + for(int i=0; i<mediadirs.length(); i++){ filelist << media.absoluteFilePath(mediadirs[i]); } } @@ -406,8 +406,8 @@ void LDesktop::RemoveDeskPlugin(QString ID){ //This is called after a plugin is manually removed by the user // just need to ensure that the plugin is also removed from the settings file QStringList plugs = settings->value(DPREFIX+"pluginlist", QStringList()).toStringList(); - if(plugs.contains(ID)){ - plugs.removeAll(ID); + if(plugs.contains(ID)){ + plugs.removeAll(ID); issyncing=true; //don't let the change cause a refresh settings->setValue(DPREFIX+"pluginlist", plugs); settings->sync(); @@ -437,7 +437,7 @@ void LDesktop::DecreaseDesktopPluginIcons(){ settings->setValue(DPREFIX+"GridSize",cur); settings->sync(); QTimer::singleShot(200, this, SLOT(UnlockSettings()) ); - bgDesktop->SetIconSize(cur); + bgDesktop->SetIconSize(cur); } void LDesktop::UpdatePanels(){ @@ -484,18 +484,18 @@ void LDesktop::UpdateDesktopPluginArea(){ QRegion shifted = visReg; QString loc = settings->value(PANELS[i]->prefix()+"location","top").toString().toLower(); int vis = PANELS[i]->visibleWidth(); - if(loc=="top"){ + if(loc=="top"){ if(!shifted.contains(QRect(rawRect.x(), rawRect.y(), rawRect.width(), vis))){ continue; } - shifted.translate(0, (rawRect.top()+vis)-shifted.boundingRect().top() ); + shifted.translate(0, (rawRect.top()+vis)-shifted.boundingRect().top() ); }else if(loc=="bottom"){ - if(!shifted.contains(QRect(rawRect.x(), rawRect.bottom()-vis, rawRect.width(), vis))){ continue; } - shifted.translate(0, (rawRect.bottom()-vis)-shifted.boundingRect().bottom()); - }else if(loc=="left"){ + if(!shifted.contains(QRect(rawRect.x(), rawRect.bottom()-vis, rawRect.width(), vis))){ continue; } + shifted.translate(0, (rawRect.bottom()-vis)-shifted.boundingRect().bottom()); + }else if(loc=="left"){ if( !shifted.contains(QRect(rawRect.x(), rawRect.y(), vis,rawRect.height())) ){ continue; } - shifted.translate((rawRect.left()+vis)-shifted.boundingRect().left() ,0); + shifted.translate((rawRect.left()+vis)-shifted.boundingRect().left() ,0); }else{ //right if(!shifted.contains(QRect(rawRect.right()-vis, rawRect.y(), vis,rawRect.height())) ){ continue; } - shifted.translate((rawRect.right()-vis)-shifted.boundingRect().right(),0); + shifted.translate((rawRect.right()-vis)-shifted.boundingRect().right(),0); } visReg = visReg.intersected( shifted ); } @@ -535,11 +535,20 @@ void LDesktop::UpdateBackground(){ //Get the list of background(s) to show QStringList bgL = settings->value(DPREFIX+"background/filelist-workspace-"+QString::number( LSession::handle()->XCB->CurrentWorkspace()), QStringList()).toStringList(); if(bgL.isEmpty()){ bgL = settings->value(DPREFIX+"background/filelist", QStringList()).toStringList(); } - + if(bgL.isEmpty()){ bgL << LOS::LuminaShare()+"../wallpapers/lumina-nature"; } //Use this entire directory by default if nothing specified //qDebug() << " - List:" << bgL << CBG; //Remove any invalid files for(int i=0; i<bgL.length(); i++){ - if( (!QFile::exists(bgL[i]) && bgL[i]!="default" && !bgL[i].startsWith("rgb(") ) || bgL[i].isEmpty()){ bgL.removeAt(i); i--; } + if(bgL[i]=="default" || bgL[i].startsWith("rgb(") ){ continue; } //built-in definitions - treat them as valid + if(bgL[i].isEmpty()){ bgL.removeAt(i); i--; } + if( !QFile::exists(bgL[i]) ){ + //Quick Detect/replace for new path for Lumina wallpapers (change in 1.3.4) + if(bgL[i].contains("/wallpapers/Lumina-DE/")){ + bgL[i] = bgL[i].replace("/wallpapers/Lumina-DE/", "/wallpapers/lumina-desktop/"); i--; //modify the path and re-check it + }else{ + bgL.removeAt(i); i--; + } + } } if(bgL.isEmpty()){ bgL << "default"; } //always fall back on the default //Determine if the background needs to be changed @@ -552,13 +561,32 @@ void LDesktop::UpdateBackground(){ } oldBGL = bgL; //save this for later //Determine which background to use next - int index ( qrand() % bgL.length() ); - if(index== bgL.indexOf(CBG)){ //if the current wallpaper was selected by the randomization again - //Go to the next in the list - if(index < 0 || index >= bgL.length()-1){ index = 0; } //if invalid or last item in the list - go to first - else{ index++; } //go to next + QString bgFile; + while(bgFile.isEmpty() || QFileInfo(bgFile).isDir()){ + QString prefix; + if(!bgFile.isEmpty()){ + //Got a directory - update the list of files and re-randomize the selection + QStringList imgs = LUtils::imageExtensions(); + for(int i=0; i<imgs.length(); i++){ imgs[i].prepend("*."); } + QDir tdir(bgFile); + prefix=bgFile+"/"; + bgL = tdir.entryList(imgs, QDir::Files | QDir::NoDotAndDotDot, QDir::Name); + //If directory no longer has any valid images - remove it from list and try again + if(bgL.isEmpty()){ + oldBGL.removeAll(bgFile); //invalid directory - remove it from the list for the moment + bgL = oldBGL; //reset the list back to the original list (not within a directory) + } + } + //Verify that there are files in the list - otherwise use the default + if(bgL.isEmpty()){ bgFile="default"; break; } + int index = ( qrand() % bgL.length() ); + if(index== bgL.indexOf(CBG)){ //if the current wallpaper was selected by the randomization again + //Go to the next in the list + if(index < 0 || index >= bgL.length()-1){ index = 0; } //if invalid or last item in the list - go to first + else{ index++; } //go to next + } + bgFile = prefix+bgL[index]; } - QString bgFile = bgL[index]; //Save this file as the current background CBG = bgFile; //qDebug() << " - Set Background to:" << CBG << index << bgL; @@ -570,7 +598,7 @@ void LDesktop::UpdateBackground(){ bgDesktop->setBackground(backPix); //Now reset the timer for the next change (if appropriate) if(bgtimer->isActive()){ bgtimer->stop(); } - if(bgL.length() > 1){ + if(bgL.length()>1 || oldBGL.length()>1){ //get the length of the timer (in minutes) int min = settings->value(DPREFIX+"background/minutesToChange",5).toInt(); //restart the internal timer @@ -633,9 +661,9 @@ void LDesktop::NewDesktopFile(QString name){ QDir desktop(QDir::homePath()); if(desktop.exists(tr("Desktop"))){ desktop.cd(tr("Desktop")); } //translated folder else{ desktop.cd("Desktop"); } //default/english folder - if(!desktop.exists(name)){ + if(!desktop.exists(name)){ QFile file(desktop.absoluteFilePath(name)); - if(file.open(QIODevice::WriteOnly) ){ file.close(); } + if(file.open(QIODevice::WriteOnly) ){ file.close(); } } } } diff --git a/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp b/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp index 41a1017d..9e964f5d 100644 --- a/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp +++ b/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp @@ -21,7 +21,7 @@ LDesktopPluginSpace::LDesktopPluginSpace() : QWidget(){ //this->setAttribute(Qt::WA_TranslucentBackground); //this->setAttribute(Qt::WA_NoSystemBackground); this->setAutoFillBackground(false); - this->setStyleSheet("QWidget#LuminaDesktopPluginSpace{ border: none; background: transparent; }"); + this->setStyleSheet("QWidget#LuminaDesktopPluginSpace{ border: none; background: transparent; }"); this->setWindowFlags(Qt::WindowStaysOnBottomHint | Qt::CustomizeWindowHint | Qt::FramelessWindowHint); this->setAcceptDrops(true); this->setContextMenuPolicy(Qt::NoContextMenu); @@ -34,7 +34,7 @@ LDesktopPluginSpace::LDesktopPluginSpace() : QWidget(){ } LDesktopPluginSpace::~LDesktopPluginSpace(){ - + } void LDesktopPluginSpace::LoadItems(QStringList plugs, QStringList files){ @@ -76,7 +76,7 @@ void LDesktopPluginSpace::setBackground(QPixmap pix){ void LDesktopPluginSpace::setDesktopArea(QRect area){ //qDebug() << "Setting Desktop Plugin Area:" << area; desktopRect = area; - + } // =================== @@ -222,7 +222,7 @@ QRect LDesktopPluginSpace::findOpenSpot(int gridwidth, int gridheight, int start //else{ row++; } } if(!found){ col++; row=0; } //go to the next column - } + } }else if(reversed && (startRow>0 || startCol>0) ){ //Arrange Left->Right (work backwards) while(row>=0 && !found){ @@ -242,7 +242,7 @@ QRect LDesktopPluginSpace::findOpenSpot(int gridwidth, int gridheight, int start //else{ col++; } } if(!found){ row--; col=colCount-gridwidth;} //go to the previous row - } + } }else{ //Arrange Left->Right while(row<(rowCount-gridheight) && !found){ @@ -296,8 +296,8 @@ void LDesktopPluginSpace::reloadPlugins(bool ForceIconUpdate ){ QStringList plugs = plugins; QStringList items = deskitems; for(int i=0; i<ITEMS.length(); i++){ - - if( ITEMS[i]->whatsThis().startsWith("applauncher") && ForceIconUpdate){ + + if( ITEMS[i]->whatsThis().startsWith("applauncher") && ForceIconUpdate){ //Change the size of the existing plugin - preserving the location if possible /*QRect geom = ITEMS[i]->loadPluginGeometry(); //pixel coords if(!geom.isNull()){ @@ -306,14 +306,14 @@ void LDesktopPluginSpace::reloadPlugins(bool ForceIconUpdate ){ ITEMS[i]->savePluginGeometry( gridToGeom(geom)); //save it back in pixel coords }*/ //Now remove the plugin for the moment - run it through the re-creation routine below - ITEMS.takeAt(i)->deleteLater(); + ITEMS.takeAt(i)->deleteLater(); i--; } else if(plugs.contains(ITEMS[i]->whatsThis())){ plugs.removeAll(ITEMS[i]->whatsThis()); } else if(items.contains(ITEMS[i]->whatsThis().section("---",0,0).section("::",1,50))){ items.removeAll(ITEMS[i]->whatsThis().section("---",0,0).section("::",1,50)); } else{ ITEMS[i]->removeSettings(true); ITEMS.takeAt(i)->deleteLater(); i--; } //this is considered a permanent removal (cleans settings) } - + //Now create any new items //First load the plugins (almost always have fixed locations) for(int i=0; i<plugs.length(); i++){ diff --git a/src-qt5/core/lumina-desktop/LSession.cpp b/src-qt5/core/lumina-desktop/LSession.cpp index bbed6d79..dab30f01 100644 --- a/src-qt5/core/lumina-desktop/LSession.cpp +++ b/src-qt5/core/lumina-desktop/LSession.cpp @@ -98,7 +98,7 @@ void LSession::setupSession(){ qDebug() << "Initializing Session"; if(QFile::exists("/tmp/.luminastopping")){ QFile::remove("/tmp/.luminastopping"); } QTime* timer = 0; - //if(DEBUG){ timer = new QTime(); timer->start(); qDebug() << " - Init srand:" << timer->elapsed();} + if(DEBUG){ timer = new QTime(); timer->start(); qDebug() << " - Init srand:" << timer->elapsed();} //Setup the QSettings default paths splash.showScreen("settings"); @@ -118,9 +118,9 @@ void LSession::setupSession(){ } //use the system settings //Setup the user's lumina settings directory as necessary - splash.showScreen("user"); - if(DEBUG){ qDebug() << " - Init User Files:" << timer->elapsed();} - checkUserFiles(); //adds these files to the watcher as well + //splash.showScreen("user"); + //if(DEBUG){ qDebug() << " - Init User Files:" << timer->elapsed();} + //checkUserFiles(); //adds these files to the watcher as well //Initialize the internal variables DESKTOPS.clear(); @@ -147,11 +147,12 @@ void LSession::setupSession(){ if(DEBUG){ qDebug() << " - Init Desktops:" << timer->elapsed();} desktopFiles = QDir(QDir::homePath()+"/Desktop").entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs, QDir::Name | QDir::IgnoreCase | QDir::DirsFirst); updateDesktops(); - for(int i=0; i<6; i++){ LSession::processEvents(); } //Run through this a few times so the interface systems get up and running + //if(DEBUG){ qDebug() << " - Process Events (6x):" << timer->elapsed();} + //for(int i=0; i<6; i++){ LSession::processEvents(); } //Run through this a few times so the interface systems get up and running //Now setup the system watcher for changes splash.showScreen("final"); - qDebug() << " - Initialize file system watcher"; + //qDebug() << " - Initialize file system watcher"; if(DEBUG){ qDebug() << " - Init QFileSystemWatcher:" << timer->elapsed();} watcher = new QFileSystemWatcher(this); QString confdir = sessionsettings->fileName().section("/",0,-2); @@ -171,14 +172,18 @@ void LSession::setupSession(){ connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(watcherChange(QString)) ); connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(watcherChange(QString)) ); connect(this, SIGNAL(aboutToQuit()), this, SLOT(SessionEnding()) ); - if(DEBUG){ qDebug() << " - Init Finished:" << timer->elapsed(); delete timer;} - for(int i=0; i<4; i++){ LSession::processEvents(); } //Again, just a few event loops here so thing can settle before we close the splash screen + //if(DEBUG){ qDebug() << " - Process Events (4x):" << timer->elapsed();} + //for(int i=0; i<4; i++){ LSession::processEvents(); } //Again, just a few event loops here so thing can settle before we close the splash screen + if(DEBUG){ qDebug() << " - Launch Startup Apps:" << timer->elapsed();} //launchStartupApps(); QTimer::singleShot(500, this, SLOT(launchStartupApps()) ); - splash.hide(); - LSession::processEvents(); + //if(DEBUG){ qDebug() << " - Hide Splashscreen:" << timer->elapsed();} + //splash.hide(); + //LSession::processEvents(); + if(DEBUG){ qDebug() << " - Close Splashscreen:" << timer->elapsed();} splash.close(); - LSession::processEvents(); + //LSession::processEvents(); + if(DEBUG){ qDebug() << " - Init Finished:" << timer->elapsed(); delete timer;} } void LSession::CleanupSession(){ @@ -289,7 +294,7 @@ void LSession::launchStartupApps(){ qDebug() << " - - Screen Brightness:" << QString::number(tmp)+"%"; } //QProcess::startDetached("nice lumina-open -autostart-apps"); - ExternalProcess::launch("nice lumina-open -autostart-apps"); + ExternalProcess::launch("lumina-open", QStringList() << "-autostart-apps", false); //Re-load the screen brightness and volume settings from the previous session // Wait until after the XDG-autostart functions, since the audio system might be started that way @@ -303,7 +308,7 @@ void LSession::launchStartupApps(){ QString sfile = sessionsettings->value("audiofiles/login", LOS::LuminaShare()+"Login.ogg").toString(); playAudioFile(sfile); } - qDebug() << "[DESKTOP INIT FINISHED]"; + //qDebug() << "[DESKTOP INIT FINISHED]"; } void LSession::StartLogout(){ @@ -384,15 +389,26 @@ void LSession::checkWindowGeoms(){ } } -void LSession::checkUserFiles(){ +bool LSession::checkUserFiles(){ //internal version conversion examples: // [1.0.0 -> 1000000], [1.2.3 -> 1002003], [0.6.1 -> 6001] - QString OVS = sessionsettings->value("DesktopVersion","0").toString(); //Old Version String - bool changed = LDesktopUtils::checkUserFiles(OVS); + qDebug() << "Check User Files"; + //char tmp[] = "junk\0"; + //int tmpN = 0; + //QApplication A(tmpN, (char **)&tmp); + QSettings sset("lumina-desktop", "sessionsettings"); + QString OVS = sset.value("DesktopVersion","0").toString(); //Old Version String + qDebug() << " - Old Version:" << OVS; + qDebug() << " - Current Version:" << LDesktopUtils::LuminaDesktopVersion(); + bool changed = LDesktopUtils::checkUserFiles(OVS, LDesktopUtils::LuminaDesktopVersion()); + qDebug() << " - Made Changes:" << changed; if(changed){ //Save the current version of the session to the settings file (for next time) - sessionsettings->setValue("DesktopVersion", this->applicationVersion()); + sset.setValue("DesktopVersion", LDesktopUtils::LuminaDesktopVersion()); } + qDebug() << "Finished with user files check"; + //delete A; + return changed; } void LSession::refreshWindowManager(){ @@ -572,8 +588,8 @@ void LSession::SessionEnding(){ // SYSTEM ACCESS //=============== void LSession::LaunchApplication(QString cmd){ - LSession::setOverrideCursor(QCursor(Qt::BusyCursor)); - ExternalProcess::launch(cmd); + //LSession::setOverrideCursor(QCursor(Qt::BusyCursor)); + ExternalProcess::launch(cmd, QStringList(), true); //QProcess::startDetached(cmd); } @@ -674,7 +690,7 @@ void LSession::WindowPropertyEvent(){ if(RunningApps.length() < newapps.length()){ //New Window found //qDebug() << "New window found"; - LSession::restoreOverrideCursor(); //restore the mouse cursor back to normal (new window opened?) + //LSession::restoreOverrideCursor(); //restore the mouse cursor back to normal (new window opened?) //Perform sanity checks on any new window geometries for(int i=0; i<newapps.length() && !TrayStopping; i++){ if(!RunningApps.contains(newapps[i])){ @@ -826,7 +842,7 @@ void LSession::attachTrayWindow(WId win){ if(RunningTrayApps.contains(win)){ return; } //already managed qDebug() << "Session Tray: Window Added"; RunningTrayApps << win; - LSession::restoreOverrideCursor(); + //LSession::restoreOverrideCursor(); if(DEBUG){ qDebug() << "Tray List Changed"; } emit TrayListChanged(); } diff --git a/src-qt5/core/lumina-desktop/LSession.h b/src-qt5/core/lumina-desktop/LSession.h index 0d69df84..a25f3c15 100644 --- a/src-qt5/core/lumina-desktop/LSession.h +++ b/src-qt5/core/lumina-desktop/LSession.h @@ -39,7 +39,7 @@ #define SYSTEM_TRAY_CANCEL_MESSAGE 2 /*class MenuProxyStyle : public QProxyStyle{ -public: +public: int pixelMetric(PixelMetric metric, const QStyleOption *option=0, const QWidget *widget=0) const{ if(metric==PM_SmallIconSize){ return 22; } //override QMenu icon size (make it larger) else{ return QProxyStyle::pixelMetric(metric, option, widget); } //use the current style for everything else @@ -51,6 +51,8 @@ class LSession : public LSingleApplication{ public: LSession(int &argc, char **argv); ~LSession(); + + static bool checkUserFiles(); //Functions to be called during startup void setupSession(); @@ -63,7 +65,7 @@ public: bool registerStartButton(QString ID); void unregisterStartButton(QString ID); - //Special functions for XCB event filter parsing only + //Special functions for XCB event filter parsing only // (DO NOT USE MANUALLY) void RootSizeChange(); void WindowPropertyEvent(); @@ -73,37 +75,37 @@ public: void WindowConfigureEvent(WId); void WindowDamageEvent(WId); void WindowSelectionClearEvent(WId); - + //System Access //Return a pointer to the current session static LSession* handle(){ return static_cast<LSession*>(LSession::instance()); } - + static void LaunchApplication(QString cmd); QFileInfoList DesktopFiles(); - + QRect screenGeom(int num); - + AppMenu* applicationMenu(); void systemWindow(); SettingsMenu* settingsMenu(); LXCB *XCB; //class for XCB usage - + QSettings* sessionSettings(); QSettings* DesktopPluginSettings(); - + //Keep track of which non-desktop window should be treated as active WId activeWindow(); //This will return the last active window if a desktop element is currently active - + //Temporarily change the session locale (nothing saved between sessions) void switchLocale(QString localeCode); - + //Play System Audio void playAudioFile(QString filepath); //Window Adjustment Routine (due to Fluxbox not respecting _NET_WM_STRUT) void adjustWindowGeom(WId win, bool maximize = false); - + private: //WMProcess *WM; QList<LDesktop*> DESKTOPS; @@ -136,9 +138,9 @@ private: QFileInfoList desktopFiles; void CleanupSession(); - + int VersionStringToNumber(QString version); - + public slots: void StartLogout(); void StartShutdown(bool skipupdates = false); @@ -161,7 +163,6 @@ private slots: void removeTrayWindow(WId); //Internal simplification functions - void checkUserFiles(); void refreshWindowManager(); void updateDesktops(); void registerDesktopWindows(); @@ -189,7 +190,7 @@ signals: void DesktopFilesChanged(); void MediaFilesChanged(); void WorkspaceChanged(); - + }; #endif diff --git a/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp b/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp index ca7fb38d..16689c76 100644 --- a/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp +++ b/src-qt5/core/lumina-desktop/LXcbEventFilter.cpp @@ -7,7 +7,7 @@ #include "LXcbEventFilter.h" //For all the XCB interactions and atoms -// is accessed via +// is accessed via // session->XCB->EWMH.(atom name) // session->XCB->(do something) #include <LuminaX11.h> @@ -41,7 +41,7 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag //qDebug() << "Property Notify Event:"; //qDebug() << " - Root Window:" << QX11Info::appRootWindow(); //qDebug() << " - Given Window:" << ((xcb_property_notify_event_t*)ev)->window; - //System-specific proprty change + //System-specific property change if( ((xcb_property_notify_event_t*)ev)->window == QX11Info::appRootWindow() \ && ( ( ((xcb_property_notify_event_t*)ev)->atom == session->XCB->EWMH._NET_DESKTOP_GEOMETRY) \ || (((xcb_property_notify_event_t*)ev)->atom == session->XCB->EWMH._NET_WORKAREA) )){ @@ -50,10 +50,11 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag && ( ( ((xcb_property_notify_event_t*)ev)->atom == session->XCB->EWMH._NET_CURRENT_DESKTOP) )){ //qDebug() << "Got Workspace Change"; session->emit WorkspaceChanged(); + session->WindowPropertyEvent(); //make sure we update the lists again - some windows are now hidden }else if( SysNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){ //Update the status/list of all running windows - session->WindowPropertyEvent(); - + session->WindowPropertyEvent(); + //window-specific property change }else if( WinNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){ //Ping only that window @@ -61,7 +62,7 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag session->WindowPropertyEvent(); } break; -//============================== +//============================== case XCB_CLIENT_MESSAGE: //qDebug() << "Client Message Event"; //qDebug() << " - Root Window:" << QX11Info::appRootWindow(); @@ -72,7 +73,7 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag session->SysTrayDockRequest( ((xcb_client_message_event_t*)ev)->data.data32[2] ); } //Ignore the System Tray messages at the moment (let the WM handle it) - + //window-specific property changes /*}else if( ((xcb_client_message_event_t*)ev)->type == session->XCB->EWMH._NET_WM_STATE ){ if( session->XCB->WindowIsMaximized( ((xcb_client_message_event_t*)ev)->window ) ){ @@ -86,22 +87,22 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag session->WindowPropertyEvent(); } break; -//============================== +//============================== case XCB_DESTROY_NOTIFY: //qDebug() << "Window Closed Event"; session->WindowClosedEvent( ( (xcb_destroy_notify_event_t*)ev )->window ); break; -//============================== +//============================== case XCB_CONFIGURE_NOTIFY: //qDebug() << "Configure Notify Event"; session->WindowConfigureEvent( ((xcb_configure_notify_event_t*)ev)->window ); break; -//============================== +//============================== case XCB_SELECTION_CLEAR: //qDebug() << "Selection Clear Event"; - session->WindowSelectionClearEvent( ((xcb_selection_clear_event_t*)ev)->owner ); + session->WindowSelectionClearEvent( ((xcb_selection_clear_event_t*)ev)->owner ); break; -//============================== +//============================== default: if(TrayDmgFlag!=0){ //if( (ev->response_type & ~0x80)==TrayDmgFlag){ diff --git a/src-qt5/core/lumina-desktop/LXcbEventFilter.h b/src-qt5/core/lumina-desktop/LXcbEventFilter.h index c56471c9..2946eacd 100644 --- a/src-qt5/core/lumina-desktop/LXcbEventFilter.h +++ b/src-qt5/core/lumina-desktop/LXcbEventFilter.h @@ -62,7 +62,7 @@ private: QList<xcb_atom_t> WinNotifyAtoms, SysNotifyAtoms; int TrayDmgFlag; //internal damage event offset value for the system tray bool stopping; - + void InitAtoms(){ //Initialize any special atoms that we need to save/use regularly //NOTE: All the EWMH atoms are already saved in session->XCB->EWMH @@ -73,7 +73,7 @@ private: << session->XCB->EWMH._NET_WM_VISIBLE_ICON_NAME \ << session->XCB->EWMH._NET_WM_ICON \ << session->XCB->EWMH._NET_WM_ICON_GEOMETRY; - + SysNotifyAtoms.clear(); SysNotifyAtoms << session->XCB->EWMH._NET_CLIENT_LIST \ << session->XCB->EWMH._NET_CLIENT_LIST_STACKING \ @@ -85,12 +85,12 @@ private: //_NET_SYSTEM_TRAY_OPCODE xcb_intern_atom_cookie_t cookie = xcb_intern_atom(QX11Info::connection(), 0, 23,"_NET_SYSTEM_TRAY_OPCODE"); xcb_intern_atom_reply_t *r = xcb_intern_atom_reply(QX11Info::connection(), cookie, NULL); - if(r){ - _NET_SYSTEM_TRAY_OPCODE = r->atom; + if(r){ + _NET_SYSTEM_TRAY_OPCODE = r->atom; free(r); } } - + public: XCBEventFilter(LSession *sessionhandle); void setTrayDamageFlag(int flag); @@ -98,7 +98,7 @@ public: //This function format taken directly from the Qt5.3 documentation virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *) Q_DECL_OVERRIDE; - + }; #endif diff --git a/src-qt5/core/lumina-desktop/SystemWindow.cpp b/src-qt5/core/lumina-desktop/SystemWindow.cpp index cd09c9bd..dbcec2a2 100644 --- a/src-qt5/core/lumina-desktop/SystemWindow.cpp +++ b/src-qt5/core/lumina-desktop/SystemWindow.cpp @@ -12,6 +12,7 @@ SystemWindow::SystemWindow() : QDialog(), ui(new Ui::SystemWindow){ ui->setupUi(this); //load the designer file + this->setObjectName("LeaveDialog"); //Setup the window flags this->setWindowFlags( Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //Setup the icons based on the current theme @@ -28,6 +29,7 @@ SystemWindow::SystemWindow() : QDialog(), ui(new Ui::SystemWindow){ connect(ui->tool_suspend, SIGNAL(clicked()), this, SLOT(sysSuspend()) ); connect(ui->push_cancel, SIGNAL(clicked()), this, SLOT(sysCancel()) ); connect(ui->push_lock, SIGNAL(clicked()), this, SLOT(sysLock()) ); + connect(ui->tool_restart_updates, SIGNAL(clicked()), this, SLOT(sysUpdate()) ); //Disable buttons if necessary updateWindow(); ui->tool_suspend->setVisible(LOS::systemCanSuspend()); //does not change with time - just do a single check @@ -45,6 +47,7 @@ void SystemWindow::updateWindow(){ bool ok = LOS::userHasShutdownAccess(); ui->tool_restart->setEnabled(ok); ui->tool_shutdown->setEnabled(ok); + ui->frame_update->setVisible( !LOS::systemPendingUpdates().isEmpty() ); //Center this window on the current screen QPoint center = QApplication::desktop()->screenGeometry(QCursor::pos()).center(); //get the center of the current screen this->move(center.x() - this->width()/2, center.y() - this->height()/2); @@ -73,21 +76,29 @@ void SystemWindow::sysLogout(){ LSession::processEvents(); QTimer::singleShot(0, LSession::handle(), SLOT(StartLogout()) ); } - + void SystemWindow::sysRestart(){ - bool skip = false; - if(!promptAboutUpdates(skip)){ this->close(); return; } //cancelled - this->close(); - LSession::processEvents(); - LSession::handle()->StartReboot(skip); + //bool skip = false; + //if(!promptAboutUpdates(skip)){ this->close(); return; } //cancelled + //this->close(); + //LSession::processEvents(); + LSession::handle()->StartReboot(true); +} + +void SystemWindow::sysUpdate(){ + //bool skip = false; + //if(!promptAboutUpdates(skip)){ this->close(); return; } //cancelled + //this->close(); + //LSession::processEvents(); + LSession::handle()->StartReboot(false); } - + void SystemWindow::sysShutdown(){ - bool skip = false; - if(!promptAboutUpdates(skip)){ this->close(); return; } //cancelled - this->close(); - LSession::processEvents(); - LSession::handle()->StartShutdown(skip); + //bool skip = false; + //if(!promptAboutUpdates(skip)){ this->close(); return; } //cancelled + //this->close(); + //LSession::processEvents(); + LSession::handle()->StartShutdown(); } void SystemWindow::sysSuspend(){ diff --git a/src-qt5/core/lumina-desktop/SystemWindow.h b/src-qt5/core/lumina-desktop/SystemWindow.h index bbef36a3..ad67c7e4 100644 --- a/src-qt5/core/lumina-desktop/SystemWindow.h +++ b/src-qt5/core/lumina-desktop/SystemWindow.h @@ -5,9 +5,6 @@ #include "ui_SystemWindow.h" - - - namespace Ui{ class SystemWindow; }; @@ -29,17 +26,17 @@ private: private slots: void sysLogout(); - + void sysRestart(); - + void sysUpdate(); void sysShutdown(); - + void sysSuspend(); void sysCancel(){ this->close(); } - + void sysLock(); }; diff --git a/src-qt5/core/lumina-desktop/SystemWindow.ui b/src-qt5/core/lumina-desktop/SystemWindow.ui index 49beb0d9..dfc3bed2 100644 --- a/src-qt5/core/lumina-desktop/SystemWindow.ui +++ b/src-qt5/core/lumina-desktop/SystemWindow.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>289</width> - <height>135</height> + <width>422</width> + <height>173</height> </rect> </property> <property name="windowTitle"> @@ -48,6 +48,19 @@ <number>0</number> </property> <item> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + <item> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QToolButton" name="tool_logout"> @@ -100,6 +113,71 @@ </layout> </item> <item> + <widget class="QFrame" name="frame_update"> + <property name="styleSheet"> + <string notr="true">QFrame{ background-color: rgba(150,150,0,50); }</string> + </property> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QToolButton" name="tool_restart_updates"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Update Now</string> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Updates ready to install</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> diff --git a/src-qt5/core/lumina-desktop/WMProcess.cpp b/src-qt5/core/lumina-desktop/WMProcess.cpp index aa01b730..0687c1fe 100644 --- a/src-qt5/core/lumina-desktop/WMProcess.cpp +++ b/src-qt5/core/lumina-desktop/WMProcess.cpp @@ -30,7 +30,7 @@ void WMProcess::startWM(){ if(!isRunning()){this->start(cmd); } /*if(ssaver->state() == QProcess::NotRunning \ && LSession::handle()->sessionSettings()->value("WindowManager", "fluxbox").toString() != "lumina-wm"){ - ssaver->start("xscreensaver -no-splash"); + ssaver->start("xscreensaver -no-splash"); }*/ } @@ -52,8 +52,8 @@ void WMProcess::restartWM(){ inShutdown = true; this->kill(); if(!this->waitForFinished(5000) ){ this->terminate(); }; - inShutdown = false; - } + inShutdown = false; + } this->startWM(); } diff --git a/src-qt5/core/lumina-desktop/defaults/desktop-background-TrueOS.jpg b/src-qt5/core/lumina-desktop/defaults/desktop-background-TrueOS.jpg Binary files differindex de11074e..3fd8cc49 100644 --- a/src-qt5/core/lumina-desktop/defaults/desktop-background-TrueOS.jpg +++ b/src-qt5/core/lumina-desktop/defaults/desktop-background-TrueOS.jpg diff --git a/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf b/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf index c1f3a194..543f9eaa 100644 --- a/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf +++ b/src-qt5/core/lumina-desktop/defaults/luminaDesktop-TrueOS.conf @@ -42,6 +42,7 @@ mime_default_unknown/*=lumina-textedit.desktop mime_default_application/x-shellscript=lumina-textedit.desktop mime_default_application/pdf_ifexists=pc-pdfviewer.desktop mime_default_application/pdf_ifexists=okular.desktop +mime_default_application/pdf_ifexists=lumina-pdf.desktop mime_default_application/zip_ifexists=lumina-archiver.desktop mime_default_application/x-compressed-tar_ifexists=lumina-archiver.desktop mime_default_application/x-bzip-compressed-tar_ifexists=lumina-archiver.desktop @@ -51,26 +52,27 @@ mime_default_application/x-xz-compressed-tar_ifexists=lumina-archiver.desktop mime_default_application/x-tar_ifexists=lumina-archiver.desktop #THEME SETTINGS -theme_themefile=Glass #Name of the theme to use (disable for Lumina-Default) -theme_colorfile=Lumina-Glass #Name of the color spec file to use for theming -theme_iconset=oxygen #Name of the icon theme to use -theme_font=Arial #Name of the font family to use +theme_themefile=DarkGlass #Name of the theme to use (disable for Lumina-Default) +theme_styles=scrollbar-simple, tooltip-simple, sliders-simple, traynotification-simple +theme_colorfile=darker #Name of the color spec file to use for theming +theme_iconset=material-design-dark #Name of the icon theme to use +theme_font=Noto Sans #Name of the font family to use theme_fontsize=10pt #Default size of the fonts to use on the desktop (can also use a percentage of the screen height (<number>%) ) #DESKTOP SETTINGS (used for the primary screen in multi-screen setups) desktop_visiblepanels=1 #[0 - 12] The number of panels visible by default -#desktop_backgroundfiles= #list of absolute file paths for image files (disable for Lumina default) +desktop_backgroundfiles=/usr/local/share/lumina-desktop/desktop-background.jpg #list of absolute file paths for image files (disable for Lumina default) desktop_backgroundrotateminutes=5 #[positive integer] number of minutes between background rotations (if multiple files) -desktop_plugins=rssreader #list of plugins to be shown on the desktop by default +#desktop_plugins= #list of plugins to be shown on the desktop by default desktop_generate_icons=true #[true/false] Auto-generate launchers for ~/Desktop items #PANEL SETTINGS (preface with panel1.<setting> or panel2.<setting>, depending on the number of panels you have visible by default) panel1_location=bottom #[top/bottom/left/right] Screen edge the panel should be on -panel1_pixelsize=3.5%H #number of pixels wide/high the panel should be (or <number>%[W/H] for a percentage of the screen width/height) +panel1_pixelsize=5%H #number of pixels wide/high the panel should be (or <number>%[W/H] for a percentage of the screen width/height) panel1_autohide=false #[true/false] Have the panel become visible on mouse-over panel1_plugins=systemstart, taskmanager-nogroups, spacer, systemtray, clock, battery #list of plugins for the panel panel1_pinlocation=center #[left/center/right] Note:[left/right] corresponds to [top/bottom] for vertical panels -panel1_edgepercent=99 #[1->100] percentage of the screen edge to use +panel1_edgepercent=100 #[1->100] percentage of the screen edge to use #MENU SETTINGS (right-click menu) menu_plugins=terminal, filemanager, applications, line, settings, line, lockdesktop#list of menu plugins to show @@ -96,6 +98,19 @@ favorites_add_ifexists=~/Videos #quicklaunch_add=<file/dir path> #Create a quicklaunch shortcut for this file/dir #quicklaunch_add_ifexists=<file/dir path> #Create a quicklaunch shortcut for this file/dir if the file/dir exists +#Desktop Folder symlinks +#desktoplinks_add=<file/dir path> +desktoplinks_add=firefox.desktop +desktoplinks_add=chromium-browser.desktop +desktoplinks_add=qupzilla.desktop +desktoplinks_add=thunderbird.desktop +desktoplinks_add=trojita.desktop +desktoplinks_add=vlc.desktop +desktoplinks_add=pccontrol.desktop +desktoplinks_add=lthemeengine.desktop +desktoplinks_add=lumina-config.desktop +desktoplinks_add=appcafe.desktop +desktoplinks_add=handbook.desktop #Generic scripts/utilities to run for any additional setup procedures # These are always run after all other settings are saved #Format: usersetup_run=<generic command to run> diff --git a/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf b/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf index 46d00053..0e6101c1 100644 --- a/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf +++ b/src-qt5/core/lumina-desktop/defaults/luminaDesktop.conf @@ -6,12 +6,12 @@ # system corresponding to the XDG mime-type specifications for default applications # See Here for specifications: http://www.freedesktop.org/wiki/Specifications/mime-apps-spec/ -# Possible Desktop Plugins (Lumina version 0.9.1): +# Possible Desktop Plugins: # calendar, applauncher[::absolute path to *.desktop file], desktopview, notepad, audioplayer, rssreader -# Possible Panel Plugins (Lumina version 0.9.1): +# Possible Panel Plugins: # userbutton, desktopbar, spacer, desktopswitcher, battery, clock, systemdashboard, systemstart # taskmanager[-nogroups], systemtray, homebutton, appmenu, applauncher[::absolute path to *.desktop file] -# Possible Menu Plugins (Lumina version 0.9.1): +# Possible Menu Plugins: # terminal, filemanager, applications, line, settings, windowlist, app::<absolute path to *.desktop file> #GENERAL SESSION SETTINGS @@ -34,9 +34,12 @@ session_default_email_ifexists=trojita.desktop #DEFAULT UTILITIES FOR INDIVIDUAL MIME TYPES # Format: mime_default_<mimetype>[_ifexists]=<*.desktop file> mime_default_text/*_ifexists=lumina-textedit.desktop +mime_default_audio/*_ifexists=lumina-mediaplayer.desktop mime_default_audio/*_ifexists=vlc.desktop +mime_default_video/*_ifexists=lumina-mediaplayer.desktop mime_default_video/*_ifexists=vlc.desktop mime_default_application/zip_ifexists=lumina-archiver.desktop +mime_default_application/pdf_ifexists=lumina-pdf.desktop mime_default_application/x-compressed-tar_ifexists=lumina-archiver.desktop mime_default_application/x-bzip-compressed-tar_ifexists=lumina-archiver.desktop mime_default_application/x-lrzip-compressed-tar_ifexists=lumina-archiver.desktop @@ -47,9 +50,10 @@ mime_default_unknown/*=lumina-textedit.desktop mime_default_application/x-shellscript=lumina-textedit.desktop #THEME SETTINGS -theme_themefile=Glass #Name of the theme to use (disable for Lumina-Default) -theme_colorfile=Lumina-Glass #Name of the color spec file to use for theming -theme_iconset=oxygen #Name of the icon theme to use +theme_themefile=DarkGlass #Name of the theme to use +theme_styles=scrollbar-simple, tooltip-simple, sliders-simple, traynotification-simple +theme_colorfile=darker #Name of the color spec file to use for theming +theme_iconset=material-design-dark #Name of the icon theme to use theme_font=Arial #Name of the font family to use theme_fontsize=10pt #Default size of the fonts to use on the desktop (can also use a percentage of the screen height (<number>%) ) @@ -66,7 +70,7 @@ panel1_pixelsize=3.5%H #number of pixels wide/high the panel should be (or <numb panel1_autohide=false #[true/false] Have the panel become visible on mouse-over panel1_plugins=systemstart, taskmanager-nogroups, spacer, systemtray, clock, battery #list of plugins for the panel panel1_pinlocation=center #[left/center/right] Note:[left/right] corresponds to [top/bottom] for vertical panels -panel1_edgepercent=99 #[1->100] percentage of the screen edge to use +panel1_edgepercent=100 #[1->100] percentage of the screen edge to use panel2_location=top panel2_pixelsize=3%H diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp index 0258d561..0bf087c1 100644 --- a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp +++ b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp @@ -44,7 +44,8 @@ void AppLauncherPlugin::loadButton(){ QFileInfo info(path); this->contextMenu()->clear(); //qDebug() << "Default Application Launcher:" << def << path; - bool ok = QFile::exists(path); + bool ok = info.canonicalPath().startsWith("/net/"); + if(!ok){ ok = QFile::exists(path); } //do it this way to ensure the file existance check never runs for /net/ files if(!ok){ emit RemovePlugin(this->ID()); return;} icosize = this->height()-4 - 2.2*button->fontMetrics().height(); button->setFixedSize( this->width()-4, this->height()-4); diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.h b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.h index 34a75ce8..c8e3a475 100644 --- a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.h +++ b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.h @@ -30,7 +30,7 @@ public: ~AppLauncherPlugin(){} void Cleanup(); //special function for final cleanup - + private: QToolButton *button; QFileSystemWatcher *watcher; @@ -45,7 +45,7 @@ private slots: void iconLoaded(QString); //void openContextMenu(); - + //void increaseIconSize(); //void decreaseIconSize(); //void deleteFile(); @@ -63,11 +63,16 @@ public slots: void LocaleChange(){ loadButton(); //force reload } - + protected: void resizeEvent(QResizeEvent *ev){ LDPlugin::resizeEvent(ev); QTimer::singleShot(100, this, SLOT(loadButton()) ); } + void changeEvent(QEvent *ev){ + LDPlugin::changeEvent(ev); + QEvent::Type tmp = ev->type(); + if(tmp == QEvent::StyleChange || tmp==QEvent::ThemeChange || tmp==QEvent::LanguageChange || tmp==QEvent::LocaleChange){ loadButton(); } + } }; #endif diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSFeedPlugin.cpp b/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSFeedPlugin.cpp index c330d6c0..e8e5adb4 100644 --- a/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSFeedPlugin.cpp +++ b/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSFeedPlugin.cpp @@ -119,11 +119,13 @@ void RSSFeedPlugin::updateFeed(QString ID){ if(!data.items[i].author_email.isEmpty()){ html.append("<a href=\"mailto:"+data.items[i].author_email+"\" style=\"color: "+color+";\">"+data.items[i].author+"</a>"); } else{ html.append(data.items[i].author); } } - html.append(")</i><br>"); + html.append(")</i>"); + if(data.rss) + html.append("<br>"); } html.append(data.items[i].description); //html.append("</li>\n"); - if(i+1 < data.items.length()){ html.append("<br>"); } + if(i+1 < data.items.length() && data.rss){ html.append("<br>"); } } //html.append("</ul>\n"); // - load that html into the viewer diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.cpp b/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.cpp index cd29d5f0..5f62f99f 100644 --- a/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.cpp +++ b/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.cpp @@ -10,6 +10,8 @@ #include "LSession.h" +#define DEBUG 0 + //============ // PUBLIC //============ @@ -116,18 +118,51 @@ RSSchannel RSSReader::readRSS(QByteArray bytes){ RSSchannel rssinfo; //qDebug() << "Can Read XML Stream:" << !xml.hasError(); if(xml.readNextStartElement()){ - //qDebug() << " - RSS Element:" << xml.name(); - if(xml.name() == "rss" && (xml.attributes().value("version") =="2.0" || xml.attributes().value("version") =="0.91") ){ + if(DEBUG) qDebug() << " - RSS Element:" << xml.name(); + if(xml.name() == "rss" && (xml.attributes().value("version") =="2.0" || xml.attributes().value("version") =="0.91")) { + rssinfo.rss = true; while(xml.readNextStartElement()){ //qDebug() << " - RSS Element:" << xml.name(); if(xml.name()=="channel"){ rssinfo = readRSSChannel(&xml); } else{ xml.skipCurrentElement(); } } + }else if(xml.name() == "feed") { + rssinfo.timetolive = -1; + rssinfo.rss = false; + while(xml.readNextStartElement()){ + if(DEBUG) qDebug() << " - ATOM Element (channel):" << xml.name(); + if(xml.name()=="entry") { + rssinfo.items << readRSSItemAtom(&xml); + }else if(xml.name()=="title"){ + rssinfo.title = xml.readElementText(); + if(DEBUG) qDebug() << "title" << rssinfo.link; + }else if(xml.name()=="link"){ + QXmlStreamAttributes att = xml.attributes(); + for(int i = 0; i < att.size(); i++) { + if(att[i].name() == "href") { + rssinfo.link = att[i].value().toString(); + } + } + xml.readElementText(); + if(DEBUG) qDebug() << "link" << rssinfo.link; + }else if(xml.name()=="subtitle"){ + rssinfo.description = xml.readElementText(); + }else if(xml.name()=="updated"){ + rssinfo.lastBuildDate = ATOMDateTime(xml.readElementText()); + }else if(xml.name()=="icon"){ + rssinfo.icon_url = xml.readElementText(); + if(DEBUG) qDebug() << "icon" << rssinfo.icon_url; + requestRSS(rssinfo.icon_url); + }else{ + xml.skipCurrentElement(); + } + } } } - if(xml.hasError()){ qDebug() << " - XML Read Error:" << xml.errorString() << "\n" << bytes; } + //if(xml.hasError()){ qDebug() << " - XML Read Error:" << xml.errorString() << "\n" << bytes; } return rssinfo; } + RSSchannel RSSReader::readRSSChannel(QXmlStreamReader *rss){ RSSchannel info; info.timetolive = -1; @@ -151,6 +186,40 @@ RSSchannel RSSReader::readRSSChannel(QXmlStreamReader *rss){ return info; } +RSSitem RSSReader::readRSSItemAtom(QXmlStreamReader *rss){ + RSSitem item; + while(rss->readNextStartElement()){ + if(rss->name()=="title"){ + item.title = rss->readElementText(); + if(DEBUG) qDebug() << rss->name() << item.title; + }else if(rss->name()=="link"){ + QXmlStreamAttributes att = rss->attributes(); + for(int i = 0; i < att.size(); i++) { + if(att[i].name() == "href") { + item.link = att[i].value().toString(); + } + } + rss->readElementText(); + if(DEBUG) qDebug() << rss->name() << item.link; + }else if(rss->name()=="summary"){ + item.description = rss->readElementText(); + if(DEBUG) qDebug() << rss->name() << item.description; + } else if(rss->name()=="comments"){ + item.comments_url = rss->readElementText(); + if(DEBUG) qDebug() << rss->name() << item.comments_url; + } else if(rss->name()=="author"){ + rss->readNextStartElement(); + item.author = rss->readElementText(); + if(DEBUG) qDebug() << "author" << item.author; + rss->skipCurrentElement(); + }else if(rss->name()=="updated"){ + item.pubdate = ATOMDateTime(rss->readElementText()); + if(DEBUG) qDebug() << rss->name() << item.pubdate; + } else{ rss->skipCurrentElement(); } + } + return item; +} + RSSitem RSSReader::readRSSItem(QXmlStreamReader *rss){ RSSitem item; while(rss->readNextStartElement()){ @@ -192,17 +261,21 @@ QDateTime RSSReader::RSSDateTime(QString datetime){ return QDateTime::fromString(datetime, Qt::RFC2822Date); } +QDateTime RSSReader::ATOMDateTime(QString datetime){ + return QDateTime::fromString(datetime, Qt::ISODate); +} + //================= // PRIVATE SLOTS //================= void RSSReader::replyFinished(QNetworkReply *reply){ QString url = reply->request().url().toString(); - //qDebug() << "Got Reply:" << url; + qDebug() << "Got Reply:" << url; QString key = keyForUrl(url); //current hash key for this URL QByteArray data = reply->readAll(); outstandingURLS.removeAll(url); if(data.isEmpty()){ - //qDebug() << "No data returned:" << url; + qDebug() << "No data returned:" << url; //see if the URL can be adjusted for known issues bool handled = false; QUrl redirecturl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); @@ -229,13 +302,13 @@ void RSSReader::replyFinished(QNetworkReply *reply){ //Could also be an icon fetch response QStringList keys = hash.keys(); for(int i=0; i<keys.length(); i++){ - //qDebug() << " - Check for icon URL:" << hash[keys[i]].icon_url; + qDebug() << " - Check for icon URL:" << hash[keys[i]].icon_url; if(hash[keys[i]].icon_url.toLower() == url.toLower()){ //needs to be case-insensitive //Icon fetch response RSSchannel info = hash[keys[i]]; QImage img = QImage::fromData(data); info.icon = QIcon( QPixmap::fromImage(img) ); - //qDebug() << "Got Icon response:" << url << info.icon; + qDebug() << "Got Icon response:" << url << info.icon; hash.insert(keys[i], info); //insert back into the hash emit rssChanged( hash[keys[i]].originalURL ); break; diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.h b/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.h index 3069bf8d..9d65ee57 100644 --- a/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.h +++ b/src-qt5/core/lumina-desktop/desktop-plugins/rssreader/RSSObjects.h @@ -51,6 +51,7 @@ struct RSSchannel{ //Internal data for bookkeeping QDateTime lastsync, nextsync; QString originalURL; //in case it was redirected to some "fixed" url later + bool rss; }; class RSSReader : public QObject{ @@ -88,9 +89,12 @@ private: //RSS parsing functions RSSchannel readRSS(QByteArray bytes); RSSchannel readRSSChannel(QXmlStreamReader *rss); + RSSchannel readRSSChannelAtom(QXmlStreamReader *rss); RSSitem readRSSItem(QXmlStreamReader *rss); - void readRSSImage(RSSchannel *item, QXmlStreamReader *rss); + RSSitem readRSSItemAtom(QXmlStreamReader *rss); + void readRSSImage(RSSchannel *item, QXmlStreamReader *rss); QDateTime RSSDateTime(QString datetime); + QDateTime ATOMDateTime(QString datetime); private slots: void replyFinished(QNetworkReply *reply); diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/systemmonitor/MonitorWidget.cpp b/src-qt5/core/lumina-desktop/desktop-plugins/systemmonitor/MonitorWidget.cpp index 951bcc98..7097e2a9 100644 --- a/src-qt5/core/lumina-desktop/desktop-plugins/systemmonitor/MonitorWidget.cpp +++ b/src-qt5/core/lumina-desktop/desktop-plugins/systemmonitor/MonitorWidget.cpp @@ -17,6 +17,9 @@ MonitorWidget::MonitorWidget(QWidget *parent) : QWidget(parent), ui(new Ui::Moni upTimer->setInterval(2000); //update every 2 seconds connect(upTimer, SIGNAL(timeout()), this, SLOT(UpdateStats()) ); LoadIcons(); + ui->label->setText( tr("CPU Temp:") ); + ui->label_2->setText( tr("CPU Usage:") ); + ui->label_3->setText( tr("Mem Usage:") ); upTimer->start(); } @@ -25,7 +28,7 @@ MonitorWidget::~MonitorWidget(){ } void MonitorWidget::LoadIcons(){ - ui->tabWidget->setTabIcon(0,LXDG::findIcon("appointment-recurring","") ); //Summary + ui->tabWidget->setTabIcon(0,LXDG::findIcon("appointment-blank","") ); //Summary ui->tabWidget->setTabIcon(1,LXDG::findIcon("drive-harddisk","") ); //Disk Usage //ui->tabWidget->setTabIcon(1,LXDG::findIcon("cpu","") ); //CPU Log //ui->tabWidget->setTabIcon(2,LXDG::findIcon("media-flash-memory-stick","") ); //Mem Log @@ -60,4 +63,4 @@ SysMonitorPlugin::SysMonitorPlugin(QWidget *parent, QString ID) : LDPlugin(paren SysMonitorPlugin::~SysMonitorPlugin(){ //qDebug() << "Remove SysMonitorPlugin"; -}
\ No newline at end of file +} diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_af.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_af.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_af.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_af.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ar.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ar.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ar.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ar.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_az.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_az.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_az.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_az.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bg.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bg.ts index c603fd8c..d17703bb 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bg.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bg.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Кликнете за задаване</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Стартиране на %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Отваряне</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Копиране</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Изрязване</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Изтриване</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Избор на програма</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Име:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (зарежда се)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 оставащи)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Напускане</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Работен плот</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Работен плот</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Активиране на прозореца</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Минимизиране на прозореца</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Възстановяване на прозореца</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Максимизиране на прозореца</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Затваряне на прозореца</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Показване на всички прозорци</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Минимизиране на всички прозорци</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Затваряне на всички прозорци</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Температура на процесора</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Натовареност на процесора</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Използване на паметта</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Отписване</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Настройки</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Системата е в процес на обновление)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Назад</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Отказ</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (външно захранване)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (приблизително %2)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>остават %1%</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Работен плот %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Отказ</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Заключване</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Изключване</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Несортирани</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Мултимедия</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Разработка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Образование</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Игри</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Изображения</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Мрежа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Офис</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Наука</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Настройки</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Инструменти</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Несортирани</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bn.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bn.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bn.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bn.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bs.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bs.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bs.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_bs.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> 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 4cd0c63e..4a65596e 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ca.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ca.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Cliqueu per establir-ho</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation>Llança %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>Obre</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Obre amb</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>Mostra'n les propietats</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation>Operacions de fitxers</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>Canvia'n el nom</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>Copia</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation>Retalla</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>Suprimeix</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Seleccioneu l'aplicació</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nom:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>Nom de fitxer nou</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Carregant)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (resten %2)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation>Carpeta nova</translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation>Fitxer nou</translation> </message> @@ -823,9 +823,9 @@ <translation>Surt</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation>Escriptori</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Escriptori</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Activa la finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimitza la finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Restaura la finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximitza la finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Tanca la finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Mostra totes les finestres</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimitza totes les finestres</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Tanca totes les finestres</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Temp. CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Ús de la CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Ús de memòria:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation>Atura</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation>Surt</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferències</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(El sistema està processant actualitzacions)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Enrere</translation> </message> @@ -1461,37 +1474,37 @@ <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="291"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Sí</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="292"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>No</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="293"/> <source>Cancel</source> - <translation type="unfinished">Cancel·la</translation> + <translation>Cancel·la</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (connectat)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 estimat)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>Resta %1%</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Espai de treball %1/%2</translation> </message> @@ -1519,40 +1532,50 @@ <translation>Atura</translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Cancel·la</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Bloqueja</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Atura temporalment</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Aplico les actualitzacions?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Teniu actualitzacions de sistema per aplicar! Voleu instal·lar-les ara?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Sí</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>No</translation> </message> </context> <context> @@ -1759,4 +1782,72 @@ <translation>Sense ordenar</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimèdia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desenvolupament</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educació</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Jocs</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gràfics</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Xarxa</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Oficina</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Ciència</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Configuració</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Utilitat</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> 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 adc843ed..eab383cb 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cs.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cs.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Nastavte kliknutím</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation>Spustit %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>Otevřít</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Otevřít pomocí</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>Zobrazit vlastnosti</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation>Operace se souborem</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>Přejmenovat</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>Kopírovat</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation>Vyjmout</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>Vymazat</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Vybrat aplikaci</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Název:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>Nový název souboru</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Nabíjení)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Zbývá)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation>Nová složka</translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation>Nový soubor</translation> </message> @@ -823,9 +823,9 @@ <translation>Opustit</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation>Plocha</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Plocha</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktivovat okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimalizovat okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Obnovit okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximalizovat okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Zavřít okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Ukázat všechna okna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimalizovat všechna okna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Zavřít všechna okna</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Teplota procesoru:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Využití procesoru:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Využití operační paměti:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation>Vypnout</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation>Odhlásit se</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Nastavení</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(systém instaluje aktualizace)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Zpět</translation> </message> @@ -1461,37 +1474,37 @@ <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="291"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Ano</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="292"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>Ne</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="293"/> <source>Cancel</source> - <translation type="unfinished">Storno</translation> + <translation>Storno</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (zapojeno)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (odhadováno %2)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% zbývá</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Pracovní plocha %1/%2</translation> </message> @@ -1519,40 +1532,50 @@ <translation>Vypnout</translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Storno</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Zamknout</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Uspat do paměti</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Nainstalovat aktualizace?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Aktualizace systému čekají na instalaci! Chcete je nainstalovat nyní?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Ano</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>Ne</translation> </message> </context> <context> @@ -1759,4 +1782,72 @@ <translation>Nezařazené</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Vývoj</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Výuka</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Hry</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Síť</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kancelář</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Věda</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Nastavení</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Systém</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Nástroje</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cy.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cy.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cy.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_cy.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts index f791a3d9..2507a671 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Klik for at sætte</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation>Start %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>Åbn</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Åbn med</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>Vis egenskaber</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation>Filhandlinger</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>Omdøb</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>Kopiér</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation>Klip</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>Slet</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Vælg program</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Navn:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>Nyt filnavn</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (lader)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 tilbage)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation>Ny mappe</translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation>Ny fil</translation> </message> @@ -823,9 +823,9 @@ <translation>Afslut</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation>Skrivebord</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Skrivebord</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktivér vindue</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimér vindue</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Gendan vindue</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maksimér vindue</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Luk vindue</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Vis alle vinduer</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimer alle vinduer</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Luk alle vinduer</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU-temperatur:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU-forbrug:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Hukommelsesforbrug:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation>Sluk</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation>Log ud</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Præferencer</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(systemet udfører opdateringer)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Tilbage</translation> </message> @@ -1461,37 +1474,37 @@ <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="291"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Ja</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="292"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>Nej</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="293"/> <source>Cancel</source> - <translation type="unfinished">Annuller</translation> + <translation>Annuller</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (tilsluttet)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 estimeret)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% tilbage</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Arbejdsområde %1/%2</translation> </message> @@ -1519,40 +1532,50 @@ <translation>Sluk</translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Annuller</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Lås</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Dvale</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Opdater?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Du har systemopdateringer der venter! Ønsker du at installere dem nu?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Ja</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>Nej</translation> </message> </context> <context> @@ -1759,4 +1782,72 @@ <translation>Usorteret</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedie</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Udvikling</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Uddannelse</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Spil</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Netværk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kontor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Videnskab</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Indstillinger</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Hjælpeværktøj</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Usorteret</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts index 80b8eb9d..65b16cdd 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Klicken zum Festlegen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation>%1 starten</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>Öffnen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Öffnen mit</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>Eigenschaften anzeigen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation>Dateioperationen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>Umbenennen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>Kopieren</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation>Ausschneiden</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>Löschen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Anwendung auswählen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Name:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>Neuer Dateiname</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Aufladen)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 verbleibend)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Verlassen</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Arbeitsfläche</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Arbeitsfläche</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Fenster aktivieren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Fenster minimieren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Fenster wiederherstellen</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Fenster maximieren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Fenster schließen</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Zeige alle Fenster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Alle Fenster minimieren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Alle Fenster schließen</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU Temperatur:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU-Auslastung:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Speicherauslastung:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Abmelden</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Einstellungen</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Updates werden verarbeitet)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Zurück</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Abbrechen</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Eingesteckt)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Geschätzt)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% verbleibend</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Arbeitsbereich %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Abbrechen</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Sperren</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>In Bereitschaft versetzen</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Aktualisierungen anwenden?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Sie haben Systemaktualisierungen, die darauf warten, angewendet zu werden! Möchten Sie sie jetzt installieren?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Unsortiert</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Entwicklung</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Bildung</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Spiele</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Netzwerk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Büro</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Wissenschaft</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Einstellungen</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Dienstprogramm</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Unsortiert</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_el.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_el.ts index 118b48b1..341f847d 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_el.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_el.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Επιλογή εφαρμογής</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Όνομα:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_AU.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_AU.ts index 3cf7e09c..52d0e88f 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_AU.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_AU.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Click to Set</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Starte %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Open</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Copy</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Cut</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Delete</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Select Application</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Name:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Charging)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Remaining)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Leave</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Desktop</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Desktop</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Activate Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimise Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Restore Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximise Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Close Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Show All Windows</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimise All Windows</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Close All Windows</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU Temp:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU Usage:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Mem Usage:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Log Out</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferences</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(System Performing Updates)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Back</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Cancel</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Plugged In)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Estimated)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Remaining</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Workspace %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Cancel</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Lock</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Suspend</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Apply Updates?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>You have system updates waiting to be applied! Do you wish to install them now?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Unsorted</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Development</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Education</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Games</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Graphics</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Network</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Office</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Science</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Settings</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Utility</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Unsorted</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_GB.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_GB.ts index db35d013..ad847d47 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_GB.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_GB.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Click to Set</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Starte %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Open</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Copy</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Cut</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Delete</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Select Application</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Name:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Charging)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Remaining)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Leave</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Desktop</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Desktop</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Activate Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimise Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Restore Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximise Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Close Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Show All Windows</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimise All Windows</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Close All Windows</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU Temp:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU Usage:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Mem Usage:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Log Out</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferences</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(System Performing Updates)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Back</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Cancel</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Plugged In)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Estimated)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Remaining</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Workspace %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Cancel</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Lock</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Suspend</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Apply Updates?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>You have system updates waiting to be applied! Do you wish to install them now?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Unsorted</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Development</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Education</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Games</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Graphics</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Network</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Office</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Science</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Settings</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Utility</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Unsorted</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_ZA.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_ZA.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_ZA.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_en_ZA.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_es.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_es.ts index 319f90ab..60c6c305 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_es.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_es.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Presione para Aplicar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Lanzar %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>Abrir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Abrir con</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>Copiar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Cortar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>Borrar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Seleccionar Aplicación</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nombre:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Cargando)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Restante)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Salir</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Escritorio</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Escritorio</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Activar Ventana</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimizar Ventana</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Restaurar Ventana</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximizar Ventana</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Cerrar Ventana</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Mostrar Todas Las Ventanas</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimizar Todas las Ventanas</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Cerrar Todas las Ventanas</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Temperatura de CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Uso del CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Uso de la Memoria:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Cerrar Sesión</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferencias</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Sistema Aplicando Actualizaciones)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Atrás</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Cancelar</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Conectado)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Estimado)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Restante</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Área de Trabajo %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Cancelar</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Bloquear</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Suspender</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>¿Aplicar Actualizaciones?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>!Tienes actualizaciones del sistema esperando ser aplicadas! ¿Quisieras instalarlas ahora?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Sin Ordenar</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desarrollo</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educación</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Juegos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gráficos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Red</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Oficina</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Ciencia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Configuración</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Utilerías</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Sin Ordenar</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_et.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_et.ts index 4fbe1d5b..e1b60acb 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_et.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_et.ts @@ -32,70 +32,70 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Klõpsa määramiseks</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> - <translation type="unfinished">Käivita %1</translation> + <translation>Käivita %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> - <translation type="unfinished">Ava</translation> + <translation>Ava</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> - <translation type="unfinished"></translation> + <translation>Ava Kasutades</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> - <translation type="unfinished"></translation> + <translation>Vaata Omadusi</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> - <translation type="unfinished"></translation> + <translation>Failioperatsioonid</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> - <translation type="unfinished"></translation> + <translation>Nimeta Ümber</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> - <translation type="unfinished">Kopeeri</translation> + <translation>Kopeeri</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> - <translation type="unfinished">Lõika</translation> + <translation>Lõika</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> - <translation type="unfinished">Kustuta</translation> + <translation>Kustuta</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Vali rakendus</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nimi:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> - <translation type="unfinished"></translation> + <translation>Uus Failinimi</translation> </message> </context> <context> @@ -103,12 +103,12 @@ <message> <location filename="../AppMenu.cpp" line="48"/> <source>Desktop</source> - <translation type="unfinished">Töölaud</translation> + <translation>Töölaud</translation> </message> <message> <location filename="../AppMenu.cpp" line="85"/> <source>Manage Applications</source> - <translation type="unfinished"></translation> + <translation>Halda Rakendusi</translation> </message> <message> <location filename="../AppMenu.cpp" line="90"/> @@ -196,47 +196,47 @@ <message> <location filename="../BootSplash.ui" line="94"/> <source>Starting the Lumina Desktop...</source> - <translation type="unfinished"></translation> + <translation>Lumina Töölaua käivitumine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="17"/> <source>Version %1</source> - <translation type="unfinished"></translation> + <translation>Versioon %1</translation> </message> <message> <location filename="../BootSplash.cpp" line="41"/> <source>This desktop is powered by coffee, coffee, and more coffee.</source> - <translation type="unfinished"></translation> + <translation>Töölaua valmimist on toetanud kohvi, kohvi ja veel rohkem kohvi.</translation> </message> <message> <location filename="../BootSplash.cpp" line="43"/> <source>Keep up with desktop news!</source> - <translation type="unfinished"></translation> + <translation>Pea silm peal töölaua uudistel!</translation> </message> <message> <location filename="../BootSplash.cpp" line="45"/> <source>There is a full handbook of information about the desktop available online.</source> - <translation type="unfinished"></translation> + <translation>Võrgus on Töölaua kohta olemas täiemahuline käsiraamat (ingl.k)</translation> </message> <message> <location filename="../BootSplash.cpp" line="47"/> <source>Want to change the interface? Everything is customizable in the desktop configuration!</source> - <translation type="unfinished"></translation> + <translation>Soovid muuta kasutajaliidest? Kõik töölaua konfiguratsioonis on muudetav!</translation> </message> <message> <location filename="../BootSplash.cpp" line="49"/> <source>Lumina can easily reproduce the interface from most other desktop environments.</source> - <translation type="unfinished"></translation> + <translation>Lumina võimaldab kergesti taasluua kasutajaliideseid enamikest muudest töölauakeskkondadest</translation> </message> <message> <location filename="../BootSplash.cpp" line="51"/> <source>This desktop is generously sponsored by iXsystems</source> - <translation type="unfinished"></translation> + <translation>Selle töölaua valmimist on heldelt toetanud iXsystems</translation> </message> <message> <location filename="../BootSplash.cpp" line="53"/> <source>I have never been hurt by what I have not said</source> - <translation type="unfinished"></translation> + <translation>Mulle ei ole kunagi haiget teenud ütlemata jäänud asjad</translation> </message> <message> <location filename="../BootSplash.cpp" line="55"/> @@ -246,17 +246,17 @@ <message> <location filename="../BootSplash.cpp" line="57"/> <source>Everything has its beauty but not everyone sees it.</source> - <translation type="unfinished"></translation> + <translation>Kõigel on oma ilu kuid mitte kõik ei oska seda näha</translation> </message> <message> <location filename="../BootSplash.cpp" line="59"/> <source>Before God we are all equally wise - and equally foolish.</source> - <translation type="unfinished"></translation> + <translation>Jumala ees oleme kõik võrdselt targad - ja võrdselt lollid.</translation> </message> <message> <location filename="../BootSplash.cpp" line="61"/> <source>We cannot do everything at once, but we can do something at once.</source> - <translation type="unfinished"></translation> + <translation>Me ei saa teha kõike ühekorraga, kuid me saame teha midagi kohe.</translation> </message> <message> <location filename="../BootSplash.cpp" line="63"/> @@ -271,217 +271,217 @@ <message> <location filename="../BootSplash.cpp" line="67"/> <source>You can't know too much, but you can say too much.</source> - <translation type="unfinished"></translation> + <translation>Sa ei saa kunagi teada liiga palju, kuid saad öelda.</translation> </message> <message> <location filename="../BootSplash.cpp" line="69"/> <source>Duty is not collective; it is personal.</source> - <translation type="unfinished"></translation> + <translation>Kohusetunne ei ole kollektiivne, see on isiklik</translation> </message> <message> <location filename="../BootSplash.cpp" line="71"/> <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>Ühiskond, mis annab ära veidikene vabadust et lisada veidikene turvalisust, ei vääri kumbagi ning kaotab mõlemad.</translation> </message> <message> <location filename="../BootSplash.cpp" line="73"/> <source>Never trust a computer you can’t throw out a window.</source> - <translation type="unfinished"></translation> + <translation>Ära kunagi usalda kompuutrit, mida ei ole võimalik aknast välja visata.</translation> </message> <message> <location filename="../BootSplash.cpp" line="75"/> <source>Study the past if you would define the future.</source> - <translation type="unfinished"></translation> + <translation>Tuleviku ennustamiseks õpi minevikku.</translation> </message> <message> <location filename="../BootSplash.cpp" line="77"/> <source>The way to get started is to quit talking and begin doing.</source> - <translation type="unfinished"></translation> + <translation>Meetod alustamiseks: lõpeta seletamine ja hakka tegema.</translation> </message> <message> <location filename="../BootSplash.cpp" line="79"/> <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>Küsi, ja sulle antakse; Otsi, ning sa leiad; Koputa, ning uks avatakse sulle.</translation> </message> <message> <location filename="../BootSplash.cpp" line="81"/> <source>Start where you are. Use what you have. Do what you can.</source> - <translation type="unfinished"></translation> + <translation>Alusta, sealt kus sa oled. Kasuta, mis sul on. Tee, mis saad.</translation> </message> <message> <location filename="../BootSplash.cpp" line="83"/> <source>A person who never made a mistake never tried anything new.</source> - <translation type="unfinished"></translation> + <translation>Inimene, kes kunagi pole eksinud, ei ole kunagi proovinud teha midagi uut.</translation> </message> <message> <location filename="../BootSplash.cpp" line="85"/> <source>It does not matter how slowly you go as long as you do not stop.</source> - <translation type="unfinished"></translation> + <translation>Pole oluline kui aeglaselt sa kulged, kuni sa ei peatu.</translation> </message> <message> <location filename="../BootSplash.cpp" line="87"/> <source>Do what you can, where you are, with what you have.</source> - <translation type="unfinished"></translation> + <translation>Tee mis saad, kus parajasti oled, mis käepärast on.</translation> </message> <message> <location filename="../BootSplash.cpp" line="89"/> <source>Remember no one can make you feel inferior without your consent.</source> - <translation type="unfinished"></translation> + <translation>Pea meeles et mitte keegi ei saa sind panna tundma alaväärtuslikuna ilma su enda nõusolekuta</translation> </message> <message> <location filename="../BootSplash.cpp" line="91"/> <source>It’s not the years in your life that count. It’s the life in your years.</source> - <translation type="unfinished"></translation> + <translation>Olulised pole elatud aastad. Oluline on elada igas aastas.</translation> </message> <message> <location filename="../BootSplash.cpp" line="93"/> <source>Either write something worth reading or do something worth writing.</source> - <translation type="unfinished"></translation> + <translation>Kirjuta midagi väärt lugemist või tee midagi väärt kirjutamist.</translation> </message> <message> <location filename="../BootSplash.cpp" line="95"/> <source>The only way to do great work is to love what you do.</source> - <translation type="unfinished"></translation> + <translation>Ainus valem heaks tööks on armastada seda.</translation> </message> <message> <location filename="../BootSplash.cpp" line="97"/> <source>Political correctness is tyranny with manners.</source> - <translation type="unfinished"></translation> + <translation>Poliitkorrektsus on kommetega türannia.</translation> </message> <message> <location filename="../BootSplash.cpp" line="99"/> <source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source> - <translation type="unfinished"></translation> + <translation>Ainult kaks asja on lõputud. Universum ja inimese lollus. Ma ei ole kusjuures esimeses kindel.</translation> </message> <message> <location filename="../BootSplash.cpp" line="101"/> <source>I find that the harder I work, the more luck I seem to have.</source> - <translation type="unfinished"></translation> + <translation>Olen avastanud et mida rohkem ma tööd raban, seda rohkem õnne näib mul olevat.</translation> </message> <message> <location filename="../BootSplash.cpp" line="103"/> <source>Do, or do not. There is no 'try'.</source> - <translation type="unfinished"></translation> + <translation>Tee, või ära tee. Lihtsalt proovimine ei ole variant.</translation> </message> <message> <location filename="../BootSplash.cpp" line="105"/> <source>A mathematician is a device for turning coffee into theorems.</source> - <translation type="unfinished"></translation> + <translation>Matemaatik on seade, mis muudab kohvi teoreemideks.</translation> </message> <message> <location filename="../BootSplash.cpp" line="107"/> <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>Head inimesed ei vaja seadusi käitumaks vastutustundlikult, sellal kui halvad inimesed leiavad tee seadustest möödahiilimiseks.</translation> </message> <message> <location filename="../BootSplash.cpp" line="109"/> <source>Black holes are where God divided by zero.</source> - <translation type="unfinished"></translation> + <translation>Mustad augud Universumis on kohad, kus Jumal jagas nulliga.</translation> </message> <message> <location filename="../BootSplash.cpp" line="111"/> <source>It's kind of fun to do the impossible.</source> - <translation type="unfinished"></translation> + <translation>On omamoodi lõbus saata korda võimatut.</translation> </message> <message> <location filename="../BootSplash.cpp" line="113"/> <source>Knowledge speaks, but wisdom listens.</source> - <translation type="unfinished"></translation> + <translation>Teadmised räägivad, tarkus kuulab.</translation> </message> <message> <location filename="../BootSplash.cpp" line="115"/> <source>A witty saying proves nothing.</source> - <translation type="unfinished"></translation> + <translation>Kaval ütlus ei tõesta midagi.</translation> </message> <message> <location filename="../BootSplash.cpp" line="117"/> <source>Success usually comes to those who are too busy to be looking for it.</source> - <translation type="unfinished"></translation> + <translation>Edu tuleb tavaliselt nende juurde, kel on liiga kiire, selleks et seda otsida.</translation> </message> <message> <location filename="../BootSplash.cpp" line="119"/> <source>Well-timed silence hath more eloquence than speech.</source> - <translation type="unfinished"></translation> + <translation>Hästiajastatud vaikus on väljendusrikkam kui kõne</translation> </message> <message> <location filename="../BootSplash.cpp" line="121"/> <source>I have never let my schooling interfere with my education.</source> - <translation type="unfinished"></translation> + <translation>Ma ei ole kunagi lasknud koolil segada enda harimist.</translation> </message> <message> <location filename="../BootSplash.cpp" line="123"/> <source>The best way to predict the future is to invent it.</source> - <translation type="unfinished"></translation> + <translation>Parim meetod tuleviku ennustamiseks on see leiutada</translation> </message> <message> <location filename="../BootSplash.cpp" line="125"/> <source>Well done is better than well said.</source> - <translation type="unfinished"></translation> + <translation>Hästitehtu on parem kui hästiöeldu.</translation> </message> <message> <location filename="../BootSplash.cpp" line="127"/> <source>Sometimes it is not enough that we do our best; we must do what is required.</source> - <translation type="unfinished"></translation> + <translation>Vahel ei piisa meie parimast; Peame tegema seda, mis on vaja.</translation> </message> <message> <location filename="../BootSplash.cpp" line="129"/> <source>The truth is more important than the facts.</source> - <translation type="unfinished"></translation> + <translation>Tõde on olulisem kui faktid.</translation> </message> <message> <location filename="../BootSplash.cpp" line="131"/> <source>Better to remain silent and be thought a fool than to speak out and remove all doubt.</source> - <translation type="unfinished"></translation> + <translation>Parem olla vait ja lasta endast mõelda kui lollist kui teha suu lahti ja eemaldada kõik kahtlused.</translation> </message> <message> <location filename="../BootSplash.cpp" line="142"/> <source>Initializing Session …</source> - <translation type="unfinished"></translation> + <translation>Seansi käivitumine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="145"/> <source>Loading System Settings …</source> - <translation type="unfinished"></translation> + <translation>Süsteemi Seadete laadimine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="148"/> <source>Loading User Preferences …</source> - <translation type="unfinished"></translation> + <translation>Kasutajaeelistuste laadimine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="151"/> <source>Preparing System Tray …</source> - <translation type="unfinished"></translation> + <translation>Süsteemi tööriba ettevalimistamine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="154"/> <source>Starting Window Manager …</source> - <translation type="unfinished"></translation> + <translation>Aknahalduri käivitumine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="157"/> <source>Detecting Applications …</source> - <translation type="unfinished"></translation> + <translation>Olemasolevate programmide tuvastamine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="160"/> <source>Preparing Menus …</source> - <translation type="unfinished"></translation> + <translation>Kasutajamenüüde ettevalmistamine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="163"/> <source>Preparing Workspace …</source> - <translation type="unfinished"></translation> + <translation>Töölaua ettevalmistamine...</translation> </message> <message> <location filename="../BootSplash.cpp" line="166"/> <source>Finalizing …</source> - <translation type="unfinished"></translation> + <translation>Viimased liigutused...</translation> </message> <message> <location filename="../BootSplash.cpp" line="169"/> <source>Starting App: %1</source> - <translation type="unfinished"></translation> + <translation>Käivitan rakenduse: %1</translation> </message> </context> <context> @@ -527,7 +527,7 @@ <message> <location filename="../panel-plugins/systemstart/ItemWidget.cpp" line="44"/> <source>Go Back</source> - <translation type="unfinished">Mine tagasi</translation> + <translation>Mine tagasi</translation> </message> <message> <location filename="../panel-plugins/systemstart/ItemWidget.cpp" line="190"/> @@ -547,12 +547,12 @@ <message> <location filename="../panel-plugins/systemstart/ItemWidget.cpp" line="204"/> <source>Remove from Quicklaunch</source> - <translation type="unfinished"></translation> + <translation>Eemalda Kiirkäivitusest</translation> </message> <message> <location filename="../panel-plugins/systemstart/ItemWidget.cpp" line="208"/> <source>Add to Quicklaunch</source> - <translation type="unfinished"></translation> + <translation>Lisa Kiirkäivitusse</translation> </message> </context> <context> @@ -560,7 +560,7 @@ <message> <location filename="../JsonMenu.h" line="60"/> <source>Error parsing script output: %1</source> - <translation type="unfinished"></translation> + <translation>Viga skripti väljundi töötlemisel: %1</translation> </message> </context> <context> @@ -573,103 +573,103 @@ <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="38"/> <source>Applications</source> - <translation type="unfinished">Rakendused</translation> + <translation>Rakendused</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="68"/> <source>Browse Files</source> - <translation type="unfinished"></translation> + <translation></translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="73"/> <source>Install Applications</source> - <translation type="unfinished">Paigalda rakendusi</translation> + <translation>Paigalda rakendusi</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="79"/> <source>Control Panel</source> - <translation type="unfinished">Juhtpaneel</translation> + <translation>Juhtpaneel</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="90"/> <source>Multimedia</source> - <translation type="unfinished">Multimeedia</translation> + <translation>Multimeedia</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="91"/> <source>Development</source> - <translation type="unfinished">Arendus</translation> + <translation>Arendustarkvara</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="92"/> <source>Education</source> - <translation type="unfinished">Haridus</translation> + <translation>Haridus</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="93"/> <source>Games</source> - <translation type="unfinished">Mängud</translation> + <translation>Mängud</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="94"/> <source>Graphics</source> - <translation type="unfinished">Graafika</translation> + <translation>Graafika</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="95"/> <source>Network</source> - <translation type="unfinished">Võrk</translation> + <translation>Võrk</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="96"/> <source>Office</source> - <translation type="unfinished">Kontor</translation> + <translation>Kontor</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="97"/> <source>Science</source> - <translation type="unfinished">Teadus</translation> + <translation>Teadus</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="98"/> <source>Settings</source> - <translation type="unfinished">Sätted</translation> + <translation>Sätted</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="99"/> <source>System</source> - <translation type="unfinished">Süsteem</translation> + <translation>Süsteem</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="100"/> <source>Utility</source> - <translation type="unfinished">Tööriistad</translation> + <translation>Tööriistad</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="101"/> <source>Wine</source> - <translation type="unfinished">Wine</translation> + <translation>Wine</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="102"/> <source>Unsorted</source> - <translation type="unfinished">Sortimata</translation> + <translation>Sortimata</translation> </message> <message> <location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="139"/> <source>Leave</source> - <translation type="unfinished"></translation> + <translation>Lahku</translation> </message> </context> <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1% (laeb)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1% (%2 jäänud)</translation> </message> @@ -679,12 +679,12 @@ <message> <location filename="../panel-plugins/clock/LClock.cpp" line="139"/> <source>Time Zone (%1)</source> - <translation type="unfinished"></translation> + <translation>Ajavöönd (%1)</translation> </message> <message> <location filename="../panel-plugins/clock/LClock.cpp" line="161"/> <source>Use System Time</source> - <translation type="unfinished"></translation> + <translation>Kasuta süsteemiaega</translation> </message> </context> <context> @@ -692,32 +692,32 @@ <message> <location filename="../desktop-plugins/LDPlugin.cpp" line="37"/> <source>Modify Item</source> - <translation type="unfinished"></translation> + <translation>Muuda</translation> </message> <message> <location filename="../desktop-plugins/LDPlugin.cpp" line="45"/> <source>Start Moving Item</source> - <translation type="unfinished"></translation> + <translation>Alusta liigutamist</translation> </message> <message> <location filename="../desktop-plugins/LDPlugin.cpp" line="46"/> <source>Start Resizing Item</source> - <translation type="unfinished"></translation> + <translation>Alusta suuruse muutmist</translation> </message> <message> <location filename="../desktop-plugins/LDPlugin.cpp" line="48"/> <source>Increase Item Sizes</source> - <translation type="unfinished"></translation> + <translation>Suurenda mõõte</translation> </message> <message> <location filename="../desktop-plugins/LDPlugin.cpp" line="49"/> <source>Decrease Item Sizes</source> - <translation type="unfinished"></translation> + <translation>Vähenda mõõte</translation> </message> <message> <location filename="../desktop-plugins/LDPlugin.cpp" line="51"/> <source>Remove Item</source> - <translation type="unfinished"></translation> + <translation>Eemalda</translation> </message> </context> <context> @@ -773,24 +773,24 @@ <message> <location filename="../LDesktop.cpp" line="255"/> <source>Desktop Actions</source> - <translation type="unfinished"></translation> + <translation>Töölauategevused</translation> </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> - <translation type="unfinished"></translation> + <translation>Uus Kaust</translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> - <translation type="unfinished"></translation> + <translation>Uus Fail</translation> </message> <message> <location filename="../LDesktop.cpp" line="259"/> <source>Paste</source> - <translation type="unfinished"></translation> + <translation>Aseta</translation> </message> <message> <location filename="../LDesktop.cpp" line="291"/> @@ -810,29 +810,34 @@ <message> <location filename="../LDesktop.cpp" line="303"/> <source>Lock Session</source> - <translation type="unfinished"></translation> + <translation>Lukusta sessioon</translation> </message> <message> <location filename="../LDesktop.cpp" line="304"/> <source>Browse Files</source> - <translation type="unfinished"></translation> + <translation>Sirvi Faile</translation> </message> <message> <location filename="../LDesktop.cpp" line="338"/> <source>Leave</source> - <translation type="unfinished"></translation> + <translation>Lahku</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> - <translation type="unfinished">Töölaud</translation> + <translation>Töölaud</translation> </message> </context> <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation>Tööruum 1</translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -844,16 +849,16 @@ <message> <location filename="../panel-plugins/systemstart/LStartButton.h" line="52"/> <source>Remove from Quicklaunch</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Eemalda Kiirkäivitusest</translation> </message> </context> <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> - <translation type="unfinished">Töölaud</translation> + <translation>Töölaud</translation> </message> </context> <context> @@ -874,7 +879,7 @@ <message> <location filename="../panel-plugins/systemdashboard/SysMenuQuick.ui" line="50"/> <source>Volume</source> - <translation type="unfinished"></translation> + <translation>Helitugevus</translation> </message> <message> <location filename="../panel-plugins/systemdashboard/SysMenuQuick.ui" line="111"/> @@ -922,44 +927,44 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktiveeri aken</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimeeri aken</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Taasta aken</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maksimeeri aken</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Sulge aken</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> - <translation type="unfinished"></translation> + <translation>Näita kõiki aknaid</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> - <translation type="unfinished"></translation> + <translation>Minimeeri kõik aknad</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> - <translation type="unfinished"></translation> + <translation>Sulge kõik aknad</translation> </message> </context> <context> @@ -984,23 +989,26 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU temperatuur:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU kasutus:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Mälukasutus:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="85"/> <source>Disk I/O</source> - <translation type="unfinished"></translation> + <translation>Ketta I/O</translation> </message> </context> <context> @@ -1023,37 +1031,37 @@ <message> <location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="138"/> <source>Name:</source> - <translation type="unfinished">Nimi:</translation> + <translation>Nimi:</translation> </message> <message> <location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="140"/> <source>Invalid Note Name: Try Again</source> - <translation type="unfinished"></translation> + <translation>Vigane märkmenimi: Proovi uuesti</translation> </message> <message> <location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="141"/> <source>Select a Note Name</source> - <translation type="unfinished"></translation> + <translation>Vali märkmenimi</translation> </message> <message> <location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="168"/> <source>Open Text File</source> - <translation type="unfinished"></translation> + <translation>Ava tekstifail</translation> </message> <message> <location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="169"/> <source>Create a Note</source> - <translation type="unfinished"></translation> + <translation>Loo märge</translation> </message> <message> <location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="172"/> <source>Rename Note</source> - <translation type="unfinished"></translation> + <translation>Nimeta märge ümber</translation> </message> <message> <location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="173"/> <source>Delete Note</source> - <translation type="unfinished"></translation> + <translation>Kustuta märge</translation> </message> </context> <context> @@ -1061,57 +1069,57 @@ <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.ui" line="14"/> <source>Form</source> - <translation type="unfinished">Vorm</translation> + <translation>Vorm</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="69"/> <source>Clear Playlist</source> - <translation type="unfinished">Tühjenda esitusloend</translation> + <translation>Tühjenda esitusloend</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="70"/> <source>Shuffle Playlist</source> - <translation type="unfinished">Sega loendi järjekord</translation> + <translation>Sega loendi järjekord</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="72"/> <source>Add Files</source> - <translation type="unfinished">Lisa faile</translation> + <translation>Lisa faile</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="73"/> <source>Add Directory</source> - <translation type="unfinished">Lisa kaust</translation> + <translation>Lisa kaust</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="74"/> <source>Add URL</source> - <translation type="unfinished">Lisa URL</translation> + <translation>Lisa URL</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="102"/> <source>Multimedia Files</source> - <translation type="unfinished">Multimeediafailid</translation> + <translation>Multimeediafailid</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="103"/> <source>Select Multimedia Files</source> - <translation type="unfinished">Vali multimeediafailid</translation> + <translation>Vali multimeediafailid</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="130"/> <source>Select Multimedia Directory</source> - <translation type="unfinished">Vali multimeedia kaust</translation> + <translation>Vali multimeedia kaust</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">Sisesta multimeediafaili või -voo URL</translation> + <translation>Sisesta multimeediafaili või -voo URL</translation> </message> <message> <location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="161"/> <source>Multimedia URL</source> - <translation type="unfinished">Multimeedia URL</translation> + <translation>Multimeedia URL</translation> </message> </context> <context> @@ -1177,155 +1185,155 @@ <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="14"/> <source>Form</source> - <translation type="unfinished">Vorm</translation> + <translation>Vorm</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="62"/> <source>View Options</source> - <translation type="unfinished"></translation> + <translation>Vaata valikuid</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="89"/> <source>Open Website</source> - <translation type="unfinished"></translation> + <translation>Ava veebileht</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="92"/> <source>More</source> - <translation type="unfinished"></translation> + <translation>Rohkem</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="154"/> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="245"/> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="391"/> <source>Back to Feeds</source> - <translation type="unfinished"></translation> + <translation>Tagasi voo juurde</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="172"/> <source>Feed Information</source> - <translation type="unfinished"></translation> + <translation>Voo informatsioon</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="212"/> <source>Remove Feed</source> - <translation type="unfinished"></translation> + <translation>Eemalda voog</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="263"/> <source>New Feed Subscription</source> - <translation type="unfinished"></translation> + <translation>Uuele voole registreerumine</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="287"/> <source>RSS URL</source> - <translation type="unfinished"></translation> + <translation>RSS URL aadress</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="302"/> <source>Load a preset RSS Feed</source> - <translation type="unfinished"></translation> + <translation>Lae eelseadistatud RSS voog</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="332"/> <source>Add to Feeds</source> - <translation type="unfinished"></translation> + <translation>Lisa voogudele</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="409"/> <source>Feed Reader Settings</source> - <translation type="unfinished"></translation> + <translation>Uudisvoogude lugeja seaded</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="430"/> <source>Manual Sync Only</source> - <translation type="unfinished"></translation> + <translation>Ainult käsitsi sünkroniseerimine</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="437"/> <source>Some RSS feeds may request custom update intervals instead of using this setting</source> - <translation type="unfinished"></translation> + <translation>Mõned uudisvood võivad nõuda erinevaid uuendusintervalle, selle seade kasutamise asemel.</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="440"/> <source>Default Sync Interval</source> - <translation type="unfinished"></translation> + <translation>Vaikimisi sünkroniseerimise intervall</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="471"/> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="483"/> <source>Hour(s)</source> - <translation type="unfinished"></translation> + <translation>Tundides</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="478"/> <source>Minutes</source> - <translation type="unfinished"></translation> + <translation>Minutites</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="522"/> <source>Save Settings</source> - <translation type="unfinished"></translation> + <translation>Salvesta seaded</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="70"/> <source>Add RSS Feed</source> - <translation type="unfinished"></translation> + <translation>Lisa uudisvoog</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="71"/> <source>View Feed Details</source> - <translation type="unfinished"></translation> + <translation>Vaata uudisvoo detaile</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="72"/> <source>Settings</source> - <translation type="unfinished">Sätted</translation> + <translation>Sätted</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="74"/> <source>Update Feeds Now</source> - <translation type="unfinished"></translation> + <translation>Uuenda uudisvooge</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="78"/> <source>Lumina Desktop RSS</source> - <translation type="unfinished"></translation> + <translation>Lumina Töölaua RSS</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="143"/> <source>Feed URL: %1</source> - <translation type="unfinished"></translation> + <translation>Uudisvoo URL: %1</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="144"/> <source>Title: %1</source> - <translation type="unfinished"></translation> + <translation>Pealkiri: %1</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="145"/> <source>Description: %1</source> - <translation type="unfinished"></translation> + <translation>Kirjeldus: %1</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="146"/> <source>Website: %1</source> - <translation type="unfinished"></translation> + <translation>Veebileht: %1</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="147"/> <source>Last Build Date: %1</source> - <translation type="unfinished"></translation> + <translation>Viimane koostamise aeg: %1</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="148"/> <source>Last Sync: %1</source> - <translation type="unfinished"></translation> + <translation>Viimane sünkr.: %1</translation> </message> <message> <location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="149"/> <source>Next Sync: %1</source> - <translation type="unfinished"></translation> + <translation>Järgmine sünkr.: %1</translation> </message> </context> <context> @@ -1338,22 +1346,22 @@ <message> <location filename="../SettingsMenu.cpp" line="26"/> <source>Preferences</source> - <translation type="unfinished"></translation> + <translation>Eelistus</translation> </message> <message> <location filename="../SettingsMenu.cpp" line="33"/> <source>Wallpaper</source> - <translation type="unfinished"></translation> + <translation>Taustapilt</translation> </message> <message> <location filename="../SettingsMenu.cpp" line="36"/> <source>Display</source> - <translation type="unfinished"></translation> + <translation>Ekraan</translation> </message> <message> <location filename="../SettingsMenu.cpp" line="39"/> <source>All Desktop Settings</source> - <translation type="unfinished"></translation> + <translation>Kõik ekraaniseaded</translation> </message> <message> <location filename="../SettingsMenu.cpp" line="54"/> @@ -1371,42 +1379,42 @@ <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="14"/> <source>Form</source> - <translation type="unfinished">Vorm</translation> + <translation>Vorm</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="38"/> <source>Type to search</source> - <translation type="unfinished"></translation> + <translation>Trüki millegi otsimiseks</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="171"/> <source>Browse Files</source> - <translation type="unfinished"></translation> + <translation>Sirvi faile</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="199"/> <source>Browse Applications</source> - <translation type="unfinished"></translation> + <translation>Sirvi programme</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="234"/> <source>Control Panel</source> - <translation type="unfinished">Juhtpaneel</translation> + <translation>Juhtpaneel</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="305"/> <source>Leave</source> - <translation type="unfinished"></translation> + <translation>Lahku</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="379"/> <source>Manage Applications</source> - <translation type="unfinished"></translation> + <translation>Halda programme</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="408"/> <source>Show Categories</source> - <translation type="unfinished"></translation> + <translation>Näita kategooriaid</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="488"/> @@ -1416,84 +1424,89 @@ <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="924"/> <source>Suspend</source> - <translation type="unfinished">Arvuti peatamine</translation> + <translation>Arvuti unerežiim</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="989"/> <source>Restart</source> - <translation type="unfinished">Taaskäivita</translation> + <translation>Taaskäivita</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> + <translation>Lülita välja</translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> - <translation type="unfinished">Logi välja</translation> + <translation>Logi välja</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> <source>Preferences</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation type="unfinished"></translation> + <translation>Eelistused</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Tagasi</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="290"/> <source>Apply Updates?</source> - <translation type="unfinished"></translation> + <translation>Alusta uuenduste paigaldamist?</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="290"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> - <translation type="unfinished"></translation> + <translation>Sul on ootel süsteemiuuendused. Kas soovid neid nüüd paigaldada?</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="291"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Jah</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="292"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>Ei</translation> </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="293"/> <source>Cancel</source> - <translation type="unfinished">Loobu</translation> + <translation>Loobu</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> - <translation type="unfinished"></translation> + <translation>%1% (ühendatud)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> - <translation type="unfinished"></translation> + <translation>%1% (%2 hinnanguliselt)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> - <translation type="unfinished"></translation> + <translation>%1% jäänud</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> - <translation type="unfinished">Tööruum %1/%2</translation> + <translation>Tööruum %1/%2</translation> </message> </context> <context> @@ -1516,43 +1529,53 @@ <message> <location filename="../SystemWindow.ui" line="87"/> <source>Power Off</source> + <translation>Lülita välja</translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Loobu</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Lukusta</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Arvuti peatamine</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> - <translation type="unfinished"></translation> + <translation>Paigalda uuendused?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> - <translation type="unfinished"></translation> + <translation>Sul on ootel süsteemiuuendused! Kas soovid neid kohe lasta paigaldada?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> - <translation type="unfinished"></translation> + <translation>Jah</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> - <translation type="unfinished"></translation> + <translation>Ei</translation> </message> </context> <context> @@ -1583,7 +1606,7 @@ <message> <location filename="../panel-plugins/userbutton/UserWidget.ui" line="14"/> <source>UserWidget</source> - <translation>UserWidget</translation> + <translation>Kasutajavidin</translation> </message> <message> <location filename="../panel-plugins/userbutton/UserWidget.ui" line="24"/> @@ -1759,4 +1782,72 @@ <translation>Sortimata</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation>Multimeedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation>Arendus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation>Haridus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation>Mängud</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation>Graafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation>Võrk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation>Kontor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation>Teadus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation>Sätted</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation>Süsteem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation>Tööriistad</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation>Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation>Sortimata</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_eu.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_eu.ts index 248cc262..be61c50d 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_eu.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_eu.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Ezabatu</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Aplikazioa hautatu</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Izena:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Kargatzen)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Faltan)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Lehioa aktibatu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Leihoa minimizatu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Leihoa leheneratu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Leihoa maximizatu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Leihoa itxi</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Saioa amaitu</translation> </message> @@ -1439,12 +1457,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Utzi</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished">Laneko area %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Utzi</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Garapena</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Heziketa</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Jokoak</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafikoak</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Sarea</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Bulegoa</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Zientzia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Ezarpenak</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fa.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fa.ts index e45c6072..c066d6b2 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fa.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fa.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">%1 را راه بیانداز</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished">کاربست برگزین</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fi.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fi.ts index ff8e867c..73bdf6d8 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fi.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fi.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Aseta napsauttamalla</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Käynnistä %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Avaa</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Kopioi</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Leikkaa</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Poista</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Valitse sovellus</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nimi:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (lataa)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 jäljellä)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Poistu</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Työpöytä</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Työpöytä</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktivoi ikkuna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Pienennä ikkuna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Palauta ikkuna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Suurenna ikkuna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Sulje ikkuna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Näytä kaikki ikkunat</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Pienennä kaikki ikkunat</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Sulje kaikki ikkunat</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Suorittimen lämpötila:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Suorittimen käyttö:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Muistin käyttö:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Kirjaudu ulos</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Asetukset</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Järjestelmä suorittaa päivityksiä)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Takaisin</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Peru</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1 % (verkkovirta)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1 % (arviolta %2)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1 % jäljellä</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Työtila %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Peru</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Lukitse</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Valmiustila</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Toteutetaanko päivitykset?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Joitakin järjestelmäpäivityksiä odottavat toteuttamista! Haluatko asentaa ne nyt?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Lajittelematta</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Kehitystyökalut</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Kasvatus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Pelit</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafiikka</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Verkko</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Toimisto</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Tiede</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Asetukset</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Järjestelmä</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Työkalu</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Lajittelematta</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr.ts index f85a0380..c0217392 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Cliquer pour Définir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Lancer %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Ouvrir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Copier</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Couper</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Supprimer</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Sélectionner un Programme</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nom :</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Chargement)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Restant)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Quitter</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Bureau</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Bureau</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Activer la Fenêtre</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Réduire la Fenêtre</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Restaurer la Fenêtre</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximiser la Fenêtre</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Fermer la Fenêtre</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Afficher Toutes les Fenêtres</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimiser Toutes les Fenêtres</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Fermer Toutes les Fenêtres</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Température CPU :</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Utilisation CPU :</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Utilisation Mémoire :</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Se Déconnecter</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Préférences</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Mise à jour Système en cours)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Retour</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Annuler</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Branchée)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Estimé)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% restant(s)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Espace de Travail %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Annuler</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Verrouiller</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Mettre en Veille</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Appliquer les Mises à Jour ?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Des mises à jour du système sont en attente, voulez-vous les installer maintenant ?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Non Trié</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Développement</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Éducation</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Jeux</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Graphiques</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Réseau</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Sciences</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Paramètres</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Système</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr_CA.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr_CA.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr_CA.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_fr_CA.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_gl.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_gl.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_gl.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_gl.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_he.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_he.ts index fabf3f31..b494b2cb 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_he.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_he.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">שולחן עבודה</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished">שולחן עבודה</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>מזער חלון</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>שחזר חלון</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>הגדל חלון</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>סגור חלון</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">התנתק</translation> </message> @@ -1439,12 +1457,7 @@ <translation>העדפות</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>אחורה</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">ביטול</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>ביטול</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>נעל</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">לומדות</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">משחקים</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">גרפיקה</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">אינטרנט</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">משרד</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">מדע</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">הגדרות</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">מערכת</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hi.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hi.ts index f1cb1d5a..cee9a94d 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hi.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hi.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>निश्चित करने के लिए क्लिक करे</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">प्रारंभ %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">चालू</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">कॉपी करें</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">काटें</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">नष्ट करें</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>एप्लीकेशन चुनें</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>नाम</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 %(चार्ज हो रहा है)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 %(%2 बचा है)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>छोड़ें</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">डेस्कटॉप</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished">डेस्कटॉप</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>विंडो सक्रिय</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>विंडो न्यून करें</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>विंडो पुनर्स्थापन </translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>विंडो बड़ी करें'</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>विंडो बंद करें</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>तत्काल्लें CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU खपत</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>मैमोरी खपत</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">लॉगआउट</translation> </message> @@ -1439,12 +1457,7 @@ <translation>प्राथमिकताएं</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(उपकरण अपडेट हो रहा है)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>वापस</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">रद्द</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1%(प्लग इन)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 लगभग)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% शेष</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>कार्यस्थल %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>रद्द</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>लॉक</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>रोकें</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>अवर्गीकृत</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">मल्टीमीडिया</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">विकास</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">पढाई</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">खेल</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">चित्र</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">नेटवर्क</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">कार्यालय</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">विज्ञान</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">सुविधाएँ</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">शराब</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">अवर्गीकृत</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hr.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hr.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hr.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hr.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hu.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hu.ts index 30cc030d..88455320 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hu.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_hu.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Kattintás a beállításhoz</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">%1 indítása</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Megnyitás</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Másolás</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Kivágás</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Törlés</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Alkalmazás kiválasztása</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Név:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Töltés)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 hátralévő)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Kilépés</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Asztal</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Asztal</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Ablak aktiválása</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Ablak minimalizálása</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Ablak visszaállítása</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Ablak maximalizálása</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Ablak bezárása</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Ablakok megjelenítése</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Ablakok minimalizálása</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Ablakok bezárása</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU hőmérséklete:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU használat:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Memória használat:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Kijelentkezés</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Beállítások</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Vissza</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Mégsem</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>%1/%2 munkaterület</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Mégsem</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Zárolás</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Felfüggesztés</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Nem rendszerezett</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Fejlesztés</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Oktatás</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Játékok</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Hálózat</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Iroda</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Tudomány</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Beállítások</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Rendszer</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Segédeszközök</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_id.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_id.ts index 38cdee0f..2f3db87c 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_id.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_id.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>klik untuk mengatur</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Luncurkan %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Buka</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Salin</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Potong</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Hapus</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Pilih Aplikasi</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nama:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (pengisian baterai)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 sisa)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Tinggalkan</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Layar Kerja Utama</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished">Layar Kerja Utama</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktifkan jendela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimalkan Window</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Kembalikan Ukuran jendela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maksimalkan Ukuran Jendela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Tutup Jendela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU Suhu:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Penggunaan CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Penggunaan Memory:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Log Keluar</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferensi</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Sistem Pertunjukan Updates)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Mundur</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Batalkan</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished">%1% (Terpasang Dalam)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Perkiraan)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Sisa</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished">Ruang kerja %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Batalkan</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Kunci</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Suspensi</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Tak terurut</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Pengembangan</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Edukasi</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Permainan</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafis</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Jaringan</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kantor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Sains</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Pengaturan</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Utilitas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Tak terurut</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_is.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_is.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_is.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_is.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts index 32aae413..1cd93f4d 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Clicca per Impostare</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Lancia %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Apri</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Copia</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Taglia</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Cancella</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Seleziona Applicazione</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nome:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (In Carica)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Rimanente)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Esci</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Desktop</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Desktop</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Attiva Finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimizza Finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Ripristina Finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Massimizza Finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Chiudi la Finestra</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Mostra tutte le finestre</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimizza tutte le finestre</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Chiudi tutte le finestre</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Temp, CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Uso CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Uso Memoria:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Esci</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferenze</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Sistema Sta' Aggiornando)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Indietro</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Cancella</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Plugged In)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Stimato)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Rimanente</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Spazio Lavoro %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Cancella</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Blocca</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Sospendi</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Non ordinato</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Sviluppo</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educazione</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Giochi</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Rete</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Ufficio</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Scienza</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Impostazioni</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Utilità</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Non ordinato</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ja.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ja.ts index 0179804f..15c0f6c7 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ja.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ja.ts @@ -34,69 +34,69 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translatorcomment>テキスト表示欄のツールチップ。アプリケーション名が設定されると置き換えられる。</translatorcomment> <translation>クリックして設定してください</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">%1 を起動</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">開く</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">コピー</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">切り取り</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">削除</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>アプリケーションを選択してください</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>名前:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -668,12 +668,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (充電中)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (残り %2 %)</translation> </message> @@ -782,13 +782,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -828,9 +828,9 @@ <translation>終了</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -838,6 +838,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -855,8 +860,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translatorcomment>これ、ファイルパスなので、「デスクトップ」と訳したらまずい</translatorcomment> <translation>Desktop</translation> @@ -929,42 +934,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>ウィンドウをアクティブ化します</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>ウィンドウを最小化します</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>ウィンドウを元のサイズに戻す</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>ウィンドウを最大化します</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>ウィンドウを閉じます</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>すべてのウインドウを開く</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>すべてのウインドウを最小化</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>すべてのウィンドウを閉じる</translation> </message> @@ -992,16 +997,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU 温度:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU 使用率:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>メモリー使用率:</translation> </message> @@ -1442,11 +1450,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">ログアウト</translation> </message> @@ -1456,12 +1474,7 @@ <translation>設定</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(システムはアップデート中です)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>戻る</translation> </message> @@ -1491,24 +1504,24 @@ <translation type="unfinished">キャンセル</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (電源接続中)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (推定残り時間: %2)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>残り %1%</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>ワークスペース %1/%2</translation> </message> @@ -1536,38 +1549,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>キャンセル</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>ロック</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>サスペンド</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>更新を行いますか?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>システムが適用されるのを待っている更新があります! 今それらをインストールしますか?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1783,4 +1806,72 @@ <translation>未分類</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">マルチメディア</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">開発</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">教育</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">ゲーム</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">グラフィックス</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">ネットワーク</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">オフィス</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">科学</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">設定</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">システム</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">ユーティリティー</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">未分類</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ka.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ka.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ka.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ka.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ko.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ko.ts index b7a23143..0d69f01f 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ko.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ko.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>설정하기 위해 누름</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">%1 실행</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">열기</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">복사</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">잘라내기</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">삭제</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>프로그램 선택</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>이름:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (충전중)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 남음)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished">떠나기</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">바탕 화면</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished">바탕 화면</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>창 활성화</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>창 최소화</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>창 복귀</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>창 최대화</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>창 닫기</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU 온도:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU 사용량:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>메모리 사용량:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">로그 아웃</translation> </message> @@ -1439,12 +1457,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(시스템 업데이트 수행중)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>뒤로</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">취소</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (연결됨)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 예상)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% 남음</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>작업 공간 %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>취소</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>잠그기</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>절전</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>미분류</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">멀티미디어</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">개발</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">교육</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">게임</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">그래픽</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">네트워크</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">업무</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">과학</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">설정</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">시스템</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">유틸리티</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">와인</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">미분류</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts index 55cc8ec1..c6f635aa 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Spustelėkite, norėdami nustatyti</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation>Paleisti %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>Atverti</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Atverti, naudojant</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>Rodyti savybes</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation>Failų operacijos</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>Pervadinti</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>Kopijuoti</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation>Iškirpti</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>Ištrinti</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Pasirinkti programą</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Pavadinimas:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>Naujas failo pavadinimas</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Kraunama)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (Liko %2)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation>Naujas aplankas</translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation>Naujas failas</translation> </message> @@ -823,9 +823,9 @@ <translation>Išeiti</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation>Darbalaukis</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Darbalaukis</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktyvuoti langą</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Suskleisti langą</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Atkurti langą</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Išskleisti langą</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Užverti langą</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Rodyti visus langus</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Suskleisti visus langus</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Užverti visus langus</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU temperatūra:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU naudojimas:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Atminties naudojimas:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation>Išjungti</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation>Atsijungti</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Nuostatos</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Sistema vykdo atnaujinimus)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Atgal</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Atsisakyti</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Įdėta)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (Apytikriai %2)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>Liko %1%</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Darbo sritis %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation>Išjungti</translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Atsisakyti</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Užrakinti</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Pristabdyti</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Taikyti atnaujinimus?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Jūsų sistemoje yra laukiančių atnaujinimų! Ar norite įdiegti juos dabar?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Nesurūšiuota</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedija</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Programavimas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Švietimas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Žaidimai</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Tinklas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Raštinė</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Mokslas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Nustatymai</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Paslaugų programos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Nesurūšiuota</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lv.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lv.ts index 5d7d9e0f..3cb0b2b0 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lv.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lv.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Klikšķiniet, lai iestatītu</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Palaist %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Atvērt</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Kopēt</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Izgriezt</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Dzēst</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Izvēlieties lietotni</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nosaukums:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (uzlādējas)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 atlicis)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Atstāt</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Darbvirsma</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Darbvirsma</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktivizēt logu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimizēt logu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Atjaunot logu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maksimizēt logu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Aizvērt logu</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Rādīt visus logus</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimizēt visus logus</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Aizvērt visus logus</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU temp.:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU lietojums:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Atmiņas lietojums:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Izrakstīties</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferences</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Sistēma veic atjaunināšanu)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Atpakaļ</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Atcelt</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (pievienots)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 paredzamais)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% atlicis</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Darbvieta %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Atcelt</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Slēgt</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Iemidzināt</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1760,4 +1783,72 @@ <translation>Nesakārtots</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multivide</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Izstrāde</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Izglītība</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Spēles</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Tīkls</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Birojs</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Zinātne</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Iestatījumi</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistēma</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Nesakārtots</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mk.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mk.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mk.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mk.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mn.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mn.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mn.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mn.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ms.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ms.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ms.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ms.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mt.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mt.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mt.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_mt.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nb.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nb.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nb.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nb.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nl.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nl.ts index 3e0fc664..2b2f15a4 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nl.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_nl.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Klik om in te stellen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">%1 opstarten</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Openen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Plakken</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Knippen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Verwijderen</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Applicatie selecteren</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Naam:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Bezig met opladen)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 resterend)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Verlaten</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Bureaublad</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Bureaublad</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Venster activeren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Venster minimaliseren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Venster herstellen</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Venster maximaliseren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Venster sluiten</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Alle vensters weergeven</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Alle vensters minimaliseren</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Alle vensters sluiten</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU-temperatuur:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU-gebruik:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Geheugengebruik:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Uitloggen</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Voorkeuren</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Systeem is bezig met uitvoeren van updates)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Terug</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Annuleren</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Oplaadkabel is verbonden)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 geschat)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% resterend</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Werkruimte %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Annuleren</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Vergrendelen</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Pauzestand</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Wilt u de updates toepassen?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Er zijn systeemupdates beschikbaar! Wilt u deze nu installeren?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Ongesorteerd</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Ontwikkeling</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Spellen</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafisch</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Netwerk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kantoor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Wetenschap</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Instellingen</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Systeem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Hulpmiddel</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Ongesorteerd</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pa.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pa.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pa.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pa.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> 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 e3ebe0a6..5ff8b01f 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Kliknij by ustawić</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Uruchom %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Otwórz</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Kopiuj</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Wytnij</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Usuń</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Wybierz aplikację</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nazwa:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Ładowanie)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 pozostało)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Wyjdź</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Pulpit</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Pulpit</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktywuj okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimalizuj okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Przywróć okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maksymalizuj okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Zamknij Okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Pokaż wszystkie okna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimalizuj wszystkie okna</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Zamknij wszystkie okna</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Temperatura procesora:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Wykorzystanie procesora:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Wykorzystanie pamięci:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Wyloguj</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Ustawienia</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(System wykonuje aktualizacje)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Wstecz</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Zaniechaj</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Podłączony)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Szacowane)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Pozostało</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Przestrzeń robocza %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Zaniechaj</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Zablokuj</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Wstrzymanie</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Zastosować aktualizacje?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Masz oczekujące aktualizacje systemu gotowe do zastosowania! Czy chcesz je teraz zainstalować?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Nieuporządkowane</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Narzędzia programistów</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Edukacja</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Gry</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Sieć</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Biuro</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Nauka</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Ustawienia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Narzędzia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Nieuporządkowane</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt.ts index 0321a6b1..82881d5b 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Clique para Definir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Iniciar %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Abrir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Copiar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Cortar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Excluir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Selecionar Aplicativo </translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nome:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Carregando)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Restantes)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Área de Trabalho</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished">Área de Trabalho</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Ativar a Janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimizar Janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Restaurar a Janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximizar Janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Fechar Janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU Temp:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Utilização da CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Utilização da Memória:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Sair</translation> </message> @@ -1439,12 +1457,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Cancelar</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished">Espaço de trabalho %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Cancelar</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Bloquear</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Suspender</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Sem ordem</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimídia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desenvolvimento</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educação</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Jogos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gráficos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Rede</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Escritório</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Ciência</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Definições</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Utilitário</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Vinho</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Sem ordem</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt_BR.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt_BR.ts index 0fd7d193..ec71e2ac 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt_BR.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pt_BR.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Clique para definir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Lançar %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Abrir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Copiar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Cortar</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Excluir</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Selecionar aplicativo</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Nome:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (carregando)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 restantes)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Deixar</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Área de trabalho</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Área de trabalho</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Ativar janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimizar janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Restaurar janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximizar janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Fechar janela</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Exibir todas janelas</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimizar todas janelas</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Fechar todas as janelas</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Temp. do CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Uso do CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Uso da mem.:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Encerrar sessão</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Preferências</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Sistema aplicando atualizações)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Voltar</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Cancelar</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Plugado)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Estimado)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Restantes</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Espaço de trabalho %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Cancelar</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Bloquear</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Suspender</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Aplicar atualizações?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>Você tem atualização de sistema pendentes! Gostaria de instalá-las agora?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Não organizados</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimídia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desenvolvimento</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educação</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Jogos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gráficos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Escritório</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Configurações</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ro.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ro.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ro.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ro.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ru.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ru.ts index 2f4b4072..0e54c34a 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ru.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ru.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Нажмите что бы выбрать</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation>Запуск %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>Открыть</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Открыть с помощью</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>Посмотреть свойства</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation>Операции с файлами</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>Переименовать</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>Копировать</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation>Вырезать</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>Удалить</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Выбрать Приложение</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Название:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>Новое имя файла</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Заряжается)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (Осталось %2 )</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation>Новый каталог</translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation>Новый файл</translation> </message> @@ -823,9 +823,9 @@ <translation>Оставить</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation>Рабочий стол</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Рабочий стол</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Активировать Окно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Свернуть Окно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Восстановить Окно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Развернуть Окно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Закрыть окно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Показать все окна</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Свернуть все окна</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Закрыть все окна</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Темп. CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Исп. CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Исп. Пам.:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation>Выключить питание</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation>Завершить Сеанс</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Настройки</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>Система выполнения обновлений</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Назад</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Отмена</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (подключенный)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 расчетно)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% осталось</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Рабочая Область %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation>Выключить питание</translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Отмена</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Замок</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Отложить</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>Применить обновления?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>У вас есть системные обновления! Вы хотите установить их сейчас?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Несортированный</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Мультимедиа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Разработка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Образование</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Игры</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Графика</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Сети</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Офис</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Наука</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Система</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Инструменты</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Вино</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sk.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sk.ts index 907717e2..13e6c9a6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sk.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sk.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Kliknutím nastaviť </translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Spustiť %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Otvoriť</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Kopírovať</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Vystrihnúť</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Vymazať</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Výber aplikácie</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Meno:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Nabíjania)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 zostáva)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished">Ponechať</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Pracovná plocha</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished">Pracovná plocha</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktívne okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimalizovať okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Obnoviť okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximalizovať okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Zatvoriť okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Teplota CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Využite CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Využitie pamäte:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Odhlásiť sa</translation> </message> @@ -1439,12 +1457,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Systém vykonávajúci aktualizácie)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Späť</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Zrušiť</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Nabitia)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 odhadovaný)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>Zostáva %1%</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Pracovná plocha %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Zrušiť</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Uzamknúť</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Uspať</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Nezoradené</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédiá</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Vývoj</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Vzdelávanie</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Hry</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Sieť</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kancelária</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Veda</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Nastavenie</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Systém</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Nástroje</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Nezoradené</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sl.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sl.ts index 637f7436..ee11f368 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sl.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sl.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Zaženi %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Odpri</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Kopiraj</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Izreži</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Izbriši</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Izberi program</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Ime:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Zapri okno</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Večpredstavnost</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Razvoj</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Izobraževanje</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Igre</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Omrežje</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Znanost</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Nastavitve</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sr.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sr.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sr.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sr.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sv.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sv.ts index ecf6aa32..e22270c5 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sv.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sv.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Klicka för att tilldela</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Starta %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Öppna</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>Öppna med</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>Visa egenskaper</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>Döp om</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Kopiera</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Klipp ut</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Ta bort</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Välj program</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Namn:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>Nytt filnamn</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Laddar)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 % (%2 Återstår)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Lämna</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Skrivbord</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Skrivbord</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Aktivera fönster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Minimera fönster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Återställ fönster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Maximera fönster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Stäng fönster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Visa alla fönster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Minimera alla fönster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Stäng alla fönster</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU Temp:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Processoranvändning:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Minnesanvändning:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Logga ut</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Inställningar</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Systemet utför uppdateringar)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Bakåt</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Avbryt</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Inkopplad)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 Beräknad)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% återstår</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Arbetsyta %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Avbryt</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Lås</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Vänteläge</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Osorterade</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Utveckling</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Utbildning</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Spel</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Nätverk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kontorsprogram</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Vetenskap</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Inställningar</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Verktyg</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Osorterade</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sw.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sw.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sw.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_sw.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ta.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ta.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ta.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_ta.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tg.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tg.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tg.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tg.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_th.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_th.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_th.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_th.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tr.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tr.ts index f3e6147d..704e1491 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tr.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_tr.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Ayarlamak için Tıkla</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">%1 öğesini başlat</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Aç</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Kopyala</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Kes</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Sil</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Uygulama Seç</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Ad:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>% %1 (Doluyor)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>% %1 (Kalan %2)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Çık</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Masaüstü</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Masaüstü</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Pencereyi Etkinleştir</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Pencereyi Küçült</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Pencereyi Geri Yükle</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Pencereyi Büyüt</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Pencereyi Kapat</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>Tüm Pencereleri Göster</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>Tüm Pencereleri Küçült</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>Tüm Pencereleri Kapat</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU Sıcaklığı:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU Kullanımı:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Bellek Kullanımı:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Oturumu Kapat</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Tercihler</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Sistem Güncellemeleri Gerçekleştiriyor)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Geri</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">İptal</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Prize Takılı)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (Tahmini %2)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Kaldı</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Çalışma alanı %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>İptal</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Kilitle</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Beklet</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Sınıflandırılmamış</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedya</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Geliştirme</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Eğitim</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Oyunlar</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Ağ</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Ofis</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Bilim</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Ayarlar</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Gereç</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished">Sınıflandırılmamış</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uk.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uk.ts index e73fe905..ec972577 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uk.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uk.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>Натисніть щоб встановити</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished">Запуск %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished">Відкрити</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished">Копіювати</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished">Вирізати</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished">Видалити</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>Оберіть додаток</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>Ім'я:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 % (Заряд)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 (залишилося %2)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>Лишити</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">Робочий стіл</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>Робочий стіл</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>Активне Вікно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>Згорнути вікно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>Відновити вікно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>Розгорнути вікно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>Закрити вікно</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>Темп. CPU</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>Вик. CPU:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>Вик. пам'яті:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">Завершити сеанс</translation> </message> @@ -1439,12 +1457,7 @@ <translation>Налаштування</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(Система виконання оновлення)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>Назад</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">Скасувати</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (Підключено)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (%2 розрахунково)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>%1% Залишилось</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>Робочий простір %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>Скасувати</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>Заблокувати</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>Призупинити</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>Невідсортований</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Мультимедіа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Розробка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Освіта</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">Ігри</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Графіка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Мережа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Офіс</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Наука</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Налаштування</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Система</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">Утиліти</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished">Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uz.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uz.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uz.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_uz.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_vi.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_vi.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_vi.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_vi.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_CN.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_CN.ts index cf6f658b..8d7ea859 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_CN.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_CN.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation>单击以设定</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation>启动 %1</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation>打开</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation>打开用</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation>查看属性</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation>文件操作</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation>重命名</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation>复制</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation>剪切</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation>删除</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation>选择程序</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation>名称:</translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation>新文件名</translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation>%1 %(充电)</translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation>%1 (%2 剩余)</translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation>离开</translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished">桌面</translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation>桌面</translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation>激活窗口</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation>最小化窗口</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation>恢复窗口</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation>最大化窗口</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation>关闭窗口</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation>显示所有窗口</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation>最小化所有窗口</translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation>关闭所有窗口</translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation>CPU 温度:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation>CPU 占用:</translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation>内存使用:</translation> </message> @@ -1425,11 +1433,21 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> <source>Log Out</source> <translation type="unfinished">注销</translation> </message> @@ -1439,12 +1457,7 @@ <translation>首选项</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> - <translation>(系统正在更新)</translation> - </message> - <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation>返回</translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished">取消</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation>%1% (已插电)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation>%1% (估计 %2)</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation>剩余 %1%</translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation>工作区 %1/%2</translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation>取消</translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation>锁定</translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation>休眠</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation>应用更新?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation>您有系统更新可用!请问您是否想现在安装?</translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation>未排序的</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">多媒体</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">开发</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">教育</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished">游戏</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">图像</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">网络</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">办公</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">科学</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">设置</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">系统</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished">工具</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_HK.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_HK.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_HK.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_HK.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_TW.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_TW.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_TW.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zh_TW.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zu.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zu.ts index 8ca71d5a..2f9340c6 100644 --- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zu.ts +++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_zu.ts @@ -32,68 +32,68 @@ <context> <name>AppLauncherPlugin</name> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="62"/> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="116"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="63"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="117"/> <source>Click to Set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="73"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="74"/> <source>Launch %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="134"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="135"/> <source>Open</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="136"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/> <source>Open With</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="139"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="140"/> <source>View Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="141"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="142"/> <source>File Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="143"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="144"/> <source>Rename</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="146"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="147"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="149"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="150"/> <source>Cut</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="151"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="152"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Select Application</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="213"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="214"/> <source>Name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="299"/> + <location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="300"/> <source>New Filename</source> <translation type="unfinished"></translation> </message> @@ -664,12 +664,12 @@ <context> <name>LBattery</name> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="94"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="96"/> <source>%1 % (Charging)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/battery/LBattery.cpp" line="95"/> + <location filename="../panel-plugins/battery/LBattery.cpp" line="97"/> <source>%1 % (%2 Remaining)</source> <translation type="unfinished"></translation> </message> @@ -777,13 +777,13 @@ </message> <message> <location filename="../LDesktop.cpp" line="257"/> - <location filename="../LDesktop.cpp" line="608"/> + <location filename="../LDesktop.cpp" line="636"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> <location filename="../LDesktop.cpp" line="258"/> - <location filename="../LDesktop.cpp" line="628"/> + <location filename="../LDesktop.cpp" line="656"/> <source>New File</source> <translation type="unfinished"></translation> </message> @@ -823,9 +823,9 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../LDesktop.cpp" line="614"/> - <location filename="../LDesktop.cpp" line="634"/> - <location filename="../LDesktop.cpp" line="655"/> + <location filename="../LDesktop.cpp" line="642"/> + <location filename="../LDesktop.cpp" line="662"/> + <location filename="../LDesktop.cpp" line="683"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -833,6 +833,11 @@ <context> <name>LDesktopSwitcher</name> <message> + <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="19"/> + <source>Workspace 1</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="135"/> <location filename="../panel-plugins/desktopswitcher/LDesktopSwitcher.cpp" line="139"/> <source>Workspace %1</source> @@ -850,8 +855,8 @@ <context> <name>LSession</name> <message> - <location filename="../LSession.cpp" line="163"/> - <location filename="../LSession.cpp" line="346"/> + <location filename="../LSession.cpp" line="165"/> + <location filename="../LSession.cpp" line="352"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> @@ -922,42 +927,42 @@ <context> <name>LTaskButton</name> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="147"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="148"/> <source>Activate Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="150"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="151"/> <source>Minimize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="152"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="153"/> <source>Restore Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="154"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="155"/> <source>Maximize Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="157"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="158"/> <source>Close Window</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="160"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> <source>Show All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="161"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> <source>Minimize All Windows</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="162"/> + <location filename="../panel-plugins/taskmanager/LTaskButton.cpp" line="163"/> <source>Close All Windows</source> <translation type="unfinished"></translation> </message> @@ -984,16 +989,19 @@ </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="20"/> <source>CPU Temp:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="21"/> <source>CPU Usage:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/> + <location filename="../desktop-plugins/systemmonitor/MonitorWidget.cpp" line="22"/> <source>Mem Usage:</source> <translation type="unfinished"></translation> </message> @@ -1425,26 +1433,31 @@ </message> <message> <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/> + <source>Update and Restart</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1042"/> <source>Power Off</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/> - <source>Log Out</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1061"/> + <source>(System Preparing Updates)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> - <source>Preferences</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1090"/> + <source>Log Out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/> - <source>(System Performing Updates)</source> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/> + <source>Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/> + <location filename="../panel-plugins/systemstart/StartMenu.ui" line="1150"/> <source>Back</source> <translation type="unfinished"></translation> </message> @@ -1474,24 +1487,24 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="501"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="477"/> <source>%1% (Plugged In)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="481"/> <source>%1% (%2 Estimated)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="506"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="482"/> <source>%1% Remaining</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="522"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="681"/> - <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="692"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="498"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="667"/> + <location filename="../panel-plugins/systemstart/StartMenu.cpp" line="678"/> <source>Workspace %1/%2</source> <translation type="unfinished"></translation> </message> @@ -1519,38 +1532,48 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="127"/> - <location filename="../SystemWindow.cpp" line="60"/> + <location filename="../SystemWindow.ui" line="132"/> + <source>Update Now</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="154"/> + <source>Updates ready to install</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../SystemWindow.ui" line="192"/> + <location filename="../SystemWindow.cpp" line="63"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="156"/> + <location filename="../SystemWindow.ui" line="221"/> <source>Lock</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.ui" line="172"/> + <location filename="../SystemWindow.ui" line="237"/> <source>Suspend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>Apply Updates?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="57"/> + <location filename="../SystemWindow.cpp" line="60"/> <source>You have system updates waiting to be applied! Do you wish to install them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="58"/> + <location filename="../SystemWindow.cpp" line="61"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../SystemWindow.cpp" line="59"/> + <location filename="../SystemWindow.cpp" line="62"/> <source>No</source> <translation type="unfinished"></translation> </message> @@ -1759,4 +1782,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-desktop/lumina-desktop.8 b/src-qt5/core/lumina-desktop/lumina-desktop.1 index f86d3044..4fa33371 100644 --- a/src-qt5/core/lumina-desktop/lumina-desktop.8 +++ b/src-qt5/core/lumina-desktop/lumina-desktop.1 @@ -1,5 +1,5 @@ .Dd March 29, 2017 -.Dt LUMINA-DESKTOP 8 +.Dt LUMINA-DESKTOP 1 .Os Lumina Desktop Environment .\"------------------------------------------------------------------- .Sh NAME diff --git a/src-qt5/core/lumina-desktop/lumina-desktop.pro b/src-qt5/core/lumina-desktop/lumina-desktop.pro index d4e57c5c..e36d11a2 100644 --- a/src-qt5/core/lumina-desktop/lumina-desktop.pro +++ b/src-qt5/core/lumina-desktop/lumina-desktop.pro @@ -77,17 +77,6 @@ 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 \ @@ -103,17 +92,17 @@ conf.path = $${L_ETCDIR} message("Installing defaults settings for OS: $${DEFAULT_SETTINGS}") OS=$${DEFAULT_SETTINGS} } -exists("defaults/luminaDesktop-$${OS}.conf"){ +exists("$$PWD/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 + conf.extra = cp $$PWD/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 + conf.extra = cp $$PWD/defaults/luminaDesktop.conf $(INSTALL_ROOT)$${L_ETCDIR}/luminaDesktop.conf.dist } -exists("defaults/desktop-background-$${OS}.jpg"){ +exists("$$PWD/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 + defaults.extra = cp $$PWD/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 + defaults.extra = cp $$PWD/defaults/desktop-background.jpg $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/desktop-background.jpg } TRANSLATIONS = i18n/lumina-desktop_af.ts \ @@ -181,12 +170,12 @@ TRANSLATIONS = i18n/lumina-desktop_af.ts \ i18n/lumina-desktop_zu.ts dotrans.path=$${L_SHAREDIR}/lumina-desktop/i18n/ -dotrans.extra=cd i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ +dotrans.extra=cd $$PWD/i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ -manpage.path=$${L_MANDIR}/man8/ -manpage.extra="$${MAN_ZIP} lumina-desktop.8 > $(INSTALL_ROOT)$${L_MANDIR}/man8/lumina-desktop.8.gz" +manpage.path=$${L_MANDIR}/man1/ +manpage.extra="$${MAN_ZIP} $$PWD/lumina-desktop.1 > $(INSTALL_ROOT)$${L_MANDIR}/man1/lumina-desktop.1.gz" -INSTALLS += target desktop icons wallpapers defaults conf fluxconf manpage +INSTALLS += target desktop icons defaults conf fluxconf manpage WITH_I18N{ INSTALLS += dotrans diff --git a/src-qt5/core/lumina-desktop/main.cpp b/src-qt5/core/lumina-desktop/main.cpp index 6017cad7..826d697c 100644 --- a/src-qt5/core/lumina-desktop/main.cpp +++ b/src-qt5/core/lumina-desktop/main.cpp @@ -78,33 +78,19 @@ int main(int argc, char ** argv) //Startup the session LSession a(argc, argv); if(!a.isPrimaryProcess()){ return 0; } + //Ensure that the user's config files exist + /*if( LSession::checkUserFiles() ){ //make sure to create any config files before creating the QApplication + qDebug() << "User files changed - restarting the desktop session"; + return 787; //return special restart code + }*/ //Setup the log file - /* logfile.setFileName( QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/logs/runtime.log" ); - qDebug() << "Lumina Log File:" << logfile.fileName(); - if(QFile::exists(logfile.fileName()+".old")){ QFile::remove(logfile.fileName()+".old"); } - if(logfile.exists()){ QFile::rename(logfile.fileName(), logfile.fileName()+".old"); } - //Make sure the parent directory exists - if(!QFile::exists(QDir::homePath()+"/.lumina/logs")){ - QDir dir; - dir.mkpath(QDir::homePath()+"/.lumina/logs"); - } - logfile.open(QIODevice::WriteOnly | QIODevice::Append);*/ QTime *timer=0; if(DEBUG){ timer = new QTime(); timer->start(); } - //Setup Log File - //qInstallMessageHandler(MessageOutput); - if(DEBUG){ qDebug() << "Theme Init:" << timer->elapsed(); } - LuminaThemeEngine theme(&a); - QObject::connect(&theme, SIGNAL(updateIcons()), &a, SLOT(reloadIconTheme()) ); - //if(DEBUG){ qDebug() << "Load Locale:" << timer->elapsed(); } - //LUtils::LoadTranslation(&a, "lumina-desktop"); if(DEBUG){ qDebug() << "Session Setup:" << timer->elapsed(); } a.setupSession(); - theme.refresh(); if(DEBUG){ qDebug() << "Exec Time:" << timer->elapsed(); delete timer;} int retCode = a.exec(); //qDebug() << "Stopping the window manager"; qDebug() << "Finished Closing Down Lumina"; - //logfile.close(); return retCode; } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp b/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp index 1fd819b5..98770f18 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp @@ -16,7 +16,7 @@ AppLaunchButtonPlugin::AppLaunchButtonPlugin(QWidget *parent, QString id, bool h button->setAutoRaise(true); button->setToolButtonStyle(Qt::ToolButtonIconOnly); appfile = id.section("---",0,0).section("::",1,1); - if(!QFile::exists(appfile) && appfile.endsWith(".desktop")){ + if(!QFile::exists(appfile) && appfile.endsWith(".desktop")){ //might be a relative path - try to find the file appfile = LUtils::AppToAbsolute(appfile.section("/",-1) ); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.h b/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.h index 3aa3c7ad..f146df66 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.h @@ -24,11 +24,11 @@ // PANEL PLUGIN BUTTON class AppLaunchButtonPlugin : public LPPlugin{ Q_OBJECT - + public: AppLaunchButtonPlugin(QWidget *parent = 0, QString id = "applauncher", bool horizontal=true); ~AppLaunchButtonPlugin(); - + private: QToolButton *button; QString appfile; @@ -50,14 +50,18 @@ public slots: this->layout()->update(); updateButtonVisuals(); } - - void LocaleChange(){ + void LocaleChange(){ updateButtonVisuals(); } - void ThemeChange(){ updateButtonVisuals(); } +protected: + void changeEvent(QEvent *ev){ + LPPlugin::changeEvent(ev); + QEvent::Type tmp = ev->type(); + if(tmp == QEvent::StyleChange || tmp==QEvent::ThemeChange || tmp==QEvent::LanguageChange || tmp==QEvent::LocaleChange){ updateButtonVisuals(); } + } }; -#endif
\ No newline at end of file +#endif 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 be5b8488..69ea5faa 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.cpp @@ -20,6 +20,7 @@ LBattery::LBattery(QWidget *parent, QString id, bool horizontal) : LPPlugin(pare connect(timer,SIGNAL(timeout()), this, SLOT(updateBattery()) ); timer->start(); QTimer::singleShot(0,this,SLOT(OrientationChange()) ); //update the sizing/icon + sessionsettings = new QSettings("lumina-desktop", "sessionsettings"); } LBattery::~LBattery(){ @@ -76,9 +77,11 @@ void LBattery::updateBattery(bool force){ label->setPixmap( LXDG::findIcon("battery-unknown", "battery-missing").pixmap(label->size()) ); break; } + } if(icon<iconOld && icon==0){ - //Play some audio warning chime when - QString sfile = LSession::handle()->sessionSettings()->value("audiofiles/batterylow", LOS::LuminaShare()+"low-battery.ogg").toString(); + //Play some audio warning chime when + bool playaudio = sessionsettings->value("PlayBatteryLowAudio",true).toBool(); + if( playaudio ){ QString sfile = LSession::handle()->sessionSettings()->value("audiofiles/batterylow", LOS::LuminaShare()+"low-battery.ogg").toString(); LSession::handle()->playAudioFile(sfile); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h index 29562d5d..3c23be1c 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/battery/LBattery.h @@ -25,12 +25,13 @@ class LBattery : public LPPlugin{ public: LBattery(QWidget *parent = 0, QString id = "battery", bool horizontal=true); ~LBattery(); - + private: QTimer *timer; QLabel *label; int iconOld; - + QSettings *sessionsettings; + private slots: void updateBattery(bool force = false); QString getRemainingTime(); @@ -39,7 +40,7 @@ public slots: void LocaleChange(){ updateBattery(true); } - + void OrientationChange(){ if(this->layout()->direction()==QBoxLayout::LeftToRight){ label->setFixedSize( QSize(this->height(), this->height()) ); @@ -48,6 +49,15 @@ public slots: } updateBattery(true); //force icon refresh } +protected: + void changeEvent(QEvent *ev){ + LPPlugin::changeEvent(ev); + QEvent::Type tmp = ev->type(); + if(tmp==QEvent::ThemeChange || tmp==QEvent::LanguageChange || tmp==QEvent::LocaleChange){ + updateBattery(true); + } + } + }; #endif diff --git a/src-qt5/core/lumina-desktop/panel-plugins/desktopswitcher/LDesktopSwitcher.cpp b/src-qt5/core/lumina-desktop/panel-plugins/desktopswitcher/LDesktopSwitcher.cpp index 8e0a9d28..294b37be 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/desktopswitcher/LDesktopSwitcher.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/desktopswitcher/LDesktopSwitcher.cpp @@ -14,9 +14,9 @@ LDesktopSwitcher::LDesktopSwitcher(QWidget *parent, QString id, bool horizontal) label = new QToolButton(this); label->setPopupMode(QToolButton::DelayedPopup); label->setAutoRaise(true); - label->setToolButtonStyle(Qt::ToolButtonIconOnly); + label->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); label->setIcon( LXDG::findIcon("format-view-carousel", "preferences-desktop-display") ); - label->setToolTip(QString("Workspace 1")); + label->setToolTip(QString(tr("Workspace 1"))); connect(label, SIGNAL(clicked()), this, SLOT(openMenu())); menu = new QMenu(this); connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(menuActionTriggered(QAction*))); @@ -44,7 +44,7 @@ void LDesktopSwitcher::setNumberOfDesktops(int number) { Atom atom = XInternAtom(display, "_NET_NUMBER_OF_DESKTOPS", False); XEvent xevent; xevent.type = ClientMessage; - xevent.xclient.type = ClientMessage; + xevent.xclient.type = ClientMessage; xevent.xclient.display = display; xevent.xclient.window = rootWindow; xevent.xclient.message_type = atom; @@ -129,7 +129,7 @@ void LDesktopSwitcher::createMenu() { int cur = LSession::handle()->XCB->CurrentWorkspace(); //current desktop number int tot = LSession::handle()->XCB->NumberOfWorkspaces(); //total number of desktops //qDebug() << "-- vor getCurrentDesktop SWITCH"; - qDebug() << "Virtual Desktops:" << tot << cur; + //qDebug() << "Virtual Desktops:" << tot << cur; menu->clear(); for (int i = 0; i < tot; i++) { QString name = QString(tr("Workspace %1")).arg( QString::number(i+1) ); @@ -137,6 +137,7 @@ void LDesktopSwitcher::createMenu() { menu->addAction(newAction(i, name)); } label->setToolTip(QString(tr("Workspace %1")).arg(QString::number(cur + 1))); + label->setText( QString::number(cur+1) ); } void LDesktopSwitcher::menuActionTriggered(QAction* act) { diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp index f4382ffc..545000f4 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/ItemWidget.cpp @@ -70,12 +70,12 @@ ItemWidget::ItemWidget(QWidget *parent, QString itemPath, QString type, bool gob iconPath = itemPath; //icon->setPixmap( QIcon(itemPath).pixmap(64,64) ); }else{ - if( LUtils::isValidBinary(itemPath) ){ + if( LUtils::isValidBinary(itemPath) ){ if(ICONS->exists(type)){ iconPath = type; } else{ iconPath = "application-x-executable"; } }else{ iconPath = LXDG::findAppMimeForFile(itemPath.section("/",-1)).replace("/","-"); } } - name->setText( itemPath.section("/",-1) ); //this->fontMetrics().elidedText(itemPath.section("/",-1), Qt::ElideRight, TEXTCUTOFF) ); + name->setText( itemPath.section("/",-1) ); //this->fontMetrics().elidedText(itemPath.section("/",-1), Qt::ElideRight, TEXTCUTOFF) ); text = itemPath.section("/",-1) ; } ICONS->loadIcon(icon, iconPath); @@ -133,11 +133,11 @@ ItemWidget::~ItemWidget(){ //actButton->deleteLater(); contextMenu->clear(); //contextMenu->deleteLater(); - if(actButton->menu()!=0){ + if(actButton->menu()!=0){ for(int i=0; i<actButton->menu()->actions().length(); i++){ actButton->menu()->actions().at(i)->deleteLater(); } - actButton->menu()->deleteLater(); + actButton->menu()->deleteLater(); } //actButton->deleteLater(); //icon->deleteLater(); @@ -156,7 +156,7 @@ void ItemWidget::createWidget(){ menuopen = false; menureset = new QTimer(this); menureset->setSingleShot(true); - menureset->setInterval(1000); //1 second + menureset->setInterval(1000); //1 second this->setContentsMargins(0,0,0,0); contextMenu = new QMenu(this); connect(contextMenu, SIGNAL(aboutToShow()), this, SLOT(actionMenuOpen()) ); @@ -220,7 +220,7 @@ void ItemWidget::setupActions(XDGDesktop *app){ else{ ICONS->loadIcon(act, app->icon); } act->setToolTip(app->actions[i].ID); act->setWhatsThis(app->actions[i].ID); - actButton->menu()->addAction(act); + actButton->menu()->addAction(act); } connect(actButton->menu(), SIGNAL(triggered(QAction*)), this, SLOT(actionClicked(QAction*)) ); connect(actButton->menu(), SIGNAL(aboutToShow()), this, SLOT(actionMenuOpen()) ); @@ -230,9 +230,11 @@ void ItemWidget::setupActions(XDGDesktop *app){ void ItemWidget::updateItems(){ //update the text/icon to match sizes - int H = (2.5*name->fontMetrics().height() ) -4; //make sure the height is large enough for two lines + int H = (2.2*name->fontMetrics().height() ) -4; //make sure the height is large enough for two lines icon->setFixedSize(QSize(H, H)); + icon->setAlignment(Qt::AlignCenter); actButton->setFixedSize( QSize( H/2, H) ); + H = (1.8*name->fontMetrics().height() ) -4; QStringList newname = text.split("<br>"); for(int i=0; i<newname.length(); i++){ newname[i] = name->fontMetrics().elidedText(newname[i], Qt::ElideRight, name->width()); } name->setText( newname.join("<br>") ); @@ -271,9 +273,9 @@ void ItemWidget::RemoveFavorite(){ void ItemWidget::AddFavorite(){ if( LDesktopUtils::addFavorite(icon->whatsThis()) ){ linkPath = icon->whatsThis(); - emit NewShortcut(); + emit NewShortcut(); } - + } void ItemWidget::RemoveQL(){ qDebug() << "Remove QuickLaunch Button:" << icon->whatsThis(); @@ -282,7 +284,7 @@ void ItemWidget::RemoveQL(){ void ItemWidget::AddQL(){ qDebug() << "Add QuickLaunch Button:" << icon->whatsThis(); - emit toggleQuickLaunch(icon->whatsThis(), true); + emit toggleQuickLaunch(icon->whatsThis(), true); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp index f44add77..d8014f4c 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.cpp @@ -25,10 +25,13 @@ LStartButtonPlugin::LStartButtonPlugin(QWidget *parent, QString id, bool horizon startmenu = new StartMenu(this); connect(startmenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) ); connect(startmenu, SIGNAL(UpdateQuickLaunch(QStringList)), this, SLOT(updateQuickLaunch(QStringList))); + + QRect screenSize = QApplication::desktop()->availableGeometry(this); + QSize saved = LSession::handle()->DesktopPluginSettings()->value("panelPlugs/"+this->type()+"/MenuSize",QSize(this->fontMetrics().width("x")*30 ,screenSize.height()/1.8)).toSize(); + //qDebug() << "Got Start Menu Saved Size:" << saved; + if(!saved.isNull() && saved.isValid()){ startmenu->setFixedSize(saved); } //re-load the previously saved value menu->setContents(startmenu); - QSize saved = LSession::handle()->DesktopPluginSettings()->value("panelPlugs/"+this->type()+"/MenuSize", QSize(0,0)).toSize(); - if(!saved.isNull()){ startmenu->setFixedSize(saved); } //re-load the previously saved value - + button->setMenu(menu); connect(menu, SIGNAL(aboutToHide()), this, SLOT(updateButtonVisuals()) ); QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes @@ -121,6 +124,7 @@ void LStartButtonPlugin::openMenu(){ menu->setContents(startmenu); if(old!=0){ old->deleteLater(); }*/ //-------- + //qDebug() << "Menu Size:" << startmenu->size(); startmenu->UpdateMenu(); button->showMenu(); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp index 1992db0f..ee3e0f80 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.cpp @@ -35,15 +35,15 @@ StartMenu::StartMenu(QWidget *parent) : QWidget(parent), ui(new Ui::StartMenu){ } StartMenu::~StartMenu(){ - + } void StartMenu::UpdateAll(){ //Update all the icons/text on all the pages - + // Update Text ui->retranslateUi(this); - + //Update Icons ui->tool_goto_apps->setIcon(LXDG::findIcon("system-run","")); ui->tool_goto_settings->setIcon(LXDG::findIcon("preferences-system","")); @@ -53,7 +53,7 @@ void StartMenu::UpdateAll(){ ui->tool_goto_logout->setIcon(LXDG::findIcon("system-log-out","")); ui->tool_back->setIcon(LXDG::findIcon("go-previous","")); ui->tool_launch_deskinfo->setIcon(LXDG::findIcon("system-help","")); - + ui->tool_launch_mixer->setIcon( LXDG::findIcon("preferences-desktop-sound","") ); ui->label_bright_icon->setPixmap( LXDG::findIcon("preferences-desktop-brightness","").pixmap(ui->tool_goto_apps->iconSize()) ); ui->label_locale_icon->setPixmap( LXDG::findIcon("preferences-desktop-locale","").pixmap(ui->tool_goto_apps->iconSize()) ); @@ -63,7 +63,7 @@ void StartMenu::UpdateAll(){ ui->tool_restart->setIcon(LXDG::findIcon("system-reboot","")); ui->tool_shutdown->setIcon(LXDG::findIcon("system-shutdown","")); ui->tool_suspend->setIcon(LXDG::findIcon("system-suspend","")); - + //Update Visibility of system/session/OS options // -- Control Panel QString tmp = LOS::ControlPanelShortcut(); @@ -138,7 +138,7 @@ void StartMenu::UpdateMenu(bool forceall){ } void StartMenu::ReLoadQuickLaunch(){ - emit UpdateQuickLaunch( LSession::handle()->sessionSettings()->value("QuicklaunchApps",QStringList()).toStringList() ); + emit UpdateQuickLaunch( LSession::handle()->sessionSettings()->value("QuicklaunchApps",QStringList()).toStringList() ); } void StartMenu::UpdateQuickLaunch(QString path, bool keep){ @@ -156,11 +156,11 @@ void StartMenu::UpdateQuickLaunch(QString path, bool keep){ // ========================== /*void StartMenu::deleteChildren(QWidget *obj){ if(obj->layout()==0){ - for(int i=0; i<obj->children().count(); i++){ - obj->children().at(i)->deleteLater(); + for(int i=0; i<obj->children().count(); i++){ + obj->children().at(i)->deleteLater(); } }else{ - + } }*/ @@ -174,7 +174,7 @@ void StartMenu::ClearScrollArea(QScrollArea *area){ if(area == ui->scroll_favs){ area->takeWidget()->deleteLater(); } - if(area->widget()==0){ + if(area->widget()==0){ area->setWidget( new QWidget(area) ); //create a new widget in the scroll area } if(area->widget()->layout()==0){ @@ -203,7 +203,7 @@ void StartMenu::SortScrollArea(QScrollArea *area){ for(int i=0; i<lay->count(); i++){ items << lay->itemAt(i)->widget()->whatsThis(); } - + items.sort(); //qDebug() << " - Sorted Items:" << items; for(int i=0; i<items.length(); i++){ @@ -223,10 +223,10 @@ void StartMenu::SortScrollArea(QScrollArea *area){ void StartMenu::do_search(QString search, bool force){ search = search.simplified(); //remove unneccesary whitespace - if(search == CSearch && !force){ + if(search == CSearch && !force){ //nothing new - just ensure the page is visible if(ui->stackedWidget->currentWidget()!=ui->page_search ){ ui->stackedWidget->setCurrentWidget(ui->page_search); } - return; + return; }else if(search.isEmpty()){ CSearch.clear(); if(ui->stackedWidget->currentWidget()==ui->page_search ){ on_tool_back_clicked(); } @@ -234,7 +234,7 @@ void StartMenu::do_search(QString search, bool force){ } //Got a search term - check it CSearch = search; //save this for comparison later - qDebug() << "Search for term:" << search; + //qDebug() << "Search for term:" << search; ClearScrollArea(ui->scroll_search); topsearch.clear(); //Now find any items which match the search @@ -275,7 +275,7 @@ void StartMenu::do_search(QString search, bool force){ connect(it, SIGNAL(RemovedShortcut()), this, SLOT(UpdateFavs()) ); connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); - if(i%3==0){ + if(i%3==0){ QApplication::processEvents(); if(searchTimer->isActive()){ return; } //search changed - go ahead and stop here } @@ -305,13 +305,13 @@ bool StartMenu::promptAboutUpdates(bool &skip){ // PRIVATE SLOTS // ======================== void StartMenu::LaunchItem(QString path, bool fix){ - if(path.startsWith("chcat::::")){ + if(path.startsWith("chcat::::")){ ChangeCategory(path.section("::::",1,50)); return; } - qDebug() << "Launching Item:" << path << fix; + //qDebug() << "Launching Item:" << path << fix; if(!path.isEmpty()){ - qDebug() << "Launch Application:" << path; + //qDebug() << "Launch Application:" << path; if( fix && !path.startsWith("lumina-open") ){ LSession::LaunchApplication("lumina-open \""+path+"\""); } else{ LSession::LaunchApplication(path); } emit CloseMenu(); //so the menu container will close @@ -355,7 +355,7 @@ void StartMenu::UpdateApps(){ connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); } } - + }else if(ui->check_apps_showcats->checkState() == Qt::Checked){ //qDebug() << " - Checked"; //Only show categories to start with - and have the user click-into a cat to see apps @@ -378,7 +378,7 @@ void StartMenu::UpdateApps(){ ui->scroll_apps->widget()->layout()->addWidget(it); connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); //Show apps for this cat - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value(CCat); + QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value(CCat); for(int i=0; i<apps.length(); i++){ //qDebug() << " - App:" << apps[i].name; ItemWidget *it = new ItemWidget(ui->scroll_apps->widget(), apps[i] ); @@ -390,11 +390,11 @@ void StartMenu::UpdateApps(){ connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); } } - + }else{ //qDebug() << " - Not Checked"; //No categories at all - just alphabetize all the apps - QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); + QList<XDGDesktop*> apps = LSession::handle()->applicationMenu()->currentAppHash()->value("All"); CCat.clear(); //Now add all the apps for this category for(int i=0; i<apps.length(); i++){ @@ -407,8 +407,7 @@ void StartMenu::UpdateApps(){ connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); } } - - + } void StartMenu::UpdateFavs(){ @@ -427,36 +426,14 @@ void StartMenu::UpdateFavs(){ else{ tmp = rest; } //everything left over if(type==1){ SortScrollArea(ui->scroll_favs); - //Need to run a special routine for sorting the apps (already in the widget) - //qDebug() << "Sort App Widgets..."; - // Since each app actually might have a different name listed within the file - /*QLayout *lay = ui->scroll_favs->widget()->layout(); - QStringList items; - for(int i=0; i<lay->count(); i++){ - items << lay->itemAt(i)->widget()->whatsThis().toLower(); - } - - items.sort(); - // qDebug() << " - Sorted Items:" << items; - for(int i=0; i<items.length(); i++){ - if(items[i].isEmpty()){ continue; } - //QLayouts are weird in that they can only add items to the end - need to re-insert almost every item - for(int j=0; j<lay->count(); j++){ - //Find this item - if(lay->itemAt(j)->widget()->whatsThis().toLower()==items[i]){ - //Found it - now move it if necessary - //qDebug() << "Found Item:" << items[i] << i << j; - lay->addItem( lay->takeAt(j) ); - break; - } - } - }*/ - + }//end of special app sorting routine tmp.sort(); //Sort alphabetically by name (dirs/files) for(int i=0; i<tmp.length(); i++){ if(type<2){ rest.removeAll(tmp[i]); } - if( !QFile::exists(tmp[i].section("::::",2,-1)) ){ continue; } //invalid favorite - skip it + if( !tmp[i].section("::::",2,-1).startsWith("/net/") ){ + if( !QFile::exists(tmp[i].section("::::",2,-1)) ){ continue; } //invalid favorite - skip it + } ItemWidget *it = 0; if( tmp[i].section("::::",2,-1).endsWith(".desktop")){ XDGDesktop item(tmp[i].section("::::",2,-1)); @@ -472,7 +449,6 @@ void StartMenu::UpdateFavs(){ connect(it, SIGNAL(RunItem(QString)), this, SLOT(LaunchItem(QString)) ); connect(it, SIGNAL(toggleQuickLaunch(QString, bool)), this, SLOT(UpdateQuickLaunch(QString, bool)) ); } - //QApplication::processEvents(); } //end loop over types ui->scroll_favs->update(); //qDebug() << "End updateFavs"; @@ -519,7 +495,7 @@ void StartMenu::on_stackedWidget_currentChanged(int val){ if(tot>1){ ui->frame_wkspace->setVisible(true); int cur = LSession::handle()->XCB->CurrentWorkspace(); - ui->label_wkspace->setText( QString(tr("Workspace %1/%2")).arg(QString::number(cur+1), QString::number(tot)) ); + ui->label_wkspace->setText( QString(tr("Workspace %1/%2")).arg(QString::number(cur+1), QString::number(tot)) ); }else{ ui->frame_wkspace->setVisible(false); } @@ -531,6 +507,7 @@ void StartMenu::on_stackedWidget_currentChanged(int val){ tmp = LOS::audioVolume(); ui->frame_audio->setVisible(tmp >= 0); if(tmp >= 0){ ui->slider_volume->setValue(tmp); } + }else if(page == ui->page_leave){ if( !ui->frame_leave_system->whatsThis().isEmpty() ){ //This frame is allowed/visible - need to adjust the shutdown detection @@ -538,10 +515,11 @@ void StartMenu::on_stackedWidget_currentChanged(int val){ ui->tool_restart->setEnabled(!updating); ui->tool_shutdown->setEnabled(!updating); ui->label_updating->setVisible(updating); //to let the user know *why* they can't shutdown/restart right now + ui->tool_restart_updates->setVisible(!updating && !LOS::systemPendingUpdates().isEmpty() ); } ui->frame_leave_suspend->setVisible( LOS::systemCanSuspend() ); } - + } void StartMenu::catViewChanged(){ @@ -567,7 +545,7 @@ void StartMenu::on_tool_goto_apps_clicked(){ } void StartMenu::on_tool_goto_settings_clicked(){ - ui->stackedWidget->setCurrentWidget(ui->page_settings); + ui->stackedWidget->setCurrentWidget(ui->page_settings); } void StartMenu::on_tool_goto_logout_clicked(){ @@ -585,7 +563,7 @@ void StartMenu::on_tool_launch_controlpanel_clicked(){ } void StartMenu::on_tool_launch_fm_clicked(){ - LaunchItem(QDir::homePath()); + LaunchItem(QDir::homePath()); } void StartMenu::on_tool_launch_store_clicked(){ @@ -614,17 +592,25 @@ void StartMenu::on_tool_logout_clicked(){ void StartMenu::on_tool_restart_clicked(){ emit CloseMenu(); QCoreApplication::processEvents(); - bool skipupdates = false; - if( !promptAboutUpdates(skipupdates) ){ return; } - LSession::handle()->StartReboot(skipupdates); + //bool skipupdates = false; + //if( !promptAboutUpdates(skipupdates) ){ return; } + LSession::handle()->StartReboot(true); +} + +void StartMenu::on_tool_restart_updates_clicked(){ + emit CloseMenu(); + QCoreApplication::processEvents(); + //bool skipupdates = false; + //if( !promptAboutUpdates(skipupdates) ){ return; } + LSession::handle()->StartReboot(false); } void StartMenu::on_tool_shutdown_clicked(){ emit CloseMenu(); QCoreApplication::processEvents(); - bool skipupdates = false; - if( !promptAboutUpdates(skipupdates) ){ return; } - LSession::handle()->StartShutdown(skipupdates); + //bool skipupdates = false; + //if( !promptAboutUpdates(skipupdates) ){ return; } + LSession::handle()->StartShutdown(); } void StartMenu::on_tool_suspend_clicked(){ @@ -661,14 +647,14 @@ void StartMenu::on_tool_mute_audio_clicked(){ ui->slider_volume->setValue(0); } } - + //Screen Brightness void StartMenu::on_slider_bright_valueChanged(int val){ ui->label_bright->setText(QString::number(val)+"%"); LOS::setScreenBrightness(val); } - + //Workspace void StartMenu::on_tool_set_nextwkspace_clicked(){ int cur = LSession::handle()->XCB->CurrentWorkspace(); @@ -689,10 +675,10 @@ void StartMenu::on_tool_set_prevwkspace_clicked(){ if(cur<0){ cur = tot-1; } //back to end //qDebug() << " - New Current:" << cur; LSession::handle()->XCB->SetCurrentWorkspace(cur); - ui->label_wkspace->setText( QString(tr("Workspace %1/%2")).arg(QString::number(cur+1), QString::number(tot)) ); + ui->label_wkspace->setText( QString(tr("Workspace %1/%2")).arg(QString::number(cur+1), QString::number(tot)) ); } - + //Locale void StartMenu::on_combo_locale_currentIndexChanged(int){ //Get the currently selected Locale @@ -703,7 +689,7 @@ void StartMenu::on_combo_locale_currentIndexChanged(int){ LSession::handle()->switchLocale(locale); } - + //Search void StartMenu::on_line_search_textEdited(QString){ if(searchTimer->isActive()){ searchTimer->stop(); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h index 8ab04d94..0a90311d 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.h @@ -34,13 +34,13 @@ private: Ui::StartMenu *ui; QStringList favs; QString CCat, CSearch, topsearch; //current category/search - QTimer *searchTimer; + QTimer *searchTimer; //Simple utility functions //void deleteChildren(QWidget *obj); //recursive function void ClearScrollArea(QScrollArea *area); void SortScrollArea(QScrollArea *area); - void do_search(QString search, bool force); + void do_search(QString search, bool force); bool promptAboutUpdates(bool &skip); @@ -73,6 +73,7 @@ private slots: void on_tool_lock_clicked(); void on_tool_logout_clicked(); void on_tool_restart_clicked(); + void on_tool_restart_updates_clicked(); void on_tool_shutdown_clicked(); void on_tool_suspend_clicked(); @@ -80,17 +81,17 @@ private slots: void on_slider_volume_valueChanged(int); void on_tool_launch_mixer_clicked(); void on_tool_mute_audio_clicked(); - + //Screen Brightness void on_slider_bright_valueChanged(int); - + //Workspace void on_tool_set_nextwkspace_clicked(); void on_tool_set_prevwkspace_clicked(); - + //Locale void on_combo_locale_currentIndexChanged(int); - + //Search void on_line_search_textEdited(QString); void startSearch(); @@ -99,7 +100,7 @@ private slots: signals: void CloseMenu(); void UpdateQuickLaunch(QStringList); - + }; #endif diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.ui b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.ui index d374bfce..500b6559 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.ui +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/StartMenu.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>181</width> - <height>405</height> + <width>336</width> + <height>466</height> </rect> </property> <property name="windowTitle"> @@ -42,7 +42,7 @@ <item> <widget class="QStackedWidget" name="stackedWidget"> <property name="currentIndex"> - <number>4</number> + <number>3</number> </property> <widget class="QWidget" name="page_main"> <layout class="QVBoxLayout" name="verticalLayout_2"> @@ -142,8 +142,8 @@ <rect> <x>0</x> <y>0</y> - <width>179</width> - <height>208</height> + <width>334</width> + <height>102</height> </rect> </property> </widget> @@ -438,8 +438,8 @@ <rect> <x>0</x> <y>0</y> - <width>179</width> - <height>299</height> + <width>334</width> + <height>277</height> </rect> </property> </widget> @@ -1003,6 +1003,31 @@ </widget> </item> <item> + <widget class="QToolButton" name="tool_restart_updates"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="styleSheet"> + <string notr="true">QToolButton{ background-color: rgba(150,150,0,100); }</string> + </property> + <property name="text"> + <string>Update and Restart</string> + </property> + <property name="icon"> + <iconset theme="system-reboot"/> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> <widget class="QToolButton" name="tool_shutdown"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> @@ -1033,7 +1058,7 @@ <item> <widget class="QLabel" name="label_updating"> <property name="text"> - <string>(System Performing Updates)</string> + <string>(System Preparing Updates)</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> @@ -1099,8 +1124,8 @@ <rect> <x>0</x> <y>0</y> - <width>167</width> - <height>345</height> + <width>308</width> + <height>351</height> </rect> </property> </widget> diff --git a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp index ab4e786f..8f867261 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp +++ b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp @@ -30,7 +30,7 @@ LTaskButton::LTaskButton(QWidget *parent, bool smallDisplay) : LTBWidget(parent) } LTaskButton::~LTaskButton(){ - + } //=========== @@ -81,11 +81,12 @@ LWinInfo LTaskButton::currentWindow(){ //============= // PUBLIC SLOTS //============= + void LTaskButton::UpdateButton(){ if(winMenu->isVisible()){ return; } //skip this if the window menu is currently visible for now bool statusOnly = (WINLIST.length() == LWINLIST.length()); LWINLIST = WINLIST; - + winMenu->clear(); LXCB::WINDOWVISIBILITY showstate = LXCB::IGNORE; for(int i=0; i<WINLIST.length(); i++){ @@ -98,7 +99,7 @@ void LTaskButton::UpdateButton(){ //Update the button visuals from the first window this->setIcon(WINLIST[i].icon(noicon)); cname = WINLIST[i].Class(); - if(cname.isEmpty()){ + if(cname.isEmpty()){ //Special case (chrome/chromium does not register *any* information with X except window title) cname = WINLIST[i].text(); if(cname.contains(" - ")){ cname = cname.section(" - ",-1); } diff --git a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.h b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.h index 6b171c6a..ff551998 100644 --- a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.h +++ b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.h @@ -15,6 +15,7 @@ #include <QMenu> #include <QEvent> #include <QAction> +#include <QTimer> // libLumina includes #include <LuminaXDG.h> @@ -29,7 +30,7 @@ class LTaskButton : public LTBWidget{ public: LTaskButton(QWidget *parent=0, bool smallDisplay = true); ~LTaskButton(); - + //Window Information QList<WId> windows(); QString classname(); @@ -56,6 +57,7 @@ public slots: void UpdateMenus(); //re-create the menus (text + icons) private slots: + void buttonClicked(); void closeWindow(); //send the signal to close a window void maximizeWindow(); //send the signal to maximize/restore a window @@ -66,7 +68,14 @@ private slots: void triggerWindow(); //change b/w visible and invisible void winClicked(QAction*); void openActionMenu(); - +protected: + void changeEvent(QEvent *ev){ + LTBWidget::changeEvent(ev); + QEvent::Type tmp = ev->type(); + if(tmp==QEvent::ThemeChange || tmp==QEvent::LanguageChange || tmp==QEvent::LocaleChange){ + QTimer::singleShot(qrand()%100+500, this, SLOT(UpdateButton()) ); + } + } signals: void MenuClosed(); }; diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_blue-grey-zoom.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_blue-grey-zoom.jpg Binary files differdeleted file mode 100644 index 481ca438..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_blue-grey-zoom.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_blue-grey.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_blue-grey.jpg Binary files differdeleted file mode 100644 index 9da67596..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_blue-grey.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_gold.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_gold.jpg Binary files differdeleted file mode 100644 index cba03cee..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_gold.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_green.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_green.jpg Binary files differdeleted file mode 100644 index 80b0d3e3..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_green.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_grey-blue-zoom.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_grey-blue-zoom.jpg Binary files differdeleted file mode 100644 index 4f753ed5..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_grey-blue-zoom.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_grey-blue.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_grey-blue.jpg Binary files differdeleted file mode 100644 index c214cd78..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_grey-blue.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_purple.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_purple.jpg Binary files differdeleted file mode 100644 index e4c3d7a8..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_purple.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_red.jpg b/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_red.jpg Binary files differdeleted file mode 100644 index a092f636..00000000 --- a/src-qt5/core/lumina-desktop/wallpapers/Lumina_Wispy_red.jpg +++ /dev/null diff --git a/src-qt5/core/lumina-info/LICENSE b/src-qt5/core/lumina-info/LICENSE index 8cf98833..85d675a4 100644 --- a/src-qt5/core/lumina-info/LICENSE +++ b/src-qt5/core/lumina-info/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2012-2016, Ken Moore (moorekou@gmail.com) +Copyright (c) 2012-2017, Ken Moore (moorekou@gmail.com) All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_af.ts b/src-qt5/core/lumina-info/i18n/lumina-info_af.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_af.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_af.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ar.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ar.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ar.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ar.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_az.ts b/src-qt5/core/lumina-info/i18n/lumina-info_az.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_az.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_az.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_bg.ts b/src-qt5/core/lumina-info/i18n/lumina-info_bg.ts index 2d5316bf..e855396e 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_bg.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_bg.ts @@ -94,4 +94,72 @@ <translation>Затваряне</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_bn.ts b/src-qt5/core/lumina-info/i18n/lumina-info_bn.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_bn.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_bn.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_bs.ts b/src-qt5/core/lumina-info/i18n/lumina-info_bs.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_bs.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_bs.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ca.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ca.ts index 9d0042d9..2306a98e 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ca.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ca.ts @@ -94,4 +94,72 @@ <translation>Tanca</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_cs.ts b/src-qt5/core/lumina-info/i18n/lumina-info_cs.ts index 071addb4..b77630ee 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_cs.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_cs.ts @@ -94,4 +94,72 @@ <translation>Zavřít</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_cy.ts b/src-qt5/core/lumina-info/i18n/lumina-info_cy.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_cy.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_cy.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_da.ts b/src-qt5/core/lumina-info/i18n/lumina-info_da.ts index fe539caf..4c8757c7 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_da.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_da.ts @@ -94,4 +94,72 @@ <translation>Luk</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_de.ts b/src-qt5/core/lumina-info/i18n/lumina-info_de.ts index e3b7aa45..9a94a622 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_de.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_de.ts @@ -94,4 +94,72 @@ <translation>Schließen</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_el.ts b/src-qt5/core/lumina-info/i18n/lumina-info_el.ts index 45d73ebd..27f41277 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_el.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_el.ts @@ -94,4 +94,72 @@ <translation>Κλείσιμο</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_en_AU.ts b/src-qt5/core/lumina-info/i18n/lumina-info_en_AU.ts index 4f3f0706..be3c6a35 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_en_AU.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_en_AU.ts @@ -94,4 +94,72 @@ <translation>Close</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_en_GB.ts b/src-qt5/core/lumina-info/i18n/lumina-info_en_GB.ts index d747c640..ce25656b 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_en_GB.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_en_GB.ts @@ -94,4 +94,72 @@ <translation>Close</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_en_ZA.ts b/src-qt5/core/lumina-info/i18n/lumina-info_en_ZA.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_en_ZA.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_en_ZA.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_es.ts b/src-qt5/core/lumina-info/i18n/lumina-info_es.ts index bf689483..aff3fc8c 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_es.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_es.ts @@ -94,4 +94,72 @@ <translation>Cerrar</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_et.ts b/src-qt5/core/lumina-info/i18n/lumina-info_et.ts index f31298aa..3ce7575f 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_et.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_et.ts @@ -16,17 +16,17 @@ <message> <location filename="../MainUI.ui" line="89"/> <source>Source Repository</source> - <translation type="unfinished"></translation> + <translation>Lähtekoodi repositoorium</translation> </message> <message> <location filename="../MainUI.ui" line="124"/> <source>Lumina Website</source> - <translation type="unfinished"></translation> + <translation>Lumina veebileht</translation> </message> <message> <location filename="../MainUI.ui" line="152"/> <source>Bug Reports</source> - <translation type="unfinished"></translation> + <translation>Puukide raporteerimine</translation> </message> <message> <location filename="../MainUI.ui" line="179"/> @@ -46,7 +46,7 @@ <message> <location filename="../MainUI.ui" line="276"/> <source>Ask the Community</source> - <translation type="unfinished"></translation> + <translation>Küsi kommuunilt</translation> </message> <message> <location filename="../MainUI.ui" line="233"/> @@ -94,4 +94,72 @@ <translation>Sulge</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation>Multimeedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation>Arendustegevus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation>Haridus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation>Mängud</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation>Graafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation>Võrk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation>Kontor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation>Teadus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation>Sätted</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation>Süsteem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation>Tööriistad</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation>Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation>Sorteerimata</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_eu.ts b/src-qt5/core/lumina-info/i18n/lumina-info_eu.ts index 26b1855c..f5942c4b 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_eu.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_eu.ts @@ -94,4 +94,72 @@ <translation>Itxi</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_fa.ts b/src-qt5/core/lumina-info/i18n/lumina-info_fa.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_fa.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_fa.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_fi.ts b/src-qt5/core/lumina-info/i18n/lumina-info_fi.ts index ba9465df..71a5239b 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_fi.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_fi.ts @@ -94,4 +94,72 @@ <translation>Sulje</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_fr.ts b/src-qt5/core/lumina-info/i18n/lumina-info_fr.ts index 09cd8502..acd5c507 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_fr.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_fr.ts @@ -94,4 +94,72 @@ <translation>Fermer</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_fr_CA.ts b/src-qt5/core/lumina-info/i18n/lumina-info_fr_CA.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_fr_CA.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_fr_CA.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_gl.ts b/src-qt5/core/lumina-info/i18n/lumina-info_gl.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_gl.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_gl.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_he.ts b/src-qt5/core/lumina-info/i18n/lumina-info_he.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_he.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_he.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_hi.ts b/src-qt5/core/lumina-info/i18n/lumina-info_hi.ts index 1d53b1ea..35271a65 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_hi.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_hi.ts @@ -94,4 +94,72 @@ <translation>बंद</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_hr.ts b/src-qt5/core/lumina-info/i18n/lumina-info_hr.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_hr.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_hr.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_hu.ts b/src-qt5/core/lumina-info/i18n/lumina-info_hu.ts index 645c4060..54fa05a2 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_hu.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_hu.ts @@ -94,4 +94,72 @@ <translation>Bezárás</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_id.ts b/src-qt5/core/lumina-info/i18n/lumina-info_id.ts index 16440245..ed752759 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_id.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_id.ts @@ -94,4 +94,72 @@ <translation>Tutup</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_is.ts b/src-qt5/core/lumina-info/i18n/lumina-info_is.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_is.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_is.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_it.ts b/src-qt5/core/lumina-info/i18n/lumina-info_it.ts index 3ecfd8af..e1d96ade 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_it.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_it.ts @@ -94,4 +94,72 @@ <translation>Chiudi</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ja.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ja.ts index 7c38fb6e..f06520fa 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ja.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ja.ts @@ -95,4 +95,72 @@ <translation>閉じる</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ka.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ka.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ka.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ka.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ko.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ko.ts index a6800f5c..894f48d8 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ko.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ko.ts @@ -94,4 +94,72 @@ <translation>닫기</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_lt.ts b/src-qt5/core/lumina-info/i18n/lumina-info_lt.ts index f962f91d..27940311 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_lt.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_lt.ts @@ -94,4 +94,72 @@ <translation>Užverti</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_lv.ts b/src-qt5/core/lumina-info/i18n/lumina-info_lv.ts index f38f9c01..a3951196 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_lv.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_lv.ts @@ -94,4 +94,72 @@ <translation>Aizvērt</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_mk.ts b/src-qt5/core/lumina-info/i18n/lumina-info_mk.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_mk.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_mk.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_mn.ts b/src-qt5/core/lumina-info/i18n/lumina-info_mn.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_mn.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_mn.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ms.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ms.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ms.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ms.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_mt.ts b/src-qt5/core/lumina-info/i18n/lumina-info_mt.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_mt.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_mt.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_nb.ts b/src-qt5/core/lumina-info/i18n/lumina-info_nb.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_nb.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_nb.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_nl.ts b/src-qt5/core/lumina-info/i18n/lumina-info_nl.ts index 2c6e3180..d923c00b 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_nl.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_nl.ts @@ -94,4 +94,72 @@ <translation>Sluiten</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_pa.ts b/src-qt5/core/lumina-info/i18n/lumina-info_pa.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_pa.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_pa.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts b/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts index 03133ac7..694c09db 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts @@ -94,4 +94,72 @@ <translation>Zamknij</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_pt.ts b/src-qt5/core/lumina-info/i18n/lumina-info_pt.ts index 36ef1867..40129431 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_pt.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_pt.ts @@ -94,4 +94,72 @@ <translation>Fechar</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_pt_BR.ts b/src-qt5/core/lumina-info/i18n/lumina-info_pt_BR.ts index 03e47e81..48e46625 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_pt_BR.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_pt_BR.ts @@ -94,4 +94,72 @@ <translation>Fechar</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ro.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ro.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ro.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ro.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ru.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ru.ts index f86f8764..56797b99 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ru.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ru.ts @@ -94,4 +94,72 @@ <translation>Закрыть</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_sk.ts b/src-qt5/core/lumina-info/i18n/lumina-info_sk.ts index d58a7bf0..dff8e2ea 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_sk.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_sk.ts @@ -94,4 +94,72 @@ <translation>Zatvoriť</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_sl.ts b/src-qt5/core/lumina-info/i18n/lumina-info_sl.ts index 573d7cd2..8e8e493a 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_sl.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_sl.ts @@ -94,4 +94,72 @@ <translation>Zapri</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_sr.ts b/src-qt5/core/lumina-info/i18n/lumina-info_sr.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_sr.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_sr.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_sv.ts b/src-qt5/core/lumina-info/i18n/lumina-info_sv.ts index 2469b9d3..c7c95716 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_sv.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_sv.ts @@ -94,4 +94,72 @@ <translation>Stäng</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_sw.ts b/src-qt5/core/lumina-info/i18n/lumina-info_sw.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_sw.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_sw.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_ta.ts b/src-qt5/core/lumina-info/i18n/lumina-info_ta.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_ta.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_ta.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_tg.ts b/src-qt5/core/lumina-info/i18n/lumina-info_tg.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_tg.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_tg.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_th.ts b/src-qt5/core/lumina-info/i18n/lumina-info_th.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_th.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_th.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_tr.ts b/src-qt5/core/lumina-info/i18n/lumina-info_tr.ts index 2c7831ae..95117833 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_tr.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_tr.ts @@ -94,4 +94,72 @@ <translation>Kapat</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_uk.ts b/src-qt5/core/lumina-info/i18n/lumina-info_uk.ts index a61ed654..a1141e82 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_uk.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_uk.ts @@ -94,4 +94,72 @@ <translation>Закрити</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_uz.ts b/src-qt5/core/lumina-info/i18n/lumina-info_uz.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_uz.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_uz.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_vi.ts b/src-qt5/core/lumina-info/i18n/lumina-info_vi.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_vi.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_vi.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_zh_CN.ts b/src-qt5/core/lumina-info/i18n/lumina-info_zh_CN.ts index 289c18db..018cefe4 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_zh_CN.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_zh_CN.ts @@ -94,4 +94,72 @@ <translation>关闭</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_zh_HK.ts b/src-qt5/core/lumina-info/i18n/lumina-info_zh_HK.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_zh_HK.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_zh_HK.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_zh_TW.ts b/src-qt5/core/lumina-info/i18n/lumina-info_zh_TW.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_zh_TW.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_zh_TW.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_zu.ts b/src-qt5/core/lumina-info/i18n/lumina-info_zu.ts index 70577011..72c575d3 100644 --- a/src-qt5/core/lumina-info/i18n/lumina-info_zu.ts +++ b/src-qt5/core/lumina-info/i18n/lumina-info_zu.ts @@ -94,4 +94,72 @@ <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-info/lumina-info.1 b/src-qt5/core/lumina-info/lumina-info.1 new file mode 100644 index 00000000..b2dec23a --- /dev/null +++ b/src-qt5/core/lumina-info/lumina-info.1 @@ -0,0 +1,26 @@ +.Dd November 7, 2017 +.Dt LUMINA-INFO 1 +.Os 1.3.3 + +.Sh NAME +.Nm lumina-info +.Nd view information about the current desktop. + +.Sh SYNOPSIS +.Nm + +.Sh DESCRIPTION +.Nm +opens a graphical interface about: general information, license +information, and acknowledgements. +General information includes: desktop version, OS build, and an option +to view the Qt version. + +.Sh FILES +.Bl -tag -width indent +.It Pa /usr/local/bin/lumina-info +.El + +.Sh AUTHORS +.An Aaron St. John and Tim Moore +.Aq aaron@ixsystems.com diff --git a/src-qt5/core/lumina-info/lumina-info.pro b/src-qt5/core/lumina-info/lumina-info.pro index ec36e9af..dc07c08e 100644 --- a/src-qt5/core/lumina-info/lumina-info.pro +++ b/src-qt5/core/lumina-info/lumina-info.pro @@ -92,12 +92,15 @@ TRANSLATIONS = i18n/lumina-info_af.ts \ i18n/lumina-info_zu.ts dotrans.path=$${L_SHAREDIR}/lumina-desktop/i18n/ -dotrans.extra=cd i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ +dotrans.extra=cd $$PWD/i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ desktop.files=lumina-info.desktop lumina-support.desktop desktop.path=$${L_SHAREDIR}/applications/ -INSTALLS += target desktop +manpage.path=$${L_MANDIR}/man1/ +manpage.extra="$${MAN_ZIP} $$PWD/lumina-info.1 > $(INSTALL_ROOT)$${L_MANDIR}/man1/lumina-info.1.gz" + +INSTALLS += target desktop manpage WITH_I18N{ INSTALLS += dotrans diff --git a/src-qt5/core/lumina-info/lumina-support.desktop b/src-qt5/core/lumina-info/lumina-support.desktop index 36ab28fd..127eb01b 100644 --- a/src-qt5/core/lumina-info/lumina-support.desktop +++ b/src-qt5/core/lumina-info/lumina-support.desktop @@ -1,10 +1,9 @@ [Desktop Entry] Type=Link -URL=https://webchat.freenode.net/?channels=%23lumina-desktop +URL=https://gitter.im/trueos/lumina Icon=Lumina-DE Categories=System; OnlyShowIn=Lumina; Name=Community Support GenericName=Get Desktop Help -Comment=Ask for desktop support on the community IRC channel - +Comment=Ask for desktop support on the community chat channel diff --git a/src-qt5/core/lumina-info/main.cpp b/src-qt5/core/lumina-info/main.cpp index e30911c5..f4cd921a 100644 --- a/src-qt5/core/lumina-info/main.cpp +++ b/src-qt5/core/lumina-info/main.cpp @@ -17,8 +17,6 @@ int main(int argc, char ** argv) if( !a.isPrimaryProcess()){ return 0; } //qDebug() << "Set Application Name"; a.setApplicationName("About Lumina"); - //qDebug() << "Load Theme Engine"; - LuminaThemeEngine themes(&a); //qDebug() << "Start the UI"; //Start the UI MainUI w; diff --git a/src-qt5/core/lumina-open/LFileDialog.cpp b/src-qt5/core/lumina-open/LFileDialog.cpp index ce7c6a6f..dbdb6362 100644 --- a/src-qt5/core/lumina-open/LFileDialog.cpp +++ b/src-qt5/core/lumina-open/LFileDialog.cpp @@ -54,9 +54,9 @@ QString LFileDialog::getDefaultApp(QString extension){ void LFileDialog::setDefaultApp(QString extension, QString appFile){ if(!extension.contains("/")){ extension = LXDG::findAppMimeForFile(appFile); } - //mime type default: set on the system itself - if(appFile.endsWith(".desktop")){ appFile = appFile.section("/",-1); } //only need the relative path - LXDG::setDefaultAppForMime(extension, appFile); + //mime type default: set on the system itself + //if(appFile.endsWith(".desktop")){ appFile = appFile.section("/",-1); } //only need the relative path + LXDG::setDefaultAppForMime(extension, appFile); } // ----------- diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_af.ts b/src-qt5/core/lumina-open/i18n/lumina-open_af.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_af.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_af.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ar.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ar.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ar.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ar.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_az.ts b/src-qt5/core/lumina-open/i18n/lumina-open_az.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_az.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_az.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_bg.ts b/src-qt5/core/lumina-open/i18n/lumina-open_bg.ts index 42817c9f..e2f19d0a 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_bg.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_bg.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Грешка във файла</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Грешка в програмата</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Възникна грешка в програмата и трябваше да бъде затворена:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Мултимедия</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Разработка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Образование</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Изображения</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Мрежа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Офис</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Наука</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Настройки</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Система</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_bn.ts b/src-qt5/core/lumina-open/i18n/lumina-open_bn.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_bn.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_bn.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_bs.ts b/src-qt5/core/lumina-open/i18n/lumina-open_bs.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_bs.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_bs.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ca.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ca.ts index a5eaf608..ff2c550b 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ca.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ca.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Error del fitxer</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Falta un binari</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>No s'ha pogut trobar "%1". Si us plau, assegureu-vos que estigui instal·lat.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Error de l'aplicació</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>L'aplicació següent ha tingut un error i s'ha hagut de tancar:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimèdia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desenvolupament</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educació</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gràfics</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Xarxa</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Oficina</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Ciència</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Configuració</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> 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 3123825f..fd7ed2cf 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_cs.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_cs.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Chyba souboru</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Chybí spustitelný soubor</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Nepodařilo se najít „%1“. Nejprve zajistěte, aby bylo nainstalované.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Chyba aplikace</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>V následující aplikaci došlo k chyba a bude proto ukončena:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Vývoj</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Výuka</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Síť</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kancelář</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Věda</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Nastavení</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Systém</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_cy.ts b/src-qt5/core/lumina-open/i18n/lumina-open_cy.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_cy.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_cy.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_da.ts b/src-qt5/core/lumina-open/i18n/lumina-open_da.ts index 695e6f57..770e717e 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_da.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_da.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Filfejl</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Binær mangler</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Kunne ikke finde "%1". Sørg for at programmet er installeret først.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Programfejl</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Det følgende program oplevede en fejl og blev nødt til at afslutte:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedie</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Udvikling</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Uddannelse</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Netværk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kontor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Videnskab</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Indstillinger</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_de.ts b/src-qt5/core/lumina-open/i18n/lumina-open_de.ts index 27a43260..f1b09042 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_de.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_de.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Dateifehler</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Binärdatei fehlt</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Konnte "%1" nicht finden. Bitte stellen Sie zuerst sicher, dass es installiert ist.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Anwendungsfehler</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Bei folgender Anwendung ist ein Fehler aufgetreten und sie wurde beendet:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Entwicklung</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Ausbildung</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Netzwerk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Büro</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Wissenschaft</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Einstellungen</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_el.ts b/src-qt5/core/lumina-open/i18n/lumina-open_el.ts index 7ce33bc2..1cf5cbb8 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_el.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_el.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Σφάλμα Αρχείου</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Το Εκτελέσιμο λείπει</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Αδυναμία έυρεσης "%1". Παρακαλώ βεβαιωθείτε ότι έχει ήδη εγκατασταθεί.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Πρόβλημα Εφαρμογής</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Η παρακάτω εφαρμογή αντιμετώπισε ένα σφάλμα και πρέπει να τερματιστεί:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Πολυμέσα</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Ανάπτυξη</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Εκπαίδευση</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Γραφικά</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Δίκτυο</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Σουΐτα Γραφείου</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Επιστήμη</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Ρυθμίσεις</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Σύστημα</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_en_AU.ts b/src-qt5/core/lumina-open/i18n/lumina-open_en_AU.ts index 535b6209..dbca5225 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_en_AU.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_en_AU.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>File Error</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Binary Missing</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Could not find "%1". Please ensure it is installed first.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Application Error</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>The following application experienced an error and needed to close:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Development</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Education</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Graphics</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Network</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Office</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Science</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Settings</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_en_GB.ts b/src-qt5/core/lumina-open/i18n/lumina-open_en_GB.ts index 91d418fa..afa92889 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_en_GB.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_en_GB.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>File Error</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Binary Missing</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Could not find "%1". Please ensure it is installed first.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Application Error</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>The following application experienced an error and needed to close:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Development</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Education</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Graphics</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Network</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Office</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Science</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Settings</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_en_ZA.ts b/src-qt5/core/lumina-open/i18n/lumina-open_en_ZA.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_en_ZA.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_en_ZA.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_es.ts b/src-qt5/core/lumina-open/i18n/lumina-open_es.ts index 91f106aa..abfe4962 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_es.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_es.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Error de Archivo</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Error en la Aplicación</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>La siguiente aplicación presentó un error y necesita cerrarse:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desarrollo</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educación</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gráficos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Red</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Oficina</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Ciencia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Configuración</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_et.ts b/src-qt5/core/lumina-open/i18n/lumina-open_et.ts index 3c8fee7e..fa069632 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_et.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_et.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Faili viga</translation> </message> @@ -166,7 +166,7 @@ <message> <location filename="../main.cpp" line="267"/> <source>Application entry is invalid: %1</source> - <translation type="unfinished"></translation> + <translation>Rakenduse %1 kirje on vigane.</translation> </message> <message> <location filename="../main.cpp" line="278"/> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> - <translation type="unfinished"></translation> + <translation>Ei leidnud "%1" . Palun veendu et see on paigaldatud.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Programmi viga</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>See rakendus sulgus, kuna esines viga:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation>Multimeedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation>Arendus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation>Haridus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation>Mängud</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation>Graafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation>Võrk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation>Kontor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation>Teadus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation>Sätted</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation>Süsteem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation>Tööriistad</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation>Wine</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation>Sorteerimata</translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_eu.ts b/src-qt5/core/lumina-open/i18n/lumina-open_eu.ts index de44e1fb..6a8f257b 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_eu.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_eu.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Fitxategiko akatsa</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Aplikazioko akatsa</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Hurrengo aplikazioak akats bat izan du eta itxi behar da:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Garapena</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Hezkuntza</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafikoak</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Sarea</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Bulegoa</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Zientzia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Ezarpenak</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_fa.ts b/src-qt5/core/lumina-open/i18n/lumina-open_fa.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_fa.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_fa.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_fi.ts b/src-qt5/core/lumina-open/i18n/lumina-open_fi.ts index acfe5015..403651fe 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_fi.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_fi.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Tiedostovirhe</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Ohjelmatiedosto puuttuu</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Sovellusvirhe</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Seuraavat sovellukset kohtasivat virheen ja ne täytyy sulkea:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Ohjelmakehitys</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Kasvatus</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafiikka</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Verkko</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Toimisto</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Tiede</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Asetukset</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Järjestelmä</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_fr.ts b/src-qt5/core/lumina-open/i18n/lumina-open_fr.ts index 9230eab7..567fcf63 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_fr.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_fr.ts @@ -26,7 +26,7 @@ <message> <location filename="../LFileDialog.ui" line="131"/> <source>Binary Location</source> - <translation>Emplacement de l'Exécutable</translation> + <translation>Emplacement de l'Exécutable</translation> </message> <message> <location filename="../LFileDialog.ui" line="138"/> @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Erreur de fichier</translation> </message> @@ -156,7 +156,7 @@ <location filename="../main.cpp" line="205"/> <location filename="../main.cpp" line="214"/> <source>Screen Brightness %1%</source> - <translation>Luminosité de l'Écran %1%</translation> + <translation>Luminosité de l'Écran %1%</translation> </message> <message> <location filename="../main.cpp" line="246"/> @@ -176,7 +176,7 @@ <message> <location filename="../main.cpp" line="291"/> <source>URL shortcut is missing the URL: %1</source> - <translation>L'adresse est introuvable dans le raccourci URL : %1</translation> + <translation>L'adresse est introuvable dans le raccourci URL : %1</translation> </message> <message> <location filename="../main.cpp" line="302"/> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Exécutable Manquant</translation> + <source>Could not find "%1". Please ensure it is installed first.</source> + <translation>"%1" non trouvé. Vérifiez qu'il soit bien installé.</translation> </message> <message> - <location filename="../main.cpp" line="370"/> - <source>Could not find "%1". Please ensure it is installed first.</source> - <translation>"%1" non trouvé. Vérifiez qu'il soit bien installé.</translation> - </message> - <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Erreur du Programme</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Le programme suivant a provoqué une erreur et a dû être fermé :</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Développement</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Éducation</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Graphiques</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Réseau</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Bureau</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Science</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Paramètres</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Système</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_fr_CA.ts b/src-qt5/core/lumina-open/i18n/lumina-open_fr_CA.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_fr_CA.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_fr_CA.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_gl.ts b/src-qt5/core/lumina-open/i18n/lumina-open_gl.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_gl.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_gl.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_he.ts b/src-qt5/core/lumina-open/i18n/lumina-open_he.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_he.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_he.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_hi.ts b/src-qt5/core/lumina-open/i18n/lumina-open_hi.ts index eb7caa4a..1b33caf3 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_hi.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_hi.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>फाइल त्रुटि</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>एप्लीकेशन त्रुटि</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>इस एप्लीकेशन में त्रुटि है और इसे बंद करने की आवश्यकता है:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">मल्टीमीडिया</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">विकास</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">पढाई</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">चित्र</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">नेटवर्क</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">कार्यालय</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">विज्ञान</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">सेटिंग्स</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">उपकरण</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_hr.ts b/src-qt5/core/lumina-open/i18n/lumina-open_hr.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_hr.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_hr.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_hu.ts b/src-qt5/core/lumina-open/i18n/lumina-open_hu.ts index 33763efe..2356b492 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_hu.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_hu.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Fájl hiba</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Hiányos binary</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Nem találom: "%1". Először győződj meg hogy telepítve van.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Alkalmazás hiba</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Az alkalmazás hibát észlelt, és bezárandó:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Fejlesztés</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Oktatás</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Hálózat</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Iroda</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Tudomány</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Beállítások</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Rendszer</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_id.ts b/src-qt5/core/lumina-open/i18n/lumina-open_id.ts index dd4cea0e..ee46566b 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_id.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_id.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>berkas error</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>aplikasi error</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished">Aplikasi berikut mengalami kesalahan dan diperlukan untuk menutup:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Pengembangan</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Edukasi</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafis</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Jaringan</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kantor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Sains</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Pengaturan</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_is.ts b/src-qt5/core/lumina-open/i18n/lumina-open_is.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_is.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_is.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_it.ts b/src-qt5/core/lumina-open/i18n/lumina-open_it.ts index 0e3ea28c..3189ccfa 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_it.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_it.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Errore File</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Manca codice Binario</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Impossibile trovare "% 1". Assicurarsi che sia installato per primo.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Errore Applicazione</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>La seguente applicazione ha avuto un errore e deve chiudere:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimediale</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Sviluppo</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educazione</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafica</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Rete</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Ufficio</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Scienza</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Impostazioni</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ja.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ja.ts index e42d4add..9eb3e794 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ja.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ja.ts @@ -143,7 +143,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>ファイルエラー</translation> </message> @@ -191,23 +191,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>バイナリーがありません</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>"%1" が見つかりませんでした。まずそれがインストールされている事を確認してください。</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>アプリケーションエラー</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>このアプリケーションでエラーが発生したため、閉じる必要があります:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">マルチメディア</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">開発</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">教育</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">グラフィックス</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">ネットワーク</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">オフィス</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">科学</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">設定</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">システム</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ka.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ka.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ka.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ka.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ko.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ko.ts index c1e7f594..bcee9b12 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ko.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ko.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>파일 오류</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>프로그램 오류</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>다음의 프로그램에 오류가 발생하여 종료하였습니다:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">멀티미디어</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">개발</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">교육</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">그래픽</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">네트워크</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">업무</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">과학</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">설정</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">시스템</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts b/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts index 425a59d9..e348dfba 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Failo klaida</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Trūksta dvejetainės</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Nepavyko rasti "%1". Iš pradžių, įsitikinkite ar ji įdiegta.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Programos klaida</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Ši programa susidūrė su klaida ir turėjo būti užverta:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedija</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Programavimas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Švietimas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Tinklas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Raštinė</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Mokslas</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Nustatymai</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_lv.ts b/src-qt5/core/lumina-open/i18n/lumina-open_lv.ts index 1e0e91c5..8a818aa0 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_lv.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_lv.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Faila kļūda</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Lietotnes kļūda</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Šai lietotnei radās kļūda un bija nepieciešams to aizvērt:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multivide</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Izstrāde</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Izglītība</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Tīkls</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Birojs</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Zinātne</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Iestatījumi</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistēma</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_mk.ts b/src-qt5/core/lumina-open/i18n/lumina-open_mk.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_mk.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_mk.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_mn.ts b/src-qt5/core/lumina-open/i18n/lumina-open_mn.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_mn.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_mn.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ms.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ms.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ms.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ms.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_mt.ts b/src-qt5/core/lumina-open/i18n/lumina-open_mt.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_mt.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_mt.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_nb.ts b/src-qt5/core/lumina-open/i18n/lumina-open_nb.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_nb.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_nb.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_nl.ts b/src-qt5/core/lumina-open/i18n/lumina-open_nl.ts index 140decc3..61b2a7c8 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_nl.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_nl.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Bestandsfout</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Het uitvoerbare bestand ontbreekt</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>"%1" kan niet worden gevonden. Zorg ervoor dat het geïnstalleerd is.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Applicatiefout</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Er is een fout opgetreden in de volgende applicatie en moet daarom worden gesloten:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Ontwikkeling</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educatie</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafisch</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Netwerk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kantoor</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Wetenschap</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Instellingen</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Systeem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_pa.ts b/src-qt5/core/lumina-open/i18n/lumina-open_pa.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_pa.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_pa.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> 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 6b74e22b..81dc5121 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_pl.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_pl.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Błąd pliku</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Brak pliku binarnego</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <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="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Błąd aplikacji</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Aplikacja napotkała błąd i musi zostać zamknięta:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Narzędzia programistów</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Edukacja</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Sieć</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Biuro</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Nauka</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Ustawienia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_pt.ts b/src-qt5/core/lumina-open/i18n/lumina-open_pt.ts index b73c69e3..bf7c5214 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_pt.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_pt.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Erro no Arquivo</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Erro no Aplicativo</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>O seguinte aplicativo encontrou um erro e teve que ser fechado:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desenvolvimento</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educação</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gráficos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Rede</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Escritório</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Ciência</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Definições</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_pt_BR.ts b/src-qt5/core/lumina-open/i18n/lumina-open_pt_BR.ts index 5b1f717f..01c4ffa9 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_pt_BR.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_pt_BR.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Erro de arquivo</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Binário Faltando</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>"%1" não pode ser localizado. Por favor, verifique se está instalado.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Erro do aplicativo</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>O seguinte aplicativo encontrou um erro e precisa ser fechado:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimídia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Desenvolvimento</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Educação</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Gráficos</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Redes</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Escritório</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Ciências</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Configurações</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistema</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ro.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ro.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ro.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ro.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ru.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ru.ts index 53107836..3762faca 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ru.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ru.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Ошибка Файла</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Приложение отсутствует</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Не найден "%1". Пожалуйста, убедитесь, что он установлен в первую очередь.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Ошибка Приложения</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Следующее приложение вызвало ошибку и должно быть закрыто:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Мультимедиа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Разработка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Образование</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Графика</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Сети</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Офис</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Наука</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Настройки</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Система</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_sk.ts b/src-qt5/core/lumina-open/i18n/lumina-open_sk.ts index 895c2890..153fbcf6 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_sk.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_sk.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Chyba súboru</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Chyba aplikácie </translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Nasledujúca aplikácia hlási chybu a musí byť ukončená: </translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimédiá</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Vývoj</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Vzdelávanie</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafika</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Sieť</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kancelária</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Veda</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Nastavenie</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Systém</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_sl.ts b/src-qt5/core/lumina-open/i18n/lumina-open_sl.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_sl.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_sl.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_sr.ts b/src-qt5/core/lumina-open/i18n/lumina-open_sr.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_sr.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_sr.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_sv.ts b/src-qt5/core/lumina-open/i18n/lumina-open_sv.ts index be520af8..7745b210 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_sv.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_sv.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Filfel</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>Binär saknas</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>Kunde inte hitta "%1". Se till att du har detta programmet installerat först.</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Programfel</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Följande program upplevde ett fel och behövde stängas:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedia</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Utveckling</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Utbildning</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Nätverk</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Kontorsprogram</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Vetenskap</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Inställningar</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">System</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_sw.ts b/src-qt5/core/lumina-open/i18n/lumina-open_sw.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_sw.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_sw.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_ta.ts b/src-qt5/core/lumina-open/i18n/lumina-open_ta.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_ta.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_ta.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_tg.ts b/src-qt5/core/lumina-open/i18n/lumina-open_tg.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_tg.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_tg.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_th.ts b/src-qt5/core/lumina-open/i18n/lumina-open_th.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_th.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_th.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_tr.ts b/src-qt5/core/lumina-open/i18n/lumina-open_tr.ts index ff68fb01..06f75ad1 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_tr.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_tr.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Dosya Hatası</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Uygulama Hatası</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>İzleyen uygulama bir hatayla karşılaştı ve kapatılması gerekti:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Multimedya</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Geliştirme</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Eğitim</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Grafik</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Ağ</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Ofis</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Bilim</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Ayarlar</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Sistem</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_uk.ts b/src-qt5/core/lumina-open/i18n/lumina-open_uk.ts index bfd6a8a5..8d8a2e09 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_uk.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_uk.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>Помилка файлу</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>Помилка програми</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>Наступна програма викликало помилку и має бути закрита:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">Мультимедіа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">Розробка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">Освіта</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">Графіка</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">Мережа</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">Офіс</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">Наука</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">Налаштування</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">Система</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_uz.ts b/src-qt5/core/lumina-open/i18n/lumina-open_uz.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_uz.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_uz.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_vi.ts b/src-qt5/core/lumina-open/i18n/lumina-open_vi.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_vi.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_vi.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_zh_CN.ts b/src-qt5/core/lumina-open/i18n/lumina-open_zh_CN.ts index 981affe2..ffa75bdd 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_zh_CN.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_zh_CN.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation>文件错误</translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation>二进制文件丢失</translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation>无法找到 “%1”。请确认它已被安装。</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation>应用程序出错</translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation>下面的应用程序遇到错误,需要关闭:</translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished">多媒体</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished">开发</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished">教育</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished">图像</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished">网络</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished">办公</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished">科学</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished">设置</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished">系统</translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_zh_HK.ts b/src-qt5/core/lumina-open/i18n/lumina-open_zh_HK.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_zh_HK.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_zh_HK.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_zh_TW.ts b/src-qt5/core/lumina-open/i18n/lumina-open_zh_TW.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_zh_TW.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_zh_TW.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_zu.ts b/src-qt5/core/lumina-open/i18n/lumina-open_zu.ts index cfc1b766..607f911f 100644 --- a/src-qt5/core/lumina-open/i18n/lumina-open_zu.ts +++ b/src-qt5/core/lumina-open/i18n/lumina-open_zu.ts @@ -142,7 +142,7 @@ <context> <name>QObject</name> <message> - <location filename="../main.cpp" line="53"/> + <location filename="../main.cpp" line="54"/> <source>File Error</source> <translation type="unfinished"></translation> </message> @@ -190,23 +190,86 @@ </message> <message> <location filename="../main.cpp" line="370"/> - <source>Binary Missing</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../main.cpp" line="370"/> <source>Could not find "%1". Please ensure it is installed first.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>Application Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../main.cpp" line="421"/> + <location filename="../main.cpp" line="419"/> <source>The following application experienced an error and needed to close:</source> <translation type="unfinished"></translation> </message> </context> +<context> + <name>XDGDesktopList</name> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="608"/> + <source>Multimedia</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="609"/> + <source>Development</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="610"/> + <source>Education</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="611"/> + <source>Games</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="612"/> + <source>Graphics</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="613"/> + <source>Network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="614"/> + <source>Office</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="615"/> + <source>Science</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="616"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="617"/> + <source>System</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="618"/> + <source>Utility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="619"/> + <source>Wine</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../libLumina/LuminaXDG.cpp" line="620"/> + <source>Unsorted</source> + <translation type="unfinished"></translation> + </message> +</context> </TS> diff --git a/src-qt5/core/lumina-open/lumina-open.1 b/src-qt5/core/lumina-open/lumina-open.1 index e8c555ee..582ad2ee 100644 --- a/src-qt5/core/lumina-open/lumina-open.1 +++ b/src-qt5/core/lumina-open/lumina-open.1 @@ -1,96 +1,87 @@ -.Dd March 29, 2017 +.Dd November 7, 2017 .Dt LUMINA-OPEN 1 -.Os Lumina Desktop Environment -.\"------------------------------------------------------------------- +.Os 1.3.3 + .Sh NAME .Nm lumina-open -.Nd Application launcher for the Lumina Desktop Environment. -.\"------------------------------------------------------------------- +.Nd a graphical front-end to xdg-open. +Opens files or links with the proper application. + .Sh SYNOPSIS .Nm .Pp .Nm -.Cm [-select | -action <ActionID>] <file path or URL> +.Op Fl select | action No <ActionID> +.Op Ar FILE_PATH | URL .Pp .Nm -.Cm [-volumeup | -volumedown | -brightnessup | -brightnessdown | --autostart-apps | -terminal] -.\"------------------------------------------------------------------- +.Op Fl volumeup | volumedown | brightnessup | brightnessdown | \ + autostart-apps | terminal + .Sh DESCRIPTION Given a file with an absolute pathway or URL, the .Nm -utility finds the appropriate application which which to open the -file. If the file is a *.desktop application shortcut, +utility finds the appropriate application to open the file. +If the file is a *.desktop application shortcut, .Nm -starts the application automatically. Using the appropriate flags -allows +starts the application automatically. .Nm -to perform a few specific system operations. Here are the commands, -flags, and descriptions of their functionality: +can also perform specific system operations. +Here are all flags and descriptions: .Pp .Bl -tag -width indent .It Ic lumina-open Displays the description and usage for lumina-open. -.It Ic lumina-open [-select | -action <ActionID>] <file path or URL> -Opens the file using the appropriate application. -.It Fl select -Optional flag. Bypasses any default application settings to display -the application selector window. -.It Fl action\ <ActionID> -Optional flag. Runs the specified ActionID that is listed in -a .desktop registration file rather than the main command. -.It Ic lumina-open [-volumeup | -volumedown | -brightnessup | --brightnessdown | -autostart-apps | -terminal] -.Pp -This command is used to perform system operations, depending on the -specific flags. -.It Fl volumeup +.It Nm Fl select +Bypasses any default application settings to display the application +selector window. +.It Nm Fl action\ \fIActionID\fR +Runs the specified ActionID that is listed in a .desktop registration +file rather than the main command. +.It Nm Fl volumeup Increase system audio volume by 5%. -.It Fl volumedown +.It Nm Fl volumedown Decrease system audio volume by 5%. -.It Fl brightnessup +.It Nm Fl brightnessup Increase screen brightness by 5%. -.It Fl brightnessdown +.It Nm Fl brightnessdown Decrease screen brightness by 5%. -.It Fl autostart-apps -Launches all applications registered with the XDG autostart -application. Typically run by the desktop and not manually launched. -.It Fl terminal -Open the user's default terminal. +.It Nm Fl autostart-apps +Launches all applications registered with the XDG autostart application. +Typically run by the desktop instead of manually launched. +.It Nm Fl terminal +Open the default terminal. .El -.\"------------------------------------------------------------------- + .Sh EXAMPLES .Bl -tag -width indent -.It lumina-open -brightnessup -Increase screen brightness. -.Pp .It lumina-open sample.txt .Nm -finds the default program for .txt files and opens sample.txt with +finds the default program for .txt files and opens sample.txt with the appropriate application. .It lumina-open ~/Documents .Nm -launches the default file manager, pointed to the current user's -Documents directory. +launches the default file manager pointed to the current Documents +directory. .It lumina-open http://lumina-desktop.org Launches the default web browser pointed to the Lumina website. .El -.\"------------------------------------------------------------------- + .Sh FILES .Bl -tag -width indent -.It Pa ${XDG_CONFIG_HOME}/mimeapps.list +.It Pa %{XDG_CONFIG_HOME}/mimeapps.list Default file that saves mimetype to application associations. -.It Pa ${XDG_CONFIG_HOME}/${XDG_CURRENT_DESKTOP}-mimeapps.list -Default file that saves mimetype to application associations for the -current desktop session. This file is used before the generic -associations file. +.It Pa %{XDG_CONFIG_HOME}/${XDG_CURRENT_DESKTOP}-mimeapps.list +Default file that saves mimetype to application associations for the +current desktop session. +This file is used before the generic associations file. .El -.\"------------------------------------------------------------------- + .Sh SEE ALSO .Xr XDG-OPEN(1) -.\"------------------------------------------------------------------- + .Sh REFERENCES -For .desktop entry specifications and formatting, refer to these +For .desktop entry specifications and formatting, refer to these websites: .Bl -tag -width indent .Pp @@ -104,11 +95,10 @@ Details how default applications are registered. .Pp .Cm https://specifications.freedesktop.org/autostart-spec/latest/ .Pp -Used in the -autostart-apps action. Determines which applications -are automatically started. -.Pp +Used in the -autostart-apps action. +Determines which applications are automatically started. .El -.\"------------------------------------------------------------------- -.Sh AUTHOR -.An Tim Moore + +.Sh AUTHORS +.An Tim Moore and Aaron St. John .Aq timmoore88@gmail.com diff --git a/src-qt5/core/lumina-open/lumina-open.pro b/src-qt5/core/lumina-open/lumina-open.pro index b31c7a0e..3bc7e9bf 100644 --- a/src-qt5/core/lumina-open/lumina-open.pro +++ b/src-qt5/core/lumina-open/lumina-open.pro @@ -87,10 +87,10 @@ TRANSLATIONS = i18n/lumina-open_af.ts \ i18n/lumina-open_zu.ts dotrans.path=$${L_SHAREDIR}/lumina-desktop/i18n/ -dotrans.extra=cd i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ +dotrans.extra=cd $$PWD/i18n && $${LRELEASE} -nounfinished *.ts && cp *.qm $(INSTALL_ROOT)$${L_SHAREDIR}/lumina-desktop/i18n/ manpage.path=$${L_MANDIR}/man1/ -manpage.extra="$${MAN_ZIP} lumina-open.1 > $(INSTALL_ROOT)$${L_MANDIR}/man1/lumina-open.1.gz" +manpage.extra="$${MAN_ZIP} $$PWD/lumina-open.1 > $(INSTALL_ROOT)$${L_MANDIR}/man1/lumina-open.1.gz" INSTALLS += target manpage diff --git a/src-qt5/core/lumina-open/main.cpp b/src-qt5/core/lumina-open/main.cpp index d421b5b6..2b9e9184 100644 --- a/src-qt5/core/lumina-open/main.cpp +++ b/src-qt5/core/lumina-open/main.cpp @@ -29,6 +29,8 @@ #include <LuminaOS.h> #include <LuminaThemes.h> +#define DEBUG 0 + void printUsageInfo(){ qDebug() << "lumina-open: Application launcher for the Lumina Desktop Environment"; qDebug() << "Description: Given a file (with absolute path) or URL, this utility will try to find the appropriate application with which to open the file. If the file is a *.desktop application shortcut, it will just start the application appropriately. It can also perform a few specific system operations if given special flags."; @@ -48,7 +50,6 @@ void ShowErrorDialog(int argc, char **argv, QString message){ //Setup the application QApplication App(argc, argv); App.setAttribute(Qt::AA_UseHighDpiPixmaps); - LuminaThemeEngine theme(&App); LUtils::LoadTranslation(&App,"lumina-open"); QMessageBox dlg(QMessageBox::Critical, QObject::tr("File Error"), message ); dlg.exec(); @@ -68,7 +69,7 @@ void showOSD(int argc, char **argv, QString message){ splash.setAlignment(Qt::AlignCenter); - qDebug() << "Display OSD"; + if(DEBUG) qDebug() << "Display OSD"; splash.setText(message); //Make sure it is centered on the current screen QPoint center = App.desktop()->screenGeometry(QCursor::pos()).center(); @@ -88,9 +89,9 @@ void LaunchAutoStart(){ QString cmd = xdgapps[i]->getDesktopExec(); if(cmd.contains("%")){cmd = cmd.remove("%U").remove("%u").remove("%F").remove("%f").remove("%i").remove("%c").remove("%k").simplified(); } //Now run the command - if(!cmd.isEmpty()){ - qDebug() << " - Auto-Starting File:" << xdgapps[i]->filePath; - QProcess::startDetached(cmd); + if(!cmd.isEmpty()){ + if(DEBUG) qDebug() << " - Auto-Starting File:" << xdgapps[i]->filePath; + QProcess::startDetached(cmd); } } //make sure we clean up all the xdgapps structures @@ -98,130 +99,129 @@ void LaunchAutoStart(){ } QString cmdFromUser(int argc, char **argv, QString inFile, QString extension, QString& path, bool showDLG=false){ - //First check to see if there is a default for this extension - QString defApp; - if(extension=="mimetype"){ + //First check to see if there is a default for this extension + QString defApp; + if(extension=="mimetype"){ //qDebug() << "inFile:" << inFile; QStringList matches = LXDG::findAppMimeForFile(inFile, true).split("::::"); //allow multiple matches - //qDebug() << "Matches:" << matches; + if(DEBUG) qDebug() << "Mimetype Matches:" << matches; for(int i=0; i<matches.length(); i++){ defApp = LXDG::findDefaultAppForMime(matches[i]); - //qDebug() << "MimeType:" << matches[i] << defApp; + //qDebug() << "MimeType:" << matches[i] << defApp; if(!defApp.isEmpty()){ extension = matches[i]; break; } else if(i+1==matches.length()){ extension = matches[0]; } } - }else{ defApp = LFileDialog::getDefaultApp(extension); } - //qDebug() << "extension:" << extension << "defApp:" << defApp; - if( !defApp.isEmpty() && !showDLG ){ - if(defApp.endsWith(".desktop")){ - XDGDesktop DF(defApp); - if(DF.isValid()){ - QString exec = DF.getDesktopExec(); - if(!exec.isEmpty()){ - qDebug() << "[lumina-open] Using default application:" << DF.name << "File:" << inFile; - if(!DF.path.isEmpty()){ path = DF.path; } - return exec; - } + }else{ defApp = LFileDialog::getDefaultApp(extension); } + if(DEBUG) qDebug() << "Mimetype:" << extension << "defApp:" << defApp; + if( !defApp.isEmpty() && !showDLG ){ + if(defApp.endsWith(".desktop")){ + XDGDesktop DF(defApp); + if(DF.isValid()){ + QString exec = DF.getDesktopExec(); + if(!exec.isEmpty()){ + if(DEBUG) qDebug() << "[lumina-open] Using default application:" << DF.name << "File:" << inFile; + if(!DF.path.isEmpty()){ path = DF.path; } + return exec; } - }else{ - //Only binary given - if(LUtils::isValidBinary(defApp)){ - qDebug() << "[lumina-open] Using default application:" << defApp << "File:" << inFile; - return defApp; //just use the binary - } } - //invalid default - reset it and continue on - LFileDialog::setDefaultApp(extension, ""); - } - //Final catch: directory given - no valid default found - use lumina-fm - if(extension=="inode/directory" && !showDLG){ return "lumina-fm"; } - //No default set -- Start up the application selection dialog - LTHEME::LoadCustomEnvSettings(); - QApplication App(argc, argv); - App.setAttribute(Qt::AA_UseHighDpiPixmaps); - LuminaThemeEngine theme(&App); - LUtils::LoadTranslation(&App,"lumina-open"); - - LFileDialog w; - if(extension=="email" || extension.startsWith("x-scheme-handler/")){ - //URL - w.setFileInfo(inFile, extension, false); }else{ - //File - if(inFile.endsWith("/")){ inFile.chop(1); } - w.setFileInfo(inFile.section("/",-1), extension, true); + //Only binary given + if(LUtils::isValidBinary(defApp)){ + if(DEBUG) qDebug() << "[lumina-open] Using default application:" << defApp << "File:" << inFile; + return defApp; //just use the binary } + } + //invalid default - reset it and continue on + LFileDialog::setDefaultApp(extension, ""); + } + //Final catch: directory given - no valid default found - use lumina-fm + if(extension=="inode/directory" && !showDLG){ return "lumina-fm"; } + //No default set -- Start up the application selection dialog + LTHEME::LoadCustomEnvSettings(); + QApplication App(argc, argv); + App.setAttribute(Qt::AA_UseHighDpiPixmaps); + LUtils::LoadTranslation(&App,"lumina-open"); - w.show(); - App.exec(); - if(!w.appSelected){ return ""; } - //Return the run path if appropriate - if(!w.appPath.isEmpty()){ path = w.appPath; } - //Just do the default application registration here for now - // might move it to the runtime phase later after seeing that the app has successfully started - if(w.setDefault){ - if(!w.appFile.isEmpty()){ LFileDialog::setDefaultApp(extension, w.appFile); } - else{ LFileDialog::setDefaultApp(extension, w.appExec); } - }else{ LFileDialog::setDefaultApp(extension, ""); } - //Now return the resulting application command - return w.appExec; + LFileDialog w; + if(extension=="email" || extension.startsWith("x-scheme-handler/")){ + //URL + w.setFileInfo(inFile, extension, false); + }else{ + //File + if(inFile.endsWith("/")){ inFile.chop(1); } + w.setFileInfo(inFile.section("/",-1), extension, true); + } + + w.show(); + App.exec(); + if(!w.appSelected){ return ""; } + //Return the run path if appropriate + if(!w.appPath.isEmpty()){ path = w.appPath; } + //Just do the default application registration here for now + // might move it to the runtime phase later after seeing that the app has successfully started + if(w.setDefault){ + if(!w.appFile.isEmpty()){ LFileDialog::setDefaultApp(extension, w.appFile); } + else{ LFileDialog::setDefaultApp(extension, w.appExec); } + } + //Now return the resulting application command + return w.appExec; } void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& path, bool& watch){ - //Get the input file - //Make sure to load the proper system encoding first - LUtils::LoadTranslation(0,""); //bypass application modification - QString inFile, ActionID; - bool showDLG = false; //flag to bypass any default application setting - if(argc > 1){ - for(int i=1; i<argc; i++){ - if(QString(argv[i]).simplified() == "-select"){ - showDLG = true; - }else if(QString(argv[i]).simplified() == "-testcrash"){ - //Test the crash handler - binary = "internalcrashtest"; watch=true; - return; - }else if(QString(argv[i]).simplified() == "-autostart-apps"){ - LaunchAutoStart(); - return; - }else if(QString(argv[i]).simplified() == "-volumeup"){ - int vol = LOS::audioVolume()+5; //increase 5% - if(vol>100){ vol=100; } - LOS::setAudioVolume(vol); - showOSD(argc,argv, QString(QObject::tr("Audio Volume %1%")).arg(QString::number(vol)) ); - return; - }else if(QString(argv[i]).simplified() == "-volumedown"){ - int vol = LOS::audioVolume()-5; //decrease 5% - if(vol<0){ vol=0; } - LOS::setAudioVolume(vol); - showOSD(argc,argv, QString(QObject::tr("Audio Volume %1%")).arg(QString::number(vol)) ); - return; - }else if(QString(argv[i]).simplified() == "-brightnessup"){ - int bright = LOS::ScreenBrightness(); - if(bright > 0){ //brightness control available - bright = bright+5; //increase 5% - if(bright>100){ bright = 100; } - LOS::setScreenBrightness(bright); - showOSD(argc,argv, QString(QObject::tr("Screen Brightness %1%")).arg(QString::number(bright)) ); - } - return; - }else if(QString(argv[i]).simplified() == "-brightnessdown"){ - int bright = LOS::ScreenBrightness(); - if(bright > 0){ //brightness control available - bright = bright-5; //decrease 5% - if(bright<0){ bright = 0; } - LOS::setScreenBrightness(bright); - showOSD(argc,argv, QString(QObject::tr("Screen Brightness %1%")).arg(QString::number(bright)) ); - } - return; - }else if( (QString(argv[i]).simplified() =="-action") && (argc>(i+1)) ){ - ActionID = QString(argv[i+1]); - i++; //skip the next input - }else if(QString(argv[i]).simplified()=="-terminal"){ - inFile = LXDG::findDefaultAppForMime("application/terminal"); - break; - }else{ - inFile = QString::fromLocal8Bit(argv[i]); +//Get the input file + //Make sure to load the proper system encoding first + LUtils::LoadTranslation(0,""); //bypass application modification +QString inFile, ActionID; +bool showDLG = false; //flag to bypass any default application setting +if(argc > 1){ + for(int i=1; i<argc; i++){ + if(QString(argv[i]).simplified() == "-select"){ + showDLG = true; + }else if(QString(argv[i]).simplified() == "-testcrash"){ +//Test the crash handler +binary = "internalcrashtest"; watch=true; +return; + }else if(QString(argv[i]).simplified() == "-autostart-apps"){ +LaunchAutoStart(); +return; + }else if(QString(argv[i]).simplified() == "-volumeup"){ +int vol = LOS::audioVolume()+5; //increase 5% +if(vol>100){ vol=100; } +LOS::setAudioVolume(vol); +showOSD(argc,argv, QString(QObject::tr("Audio Volume %1%")).arg(QString::number(vol)) ); +return; + }else if(QString(argv[i]).simplified() == "-volumedown"){ +int vol = LOS::audioVolume()-5; //decrease 5% +if(vol<0){ vol=0; } +LOS::setAudioVolume(vol); +showOSD(argc,argv, QString(QObject::tr("Audio Volume %1%")).arg(QString::number(vol)) ); +return; + }else if(QString(argv[i]).simplified() == "-brightnessup"){ +int bright = LOS::ScreenBrightness(); +if(bright > 0){ //brightness control available + bright = bright+5; //increase 5% + if(bright>100){ bright = 100; } + LOS::setScreenBrightness(bright); + showOSD(argc,argv, QString(QObject::tr("Screen Brightness %1%")).arg(QString::number(bright)) ); +} +return; + }else if(QString(argv[i]).simplified() == "-brightnessdown"){ +int bright = LOS::ScreenBrightness(); +if(bright > 0){ //brightness control available + bright = bright-5; //decrease 5% + if(bright<0){ bright = 0; } + LOS::setScreenBrightness(bright); + showOSD(argc,argv, QString(QObject::tr("Screen Brightness %1%")).arg(QString::number(bright)) ); +} +return; + }else if( (QString(argv[i]).simplified() =="-action") && (argc>(i+1)) ){ + ActionID = QString(argv[i+1]); +i++; //skip the next input + }else if(QString(argv[i]).simplified()=="-terminal"){ + inFile = LXDG::findDefaultAppForMime("application/terminal"); + break; + }else{ + inFile = QString::fromLocal8Bit(argv[i]); break; } } @@ -234,7 +234,7 @@ void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& pat bool isFile=false; bool isUrl=false; QString extension; //Quick check/replacement for the URL syntax of a file - if(inFile.startsWith("file://")){ inFile.remove(0,7); } + if(inFile.startsWith("file://")){ inFile = QUrl(inFile).toLocalFile(); } //change from URL to file format for a local file //First make sure this is not a binary name first QString bin = inFile.section(" ",0,0).simplified(); if(LUtils::isValidBinary(bin) && !bin.endsWith(".desktop") && !QFileInfo(inFile).isDir() ){isFile=true; } @@ -268,14 +268,14 @@ void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& pat } switch(DF.type){ case XDGDesktop::APP: - qDebug() << "Found .desktop application:" << ActionID; + if(DEBUG) qDebug() << "Found .desktop application:" << ActionID; if(!DF.exec.isEmpty()){ cmd = DF.getDesktopExec(ActionID); - qDebug() << "Got command:" << cmd; + if(DEBUG) qDebug() << "Got command:" << cmd; if(!DF.path.isEmpty()){ path = DF.path; } - watch = DF.startupNotify || !DF.filePath.contains("/xdg/autostart/"); + watch = DF.startupNotify || !DF.filePath.contains("/xdg/autostart/"); }else{ - ShowErrorDialog( argc, argv, QString(QObject::tr("Application shortcut is missing the launching information (malformed shortcut): %1")).arg(inFile) ); + ShowErrorDialog( argc, argv, QString(QObject::tr("Application shortcut is missing the launching information (malformed shortcut): %1")).arg(inFile) ); } break; case XDGDesktop::LINK: @@ -284,11 +284,11 @@ void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& pat inFile = DF.url; cmd.clear(); extension = inFile.section(":",0,0); - if(extension=="file"){ extension = "http"; } //local file URL - Make sure we use the default browser for a LINK type + if(extension=="file"){ extension = "http"; } //local file URL - Make sure we use the default browser for a LINK type extension.prepend("x-scheme-handler/"); - watch = DF.startupNotify || !DF.filePath.contains("/xdg/autostart/"); + watch = DF.startupNotify || !DF.filePath.contains("/xdg/autostart/"); }else{ - ShowErrorDialog( argc, argv, QString(QObject::tr("URL shortcut is missing the URL: %1")).arg(inFile) ); + ShowErrorDialog( argc, argv, QString(QObject::tr("URL shortcut is missing the URL: %1")).arg(inFile) ); } break; case XDGDesktop::DIR: @@ -297,14 +297,14 @@ void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& pat inFile = DF.path; cmd.clear(); extension = "inode/directory"; - watch = DF.startupNotify || !DF.filePath.contains("/xdg/autostart/"); + watch = DF.startupNotify || !DF.filePath.contains("/xdg/autostart/"); }else{ - ShowErrorDialog( argc, argv, QString(QObject::tr("Directory shortcut is missing the path to the directory: %1")).arg(inFile) ); + ShowErrorDialog( argc, argv, QString(QObject::tr("Directory shortcut is missing the path to the directory: %1")).arg(inFile) ); } break; default: - qDebug() << DF.type << DF.name << DF.icon << DF.exec; - ShowErrorDialog( argc, argv, QString(QObject::tr("Unknown type of shortcut : %1")).arg(inFile) ); + if(DEBUG) qDebug() << DF.type << DF.name << DF.icon << DF.exec; + ShowErrorDialog( argc, argv, QString(QObject::tr("Unknown type of shortcut : %1")).arg(inFile) ); } } if(cmd.isEmpty()){ @@ -317,10 +317,10 @@ void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& pat } } //Now assemble the exec string (replace file/url field codes as necessary) - if(useInputFile){ + if(useInputFile){ args = inFile; //just to keep them distinct internally // NOTE: lumina-open is only designed for a single input file, - // so no need to distinguish between the list codes (uppercase) + // so no need to distinguish between the list codes (uppercase) // and the single-file codes (lowercase) //Special "inFile" format replacements for input codes if( (cmd.contains("%f") || cmd.contains("%F") ) ){ @@ -344,7 +344,7 @@ void getCMD(int argc, char ** argv, QString& binary, QString& args, QString& pat cmd.append(" \""+inFile+"\""); } } - qDebug() << "Found Command:" << cmd << "Extension:" << extension; + if(DEBUG) qDebug() << "Found Command:" << cmd << "Extension:" << extension; //Clean up any leftover "Exec" field codes (should have already been replaced earlier) if(cmd.contains("%")){cmd = cmd.remove("%U").remove("%u").remove("%F").remove("%f").remove("%i").remove("%c").remove("%k").simplified(); } binary = cmd; //pass this string to the calling function @@ -367,10 +367,10 @@ int main(int argc, char **argv){ QString bin = cmd.section(" ",0,0); if( !LUtils::isValidBinary(bin) ){ //invalid binary for some reason - open a dialog to warn the user instead - QMessageBox::warning(0, QObject::tr("Binary Missing"), QString(QObject::tr("Could not find \"%1\". Please ensure it is installed first.")).arg(bin)+"\n\n"+cmd); + ShowErrorDialog(argc,argv, QString(QObject::tr("Could not find \"%1\". Please ensure it is installed first.")).arg(bin)+"\n\n"+cmd); return 1; } - qDebug() << "[lumina-open] Running Cmd:" << cmd; + if(DEBUG) qDebug() << "[lumina-open] Running Cmd:" << cmd; int retcode = 0; //Provide an override file for never watching running processes. if(watch){ watch = !QFile::exists( QString(getenv("XDG_CONFIG_HOME"))+"/lumina-desktop/nowatch" ); } @@ -391,12 +391,12 @@ int main(int argc, char **argv){ }else{ QProcess *p = new QProcess(); p->setProcessEnvironment(QProcessEnvironment::systemEnvironment()); - if(!path.isEmpty() && QFile::exists(path)){ + if(!path.isEmpty() && QFile::exists(path)){ //qDebug() << " - Setting working path:" << path; - p->setWorkingDirectory(path); + p->setWorkingDirectory(path); } p->start(cmd); - + //Now check up on it once every minute until it is finished while(!p->waitForFinished(60000)){ //qDebug() << "[lumina-open] process check:" << p->state(); @@ -410,19 +410,17 @@ int main(int argc, char **argv){ //qDebug() << "[lumina-open] Finished Cmd:" << cmd << retcode << p->exitStatus(); if( QFile::exists("/tmp/.luminastopping") ){ watch = false; } //closing down session - ignore "crashes" (app could have been killed during cleanup) if( (retcode < 0) && watch){ //-1 is used internally for crashed processes - most apps return >=0 - qDebug() << "[lumina-open] Application Error:" << retcode; - //Setup the application - QApplication App(argc, argv); - App.setAttribute(Qt::AA_UseHighDpiPixmaps); - LuminaThemeEngine theme(&App); - LUtils::LoadTranslation(&App,"lumina-open"); + //Setup the application + QApplication App(argc, argv); + App.setAttribute(Qt::AA_UseHighDpiPixmaps); + LUtils::LoadTranslation(&App,"lumina-open"); //App.setApplicationName("LuminaOpen"); - QMessageBox dlg(QMessageBox::Critical, QObject::tr("Application Error"), QObject::tr("The following application experienced an error and needed to close:")+"\n\n"+cmd ); - dlg.setWindowFlags(Qt::Window); - if(!log.isEmpty()){ dlg.setDetailedText(log); } - dlg.exec(); - } + QMessageBox dlg(QMessageBox::Critical, QObject::tr("Application Error"), QObject::tr("The following application experienced an error and needed to close:")+"\n\n"+cmd ); + dlg.setWindowFlags(Qt::Window); + if(!log.isEmpty()){ dlg.setDetailedText(log); } + dlg.exec(); + } } return retcode; } diff --git a/src-qt5/core/lumina-session/lumina-session.pro b/src-qt5/core/lumina-session/lumina-session.pro index 797547db..9d8e8f87 100644 --- a/src-qt5/core/lumina-session/lumina-session.pro +++ b/src-qt5/core/lumina-session/lumina-session.pro @@ -16,6 +16,6 @@ SOURCES += main.cpp \ HEADERS += session.h manpage.path=$${L_MANDIR}/man8/ -manpage.extra="$${MAN_ZIP} start-lumina-desktop.8 > $(INSTALL_ROOT)$${L_MANDIR}/man8/start-lumina-desktop.8.gz" +manpage.extra="$${MAN_ZIP} $$PWD/start-lumina-desktop.8 > $(INSTALL_ROOT)$${L_MANDIR}/man8/start-lumina-desktop.8.gz" INSTALLS += target manpage diff --git a/src-qt5/core/lumina-session/main.cpp b/src-qt5/core/lumina-session/main.cpp index 71244a8b..3b71bdca 100644 --- a/src-qt5/core/lumina-session/main.cpp +++ b/src-qt5/core/lumina-session/main.cpp @@ -55,14 +55,6 @@ int main(int argc, char ** argv) return QProcess::execute("xinit", args); } qDebug() << "Starting the Lumina desktop on current X11 session:" << disp; - //Setup any initialization values - LTHEME::LoadCustomEnvSettings(); - 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... - //Check for any missing user config files - //Check for any stale desktop lock files and clean them up QString cfile = QDir::tempPath()+"/.LSingleApp-%1-%2-%3"; @@ -81,14 +73,22 @@ int main(int argc, char ** argv) } //Configure X11 monitors if needed - if(LUtils::isValidBinary("lumina-xconfig")){ + if(LUtils::isValidBinary("lumina-xconfig")){ qDebug() << " - Resetting monitor configuration to last-used settings"; QProcess::execute("lumina-xconfig --reset-monitors"); } qDebug() << " - Starting the session..."; + //Setup any initialization values + LTHEME::LoadCustomEnvSettings(); + 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... //Startup the session - QCoreApplication a(argc, argv); + QApplication a(argc, argv); + setenv("QP_QPA_PLATFORMTHEME","lthemeengine",1); //make sure this is after the QApplication - not actually using the theme plugin for **this** process LSession sess; + sess.checkFiles(); //Make sure user files are created/installed first sess.start(unified); int retCode = a.exec(); qDebug() << "Finished Closing Down Lumina"; diff --git a/src-qt5/core/lumina-session/session.cpp b/src-qt5/core/lumina-session/session.cpp index 3fdf9e66..743fc396 100644 --- a/src-qt5/core/lumina-session/session.cpp +++ b/src-qt5/core/lumina-session/session.cpp @@ -15,6 +15,7 @@ #include <LUtils.h> #include <LuminaOS.h> +#include <LDesktopUtils.h> void LSession::stopall(){ stopping = true; @@ -38,8 +39,12 @@ void LSession::procFinished(){ stopped++; if(!stopping){ //See if this process is the main desktop binary - if(PROCS[i]->objectName()=="runtime"){ stopall(); } - else if(PROCS[i]->objectName()=="wm" && wmfails<2){ wmfails++; PROCS[i]->start(QIODevice::ReadOnly); wmTimer->start(); } //restart the WM + if(PROCS[i]->objectName()=="runtime"){ + qDebug() << "Got Desktop Process Finished:" << PROCS[i]->exitCode(); + //if(PROCS[i]->exitCode()==787){ PROCS[i]->start(QIODevice::ReadOnly); } //special internal restart code + //else{ + stopall(); //} + }else if(PROCS[i]->objectName()=="wm" && wmfails<2){ wmfails++; PROCS[i]->start(QIODevice::ReadOnly); wmTimer->start(); } //restart the WM //if(PROCS[i]->program().section("/",-1) == "lumina-desktop"){ stopall(); } //start closing down everything //else{ PROCS[i]->start(QIODevice::ReadOnly); } //restart the process //break; @@ -164,3 +169,20 @@ void LSession::start(bool unified){ startProcess("runtime","lumina-desktop-unified"); } } + +void LSession::checkFiles(){ +//internal version conversion examples: + // [1.0.0 -> 1000000], [1.2.3 -> 1002003], [0.6.1 -> 6001] + qDebug() << "[Lumina] Checking User Files"; + QSettings sset("lumina-desktop", "sessionsettings"); + QString OVS = sset.value("DesktopVersion","0").toString(); //Old Version String + qDebug() << " - Old Version:" << OVS; + qDebug() << " - Current Version:" << LDesktopUtils::LuminaDesktopVersion(); + bool changed = LDesktopUtils::checkUserFiles(OVS, LDesktopUtils::LuminaDesktopVersion()); + qDebug() << " - Made Changes:" << changed; + if(changed){ + //Save the current version of the session to the settings file (for next time) + sset.setValue("DesktopVersion", LDesktopUtils::LuminaDesktopVersion()); + } + qDebug() << "Finished with user files check"; +} diff --git a/src-qt5/core/lumina-session/session.h b/src-qt5/core/lumina-session/session.h index 5cf1ccfa..3bbcbb8e 100644 --- a/src-qt5/core/lumina-session/session.h +++ b/src-qt5/core/lumina-session/session.h @@ -83,4 +83,6 @@ public: void start(bool unified = false); + void checkFiles(); + }; diff --git a/src-qt5/core/lumina-theme-engine/desktop_qss/DarkGlass.qss b/src-qt5/core/lumina-theme-engine/desktop_qss/DarkGlass.qss new file mode 100644 index 00000000..2de9fefa --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/desktop_qss/DarkGlass.qss @@ -0,0 +1,91 @@ +QWidget#LuminaBootSplash{ + background: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 palette(dark), stop:1 palette(mid) ); + border-radius: 5px; +} + +LDPlugin#applauncher{ + background-color: transparent; + border: none; +} +LDPlugin#applauncher QToolButton, LDPlugin, LDPlugin#desktopview QListWidget::item{ + background-color: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 rgba(5, 5, 5, 30), stop:1 rgba(2, 2, 2, 70)); + border-width: 3px; + border-style: solid; + border-radius: 5px; + border-top-color: qradialgradient(spread:pad, cx:0.5, cy:1, radius:0.5, fx:0.5, fy:1, stop:0 rgba(0, 0, 0, 30), stop:0.724868 rgba(0, 0, 0, 60), stop:1 rgba(0, 0, 0, 10)); + border-bottom-color: qradialgradient(spread:pad, cx:0.5, cy:0, radius:0.5, fx:0.5, fy:0, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-left-color: qradialgradient(spread:pad, cx:1, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-right-color: qradialgradient(spread:pad, cx:0, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + color: white; +} + +LDPlugin#applauncher QToolButton:hover, LDPlugin#desktopview QListWidget::item:hover{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(highlight), stop: 1 transparent); + color: palette(highlighted-text); + border-width: 3px; + border-style: solid; + border-radius: 5px; + border-top-color: qradialgradient(spread:pad, cx:0.5, cy:1, radius:0.5, fx:0.5, fy:1, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-bottom-color: qradialgradient(spread:pad, cx:0.5, cy:0, radius:0.5, fx:0.5, fy:0, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-left-color: qradialgradient(spread:pad, cx:1, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-right-color: qradialgradient(spread:pad, cx:0, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); +} +QWidget#LuminaPanelColor{ + background: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 rgba(2, 2, 2, 60), stop:1 rgba(0, 0, 0, 110)); + border-radius: 3px; +} + +/*Special taskmanager window buttons: based on window state*/ +LTBWidget, LPanel QToolButton, QDialog#LeaveDialog QToolButton{ + border: 1px solid transparent; + border-radius: 3px; + background: transparent; +} +LTBWidget::menu-indicator{ image: none; } /*disable the menu arrow*/ +LTBWidget#WindowVisible{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(mid), stop: 1 transparent); +} +LTBWidget#WindowInvisible{ + background: transparent; +} +LTBWidget#WindowActive{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(midlight), stop: 1 transparent); +} +LTBWidget#WindowAttention{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(highlight), stop: 1 transparent); +} +LTBWidget:hover, LTBWidget#WindowVisible:hover, LTBWidget#WindowInvisible:hover, LTBWidget#WindowActive:hover, LTBWidget#WindowAttention:hover, QToolButton:hover, QDialog#LeaveDialog QToolButton:hover{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(highlight), stop: 1 transparent); + color: palette(highlighted-text); + border-width: 1px; + border-style: solid; + border-top-color: qradialgradient(spread:pad, cx:0.5, cy:1, radius:0.5, fx:0.5, fy:1, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-bottom-color: qradialgradient(spread:pad, cx:0.5, cy:0, radius:0.5, fx:0.5, fy:0, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-left-color: qradialgradient(spread:pad, cx:1, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); + border-right-color: qradialgradient(spread:pad, cx:0, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(0,0,0, 30), stop:0.724868 rgba(0,0,0, 60), stop:1 rgba(0,0,0, 10)); +} + +/* CALENDER WIDGET */ + /* (This is a special hack since there is no official support for stylesheets for this widget) */ + QCalendarWidget QWidget#qt_calendar_navigationbar{ + background-color: palette(base); + } +QCalendarWidget QWidget{ + background-color: palette(base); + alternate-background-color: palette(alternate-base); + color: palette(text); +} +QCalendarWidget QAbstractButton{ + background-color: transparent; +} +QCalendarWidget QAbstractButton::menu-indicator{ + image: none; +} +QCalendarWidget QAbstractItemView{ + selection-background-color: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 rgba(3, 4, 4, 20), stop:1 rgba(0, 0, 0, 100)); + selection-color: palette(highlighted-text); +} +QCalendarWidget QWidget#qt_calendar_calendarview{ + background-color: palette(dark); + border: none; +} diff --git a/src-qt5/core/lumina-theme-engine/desktop_qss/Glass.qss b/src-qt5/core/lumina-theme-engine/desktop_qss/Glass.qss new file mode 100644 index 00000000..502c0a44 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/desktop_qss/Glass.qss @@ -0,0 +1,91 @@ +QWidget#LuminaBootSplash{ + background: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 palette(base), stop:1 palette(light) ); + border-radius: 5px; +} + +LDPlugin#applauncher{ + background-color: transparent; + border: none; +} +LDPlugin#applauncher QToolButton, LDPlugin, LDPlugin#desktopview QListWidget::item{ + background-color: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 rgba(250, 250, 250, 30), stop:1 rgba(252, 252, 252, 70)); + border-width: 3px; + border-style: solid; + border-radius: 5px; + border-top-color: qradialgradient(spread:pad, cx:0.5, cy:1, radius:0.5, fx:0.5, fy:1, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-bottom-color: qradialgradient(spread:pad, cx:0.5, cy:0, radius:0.5, fx:0.5, fy:0, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-left-color: qradialgradient(spread:pad, cx:1, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-right-color: qradialgradient(spread:pad, cx:0, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + color: white; +} + +LDPlugin#applauncher QToolButton:hover, LDPlugin#desktopview QListWidget::item:hover{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(highlight), stop: 1 transparent); + color: palette(highlighted-text); + border-width: 3px; + border-style: solid; + border-radius: 5px; + border-top-color: qradialgradient(spread:pad, cx:0.5, cy:1, radius:0.5, fx:0.5, fy:1, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-bottom-color: qradialgradient(spread:pad, cx:0.5, cy:0, radius:0.5, fx:0.5, fy:0, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-left-color: qradialgradient(spread:pad, cx:1, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-right-color: qradialgradient(spread:pad, cx:0, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); +} +QWidget#LuminaPanelColor{ + background: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 rgba(252, 252, 252, 60), stop:1 rgba(255,255,255, 110)); + border-radius: 3px; +} + +/*Special taskmanager window buttons: based on window state*/ +LTBWidget, LPanel QToolButton, QDialog#LeaveDialog QToolButton{ + border: 1px solid transparent; + border-radius: 3px; + background: transparent; +} +LTBWidget::menu-indicator{ image: none; } /*disable the menu arrow*/ +LTBWidget#WindowVisible{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(mid), stop: 1 transparent); +} +LTBWidget#WindowInvisible{ + background: transparent; +} +LTBWidget#WindowActive{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(dark), stop: 1 transparent); +} +LTBWidget#WindowAttention{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(highlight), stop: 1 transparent); +} +LTBWidget:hover, LTBWidget#WindowVisible:hover, LTBWidget#WindowInvisible:hover, LTBWidget#WindowActive:hover, LTBWidget#WindowAttention:hover, QToolButton:hover, QDialog#LeaveDialog QToolButton:hover{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1.1, stop: 0.1 palette(highlight), stop: 1 transparent); + color: palette(highlighted-text); + border-width: 1px; + border-style: solid; + border-top-color: qradialgradient(spread:pad, cx:0.5, cy:1, radius:0.5, fx:0.5, fy:1, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-bottom-color: qradialgradient(spread:pad, cx:0.5, cy:0, radius:0.5, fx:0.5, fy:0, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-left-color: qradialgradient(spread:pad, cx:1, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); + border-right-color: qradialgradient(spread:pad, cx:0, cy:0.5, radius:0.5, fx:1, fy:0.5, stop:0 rgba(255,255,255, 30), stop:0.724868 rgba(255,255,255, 60), stop:1 rgba(255,255,255, 10)); +} + +/* CALENDER WIDGET */ + /* (This is a special hack since there is no official support for stylesheets for this widget) */ + QCalendarWidget QWidget#qt_calendar_navigationbar{ + background-color: palette(base); + } +QCalendarWidget QWidget{ + background-color: palette(base); + alternate-background-color: palette(alternate-base); + color: palette(text); +} +QCalendarWidget QAbstractButton{ + background-color: transparent; +} +QCalendarWidget QAbstractButton::menu-indicator{ + image: none; +} +QCalendarWidget QAbstractItemView{ + selection-background-color: qradialgradient(spread:reflect, cx:0.113757, cy:0.875, radius:0.7, fx:0.045, fy:0.954545, stop:0 rgba(253, 254, 254, 20), stop:1 rgba(255,255,255, 100)); + selection-color: palette(highlighted-text); +} +QCalendarWidget QWidget#qt_calendar_calendarview{ + background-color: palette(light); + border: none; +} diff --git a/src-qt5/core/lumina-theme-engine/lthemeengine.pri b/src-qt5/core/lumina-theme-engine/lthemeengine.pri index 40202045..781527c1 100644 --- a/src-qt5/core/lumina-theme-engine/lthemeengine.pri +++ b/src-qt5/core/lumina-theme-engine/lthemeengine.pri @@ -3,7 +3,7 @@ QT *= core gui widgets x11extras network error("Use Qt 5.4.0 or higher.") } include(../../OS-detect.pri) - +include(../libLumina/LDesktopUtils.pri) CONFIG *= c++11 #Install paths diff --git a/src-qt5/core/lumina-theme-engine/lumina-theme-engine.pro b/src-qt5/core/lumina-theme-engine/lumina-theme-engine.pro index d91091d3..1e8b2ca4 100644 --- a/src-qt5/core/lumina-theme-engine/lumina-theme-engine.pro +++ b/src-qt5/core/lumina-theme-engine/lumina-theme-engine.pro @@ -3,9 +3,16 @@ include(../../OS-detect.pri) TEMPLATE = subdirs SUBDIRS += src/lthemeengine-qtplugin \ src/lthemeengine-style \ - src/lthemeengine + src/lthemeengine \ + src/lthemeengine-sstest colors.files = colors/*.conf colors.path = $${L_SHAREDIR}/lthemeengine/colors -INSTALLS += colors +qss.files = qss/*.qss +qss.path = $${L_SHAREDIR}/lthemeengine/qss + +dqss.files = desktop_qss/*.qss +dqss.path = $${L_SHAREDIR}/lthemeengine/desktop_qss + +INSTALLS += colors qss dqss diff --git a/src-qt5/core/lumina-theme-engine/qss/scrollbar-simple.qss b/src-qt5/core/lumina-theme-engine/qss/scrollbar-simple.qss new file mode 100644 index 00000000..d0c9b448 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/qss/scrollbar-simple.qss @@ -0,0 +1,30 @@ +/* SCROLLBARS (NOTE: Changing 1 subcontrol means you have to change all of them)*/ +QScrollBar{ + background: palette(alternate-base); +} +QScrollBar:horizontal{ + margin: 0px 0px 0px 0px; +} +QScrollBar:vertical{ + margin: 0px 0px 0px 0px; +} +QScrollBar::handle{ + background: palette(base); + border: 1px solid transparent; + border-radius: 1px; +} +QScrollBar::handle:hover, QScrollBar::add-line:hover, QScrollBar::sub-line:hover{ + background: palette(highlight); +} +QScrollBar::add-line{ +subcontrol-origin: none; +} +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical{ +height: 0px; +} +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal{ +width: 0px; +} +QScrollBar::sub-line{ +subcontrol-origin: none; +} diff --git a/src-qt5/core/lumina-theme-engine/qss/sliders-simple.qss b/src-qt5/core/lumina-theme-engine/qss/sliders-simple.qss new file mode 100644 index 00000000..a9b165a6 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/qss/sliders-simple.qss @@ -0,0 +1,70 @@ +/* SLIDERS */ +QSlider::groove:horizontal { +border: 1px solid palette(mid); +background: palette(alternate-window); +height: 10px; +border-radius: 3px; +} +QSlider::groove:vertical { +border: 1px solid palette(mid); +background: palette(alternate-window); +width: 10px; +border-radius: 3px; +} +QSlider::sub-page:horizontal { +background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1, + stop: 0 transparent, stop: 1 palette(highlight) ); +border: 1px solid transparent; +height: 10px; +border-radius: 3px; +} +QSlider::add-page:vertical { +background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1, + stop: 0 transparent, stop: 1 palette(highlight) ); +border: 1px solid transparent; +width: 10px; +border-radius: 3px; +} +QSlider::add-page:horizontal{ +background: palette(alternate-window); +border: 1px solid transparent; +height: 10px; +border-radius: 3px; +} +QSlider::sub-page:vertical{ +background: palette(alternate-window); +border: 1px solid transparent; +width: 10px; +border-radius: 3px; +} +QSlider::handle:horizontal{ +background: palette(mid); +border: 1px solid palette(mid); +width: 1ex; +border-radius: 1px; +} +QSlider::handle:vertical{ +background: palette(mid); +border: 1px solid palette(mid); +height: 1ex; +border-radius: 1px; +} +QSlider::handle:horizontal:hover, QSlider::handle:vertical:hover{ +border: 1px solid palette(highlight); +background: palette(highlight); +} + +QSlider::sub-page:horizontal:disabled { +background: palette(highlight); +border-color: palette(highlight); +} + +QSlider::add-page:horizontal:disabled { +background: palette(highlight); +border-color: palette(highlight); +} + +QSlider::handle:horizontal:disabled { +background: palette(alternate-window); +border: 1px solid palette(highlight); +} diff --git a/src-qt5/core/lumina-theme-engine/qss/tooltip-simple.qss b/src-qt5/core/lumina-theme-engine/qss/tooltip-simple.qss new file mode 100644 index 00000000..9bee3e08 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/qss/tooltip-simple.qss @@ -0,0 +1,7 @@ +QToolTip{ + background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 1, stop: 0 palette(window), stop: 1 palette(alternate-window)); + border-radius: 3px; + border: 1px solid palette(highlight); + padding: 1px; + color: palette(text); +} diff --git a/src-qt5/core/lumina-theme-engine/qss/traynotification-simple.qss b/src-qt5/core/lumina-theme-engine/qss/traynotification-simple.qss new file mode 100644 index 00000000..43aff087 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/qss/traynotification-simple.qss @@ -0,0 +1,4 @@ +QBalloonTip{ +background-color: palette(base); +color: palette(text); +} 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 453bde1d..670e1c9c 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 @@ -16,6 +16,8 @@ #include <QFile> #include <QFileSystemWatcher> +#include <stdlib.h> + #include <lthemeengine/lthemeengine.h> #include "lthemeengineplatformtheme.h" #if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)) && !defined(QT_NO_DBUS) @@ -130,20 +132,38 @@ void lthemeenginePlatformTheme::applySettings(){ if(m_customPalette){ qApp->setPalette(*m_customPalette); } else{ qApp->setPalette(qApp->style()->standardPalette()); } } - //do not override application style - if(m_prevStyleSheet == qApp->styleSheet()){ qApp->setStyleSheet(m_userStyleSheet); } - else{ qCDebug(llthemeengine) << "custom style sheet is disabled";} - m_prevStyleSheet = m_userStyleSheet; + //do not override application style if one is already set by the app itself + QString orig = qApp->styleSheet(); + if(orig.startsWith(m_oldStyleSheet)){ orig = orig.remove(m_oldStyleSheet); } + qApp->setStyleSheet(m_userStyleSheet+orig); //make sure the app style has higher priority than ours + m_oldStyleSheet = m_userStyleSheet; + } #endif QGuiApplication::setFont(m_generalFont); //apply font + bool ithemechange = m_iconTheme != QIcon::themeName(); QIcon::setThemeName(m_iconTheme); //apply icons + //See if we need to reload the application icon from the new theme + if(ithemechange){ + QString appIcon = qApp->windowIcon().name(); + if(!appIcon.isEmpty() && QIcon::hasThemeIcon(appIcon)){ qApp->setWindowIcon(QIcon::fromTheme(appIcon)); } + QWindowList wins = qApp->topLevelWindows(); + for(int i=0; i<wins.length(); i++){ + QString winIcon = wins[i]->icon().name(); + if(!winIcon.isEmpty() && QIcon::hasThemeIcon(winIcon)){ wins[i]->setIcon(QIcon::fromTheme(winIcon)); } + } + } + bool cthemechange = m_cursorTheme != QString(getenv("X_CURSOR_THEME")); + setenv("X_CURSOR_THEME", m_cursorTheme.toLocal8Bit().data(), 1); + //qDebug() << "Icon Theme Change:" << m_iconTheme << QIcon::themeSearchPaths(); if(m_customPalette && m_usePalette){ QGuiApplication::setPalette(*m_customPalette); } //apply palette #ifdef QT_WIDGETS_LIB if(hasWidgets()){ + QEvent et(QEvent::ThemeChange); + QEvent ec(QEvent::CursorChange); foreach (QWidget *w, qApp->allWidgets()){ - QEvent e(QEvent::ThemeChange); - QApplication::sendEvent(w, &e); + if(ithemechange){ QApplication::sendEvent(w, &et); } + if(cthemechange){ QApplication::sendEvent(w, &ec); } } } #endif @@ -156,13 +176,13 @@ void lthemeenginePlatformTheme::createFSWatcher(){ watcher->addPath(lthemeengine::configPath()); QTimer *timer = new QTimer(this); timer->setSingleShot(true); - timer->setInterval(3000); + timer->setInterval(500); connect(watcher, SIGNAL(directoryChanged(QString)), timer, SLOT(start())); connect(timer, SIGNAL(timeout()), SLOT(updateSettings())); } void lthemeenginePlatformTheme::updateSettings(){ - qCDebug(llthemeengine) << "updating settings.."; + //qCDebug(llthemeengine) << "updating settings.."; readSettings(); applySettings(); } @@ -180,6 +200,7 @@ void lthemeenginePlatformTheme::readSettings(){ QString schemePath = settings.value("color_scheme_path","airy").toString(); m_customPalette = new QPalette(loadColorScheme(schemePath)); } + m_cursorTheme = settings.value("cursor_theme","").toString(); m_iconTheme = settings.value("icon_theme", "material-design-light").toString(); settings.endGroup(); settings.beginGroup("Fonts"); @@ -211,7 +232,10 @@ void lthemeenginePlatformTheme::readSettings(){ } //load style sheets #ifdef QT_WIDGETS_LIB - QStringList qssPaths = settings.value("stylesheets").toStringList(); + QStringList qssPaths; + if(qApp->applicationFilePath().section("/",-1).startsWith("lumina-desktop") ){ qssPaths << settings.value("desktop_stylesheets").toStringList(); } + qssPaths << settings.value("stylesheets").toStringList(); + //qDebug() << "Loaded Stylesheets:" << qApp->applicationName() << qssPaths; m_userStyleSheet = loadStyleSheets(qssPaths); #endif settings.endGroup(); @@ -224,6 +248,7 @@ bool lthemeenginePlatformTheme::hasWidgets(){ #endif QString lthemeenginePlatformTheme::loadStyleSheets(const QStringList &paths){ + //qDebug() << "Loading Stylesheets:" << paths; QString content; foreach (QString path, paths){ if(!QFile::exists(path)){ continue; } 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 17323328..f521d457 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 @@ -66,7 +66,7 @@ private: #endif QString loadStyleSheets(const QStringList &paths); QPalette loadColorScheme(QString filePath); - QString m_style, m_iconTheme, m_userStyleSheet, m_prevStyleSheet; + QString m_style, m_iconTheme, m_userStyleSheet, m_oldStyleSheet, m_cursorTheme; QPalette *m_customPalette = nullptr; QFont m_generalFont, m_fixedFont; int m_doubleClickInterval; diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-sstest/lthemeengine-sstest.pro b/src-qt5/core/lumina-theme-engine/src/lthemeengine-sstest/lthemeengine-sstest.pro new file mode 100644 index 00000000..fadc6fcb --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-sstest/lthemeengine-sstest.pro @@ -0,0 +1,11 @@ +include(../../lthemeengine.pri) +TEMPLATE = app +QT *= widgets + +SOURCES += \ + main.cpp + +TARGET = lthemeengine-sstest +target.path = $${L_BINDIR} + +INSTALLS += target diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-sstest/main.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-sstest/main.cpp new file mode 100644 index 00000000..bdab0a30 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-sstest/main.cpp @@ -0,0 +1,18 @@ +#include <QApplication> +//#include <QDebug> +#include <QWidget> + +#include <LUtils.h> + +int main(int argc, char **argv){ + if(argc<2){ return 1; } //error + unsetenv("QT_QPA_PLATFORMTHEME"); //Make sure we are not testing anything related to the current theme engine + QString stylesheet = LUtils::readFile(argv[1]).join("\n"); + //qDebug() << "Found Stylesheet:" << stylesheet; + QApplication app(argc, argv); + app.setStyleSheet(stylesheet); + //qDebug() << " Using Stylesheet:" << app.styleSheet(); + QWidget tmp(0,Qt::SplashScreen | Qt::BypassWindowManagerHint); + tmp.show(); //needed to actually run the parser on the stylesheet (unused/unchecked otherwise) + return 0; +} 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 04ca6a0b..98f9c865 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp @@ -6,6 +6,8 @@ #include <QMessageBox> #include <QMenu> #include <QIcon> +#include <QTimer> + #include "lthemeengine.h" #include "appearancepage.h" #include "paletteeditdialog.h" @@ -81,6 +83,8 @@ void AppearancePage::createColorScheme(){ QString schemePath = lthemeengine::userColorSchemePath() + "/" + name; createColorScheme(schemePath, palette()); m_ui->colorSchemeComboBox->addItem(name.section('.',0,0), schemePath); + m_ui->colorSchemeComboBox->setCurrentIndex( m_ui->colorSchemeComboBox->count()-1); + QTimer::singleShot(10, this, SLOT(changeColorScheme()) ); } void AppearancePage::changeColorScheme(){ @@ -125,6 +129,8 @@ void AppearancePage::copyColorScheme(){ QString newPath = lthemeengine::userColorSchemePath() + "/" + name; QFile::copy(m_ui->colorSchemeComboBox->currentData().toString(), newPath); m_ui->colorSchemeComboBox->addItem(name.section('.',0,0), newPath); + m_ui->colorSchemeComboBox->setCurrentIndex( m_ui->colorSchemeComboBox->count()-1); + QTimer::singleShot(10, this, SLOT(changeColorScheme()) ); } void AppearancePage::renameColorScheme(){ @@ -189,6 +195,10 @@ void AppearancePage::readSettings(){ m_ui->styleComboBox->setCurrentText(style); m_ui->customPaletteButton->setChecked(settings.value("custom_palette", false).toBool()); QString colorSchemePath = settings.value("color_scheme_path").toString(); + if(colorSchemePath.contains("..") || colorSchemePath.contains("//") ){ + //Make this an absolute path for comparison later + colorSchemePath = QFileInfo(colorSchemePath).absoluteFilePath(); + } QDir("/").mkpath(lthemeengine::userColorSchemePath()); findColorSchemes( QStringList() << lthemeengine::userColorSchemePath() << lthemeengine::sharedColorSchemePath()); if(m_ui->colorSchemeComboBox->count() == 0){ diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.ui b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.ui index cd442930..91b65245 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.ui +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.ui @@ -161,9 +161,15 @@ <property name="text"> <string>...</string> </property> + <property name="icon"> + <iconset theme="view-more-vertical"/> + </property> <property name="popupMode"> <enum>QToolButton::InstantPopup</enum> </property> + <property name="autoRaise"> + <bool>true</bool> + </property> <property name="arrowType"> <enum>Qt::NoArrow</enum> </property> diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.cpp new file mode 100644 index 00000000..1d84164f --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.cpp @@ -0,0 +1,139 @@ +#include <QSettings> +#include <QFileInfo> +#include <QFileInfoList> +#include <QDir> +#include <QTreeWidgetItem> +#include <QImageReader> +#include <QLocale> +#include "lthemeengine.h" +#include "cursorthemepage.h" +#include "ui_cursorthemepage.h" + +CursorThemePage::CursorThemePage(QWidget *parent) : TabPage(parent), m_ui(new Ui::CursorThemePage){ + m_ui->setupUi(this); + loadThemes(); + readSettings(); +} + +CursorThemePage::~CursorThemePage(){ + delete m_ui; +} + +void CursorThemePage::writeSettings(){ + QSettings settings(lthemeengine::configFile(), QSettings::IniFormat); + QTreeWidgetItem *item = m_ui->treeWidget->currentItem(); + if(item){ + settings.setValue("Appearance/cursor_theme", item->data(3, Qt::UserRole)); + lthemeengine::setCursorTheme(item->data(3, Qt::UserRole).toString() ); + } +} + +void CursorThemePage::readSettings(){ + QSettings settings(lthemeengine::configFile(), QSettings::IniFormat); + QString name = settings.value("Appearance/cursor_theme").toString(); + if(name.isEmpty()){ return; } + for(int i = 0; i < m_ui->treeWidget->topLevelItemCount(); ++i){ + QTreeWidgetItem *item = m_ui->treeWidget->topLevelItem(i); + if(item->data(3, Qt::UserRole).toString() == name){ + m_ui->treeWidget->setCurrentItem(item); + break; + } + } +} + +void CursorThemePage::loadThemes(){ + /*QFileInfoList themeFileList; + foreach(QString path, lthemeengine::iconPaths()){ + QDir dir(path); + dir.setFilter(QDir::Dirs | QDir::NoDotDot | QDir::NoDot); + foreach (QFileInfo info, dir.entryInfoList()){ + QDir themeDir(info.absoluteFilePath()); + themeDir.setFilter(QDir::Files); + themeFileList << themeDir.entryInfoList(QStringList() << "index.theme"); + } + }*/ + /*foreach(QFileInfo info, themeFileList){ + loadTheme(info.canonicalFilePath()); + }*/ + QStringList themes = lthemeengine::availableSystemCursors(); + for(int i=0; i<themes.length(); i++){ loadTheme(themes[i]); } +} + +void CursorThemePage::loadTheme(const QString &path){ + //QSettings config(path, QSettings::IniFormat); + //config.setIniCodec("UTF-8"); + //config.beginGroup("Icon Theme"); + //QStringList dirs = config.value("Directories").toStringList(); + //if(dirs.isEmpty() || config.value("Hidden", false).toBool()){ return; } + QString name, comment; + name = comment = path.section("/",-1); + /*QString lang = QLocale::system().name(); + name = config.value(QString("Name[%1]").arg(lang)).toString(); + comment = config.value(QString("Comment[%1]").arg(lang)).toString(); + if(lang.contains("_")){ lang = lang.split("_").first(); } + if(name.isEmpty()){ name = config.value(QString("Name[%1]").arg(lang)).toString(); } + if(comment.isEmpty()){ comment = config.value(QString("Comment[%1]").arg(lang)).toString(); } + if(name.isEmpty()){ name = config.value("Name").toString(); } + if(comment.isEmpty()){ comment = config.value("Comment").toString(); } + config.endGroup();*/ + QIcon icon1;// = findIcon(path, 24, "document-save"); + QIcon icon2;//= findIcon(path, 24, "document-print"); + QIcon icon3;// = findIcon(path, 24, "media-playback-stop"); + QTreeWidgetItem *item = new QTreeWidgetItem(); + item->setIcon(0, icon1); + item->setIcon(1, icon2); + item->setIcon(2, icon3); + item->setText(3, name); + item->setData(3, Qt::UserRole, path.section("/",-1)); + item->setToolTip(3, comment); + item->setSizeHint(0, QSize(24,24)); + m_ui->treeWidget->addTopLevelItem(item); + m_ui->treeWidget->resizeColumnToContents(0); + m_ui->treeWidget->resizeColumnToContents(1); + m_ui->treeWidget->resizeColumnToContents(2); + m_ui->treeWidget->resizeColumnToContents(3); +} + +QIcon CursorThemePage::findIcon(const QString &themePath, int size, const QString &name){ + QSettings config(themePath, QSettings::IniFormat); + config.beginGroup("Icon Theme"); + QStringList dirs = config.value("Directories").toStringList(); + QStringList parents = config.value("Inherits").toStringList(); + bool haveInherits = config.contains("Inherits"); + config.endGroup(); + foreach (QString dir, dirs){ + config.beginGroup(dir); + if(config.value("Size").toInt() == size){ + QDir iconDir = QFileInfo(themePath).path() + "/" + dir; + iconDir.setFilter(QDir::Files); + iconDir.setNameFilters(QStringList () << name + ".*"); + if(iconDir.entryInfoList().isEmpty()) + continue; + return QIcon(iconDir.entryInfoList().first().absoluteFilePath()); + } + config.endGroup(); + } + foreach (QString dir, dirs){ + config.beginGroup(dir); + if(abs(config.value("Size").toInt() - size) < 4){ + QDir iconDir = QFileInfo(themePath).path() + "/" + dir; + iconDir.setFilter(QDir::Files); + iconDir.setNameFilters(QStringList () << name + ".*"); + if(iconDir.entryInfoList().isEmpty()) + continue; + return QIcon(iconDir.entryInfoList().first().absoluteFilePath()); + } + config.endGroup(); + } + if (!haveInherits){ return QIcon(); } + parents.append("hicolor"); //add fallback themes + parents.append("gnome"); + parents.removeDuplicates(); + foreach (QString parent, parents){ + QString parentThemePath = QDir(QFileInfo(themePath).path() + "/../" + parent).canonicalPath() + "/index.theme"; + if(!QFile::exists(parentThemePath) || parentThemePath == themePath){ continue; } + QIcon icon = findIcon(parentThemePath, size, name); + if(!icon.isNull()){ return icon; } + } + return QIcon(); +} diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.h new file mode 100644 index 00000000..e221520b --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.h @@ -0,0 +1,29 @@ +#ifndef CURSORTHEMEPAGE_H +#define CURSORTHEMEPAGE_H + +#include <QIcon> +#include "tabpage.h" + +namespace Ui { +class CursorThemePage; +} + +class CursorThemePage : public TabPage +{ + Q_OBJECT + +public: + explicit CursorThemePage(QWidget *parent = 0); + ~CursorThemePage(); + + void writeSettings(); + +private: + void readSettings(); + void loadThemes(); + void loadTheme(const QString &path); + QIcon findIcon(const QString &themePath, int size, const QString &name); + Ui::CursorThemePage *m_ui; +}; + +#endif // ICONTHEMEPAGE_H diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.ui b/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.ui new file mode 100644 index 00000000..3e0a5da1 --- /dev/null +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/cursorthemepage.ui @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>CursorThemePage</class> + <widget class="QWidget" name="CursorThemePage"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string notr="true">Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QTreeWidget" name="treeWidget"> + <property name="columnCount"> + <number>4</number> + </property> + <attribute name="headerVisible"> + <bool>false</bool> + </attribute> + <column> + <property name="text"> + <string notr="true">1</string> + </property> + </column> + <column> + <property name="text"> + <string notr="true">2</string> + </property> + </column> + <column> + <property name="text"> + <string notr="true">3</string> + </property> + </column> + <column> + <property name="text"> + <string notr="true">4</string> + </property> + </column> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp index 1a09ac0d..7ed54f02 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp @@ -72,7 +72,7 @@ void IconThemePage::loadTheme(const QString &path){ config.endGroup(); QIcon icon1 = findIcon(path, 24, "document-save"); QIcon icon2 = findIcon(path, 24, "document-print"); - QIcon icon3 = findIcon(path, 24, "media-playback-stop"); + QIcon icon3 = findIcon(path, 24, "document-edit"); QTreeWidgetItem *item = new QTreeWidgetItem(); item->setIcon(0, icon1); item->setIcon(1, icon2); @@ -97,7 +97,7 @@ QIcon IconThemePage::findIcon(const QString &themePath, int size, const QString config.endGroup(); foreach (QString dir, dirs){ config.beginGroup(dir); - if(config.value("Size").toInt() == size){ + if(config.value("Size").toInt() == size || config.value("Type").toString().toLower()=="scalable"){ QDir iconDir = QFileInfo(themePath).path() + "/" + dir; iconDir.setFilter(QDir::Files); iconDir.setNameFilters(QStringList () << name + ".*"); 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 fdeb8966..cb491aa6 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp @@ -8,6 +8,19 @@ #include <QDebug> +QStringList lthemeengine::readFile(QString filepath){ + QStringList out; + QFile file(filepath); + if(file.open(QIODevice::Text | QIODevice::ReadOnly)){ + QTextStream in(&file); + while(!in.atEnd()){ + out << in.readLine(); + } + file.close(); + } + return out; +} + QString lthemeengine::configPath(){ return QDir::homePath() + "/.config/lthemeengine/"; } @@ -53,6 +66,20 @@ QStringList lthemeengine::sharedStyleSheetPath(){ return dirs; } +QString lthemeengine::userDesktopStyleSheetPath(){ + return configPath() + "desktop_qss/"; +} + +QStringList lthemeengine::sharedDesktopStyleSheetPath(){ + 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/desktop_qss/"); } + if(dirs.isEmpty()){ dirs << LTHEMEENGINE_DATADIR"/lthemeengine/desktop_qss/"; } //no XDG settings - use the hardcoded path + return dirs; + } + QString lthemeengine::userColorSchemePath(){ return configPath() + "colors/"; } @@ -77,3 +104,96 @@ QString lthemeengine::systemLanguageID(){ #endif return QLocale::system().name(); } + +QStringList lthemeengine::availableSystemCursors(){ //returns: [name] for each item + //Find all the directories which could contain themes + QStringList paths; + paths << QDir::homePath()+"/.icons"; + QStringList xdd = QString(getenv("XDG_DATA_HOME")).split(":"); + xdd << QString(getenv("XDG_DATA_DIRS")).split(":"); + for(int i=0; i<xdd.length(); i++){ + if(QFile::exists(xdd[i]+"/icons")){ + paths << xdd[i]+"/icons"; + } + } + //Now get all the icon themes in these directories + QStringList themes, tmpthemes; + QDir dir; + for(int i=0; i<paths.length(); i++){ + if(dir.cd(paths[i])){ + tmpthemes = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); + for(int j=0; j<tmpthemes.length(); j++){ + if(tmpthemes[j].startsWith("default")){ continue; } + if( QFile::exists(dir.absoluteFilePath(tmpthemes[j]+"/cursors")) ){ themes << tmpthemes[j]; } + } + } + } + //Clean up the list and return + themes.removeDuplicates(); + themes.sort(); + return themes; +} + +//Return the currently-selected Cursor theme +QString lthemeengine::currentCursor(){ + //qDebug() << "Reading Current Cursor Theme:"; + QStringList info = readFile(QDir::homePath()+"/.icons/default/index.theme"); + if(info.isEmpty()){ return ""; } + QString cursor; + bool insection = false; + for(int i=0; i<info.length(); i++){ + if(info[i]=="[Icon Theme]"){ insection = true; continue;} + else if(insection && info[i].startsWith("Inherits=")){ + cursor = info[i].section("=",1,1).simplified(); + break; + } + } + //qDebug() << " - found theme:" << cursor; + return cursor; +} + +//Change the current Cursor Theme +bool lthemeengine::setCursorTheme(QString cursorname){ +//qDebug() << "Set Cursor Theme:" << cursorname; + if(cursorname=="default"){ + //special case - this will cause a recursive inheritance loop - just remove the file instead + if(QFile::exists(QDir::homePath()+"/.icons/default/index.theme")){ + return QFile::remove(QDir::homePath()+"/.icons/default/index.theme"); + } + return true; //already does not exist + } + QStringList info = readFile(QDir::homePath()+"/.icons/default/index.theme"); + bool insection = false; + bool changed = false; + QString newval = "Inherits="+cursorname; + for(int i=0; i<info.length() && !changed; i++){ + if(info[i]=="[Icon Theme]"){ + insection = true; + }else if( info[i].startsWith("[") && insection){ + //Section does not have the setting - add it + info.insert(i, newval); + changed =true; + }else if( info[i].startsWith("[") ){ + insection = false; + }else if(insection && info[i].startsWith("Inherits=")){ + info[i] = newval; //replace the current setting + changed = true; + } + } //end loop over file contents + if(!changed){ //Could not change the file contents for some reason + if(insection){ info << newval; } //end of file while in the section + else{ info << "[Icon Theme]" << newval; } //entire section missing from file + } + //Now save the file + QFile file(QDir::homePath()+"/.icons/default/index.theme"); + bool ok = false; + if( file.open(QIODevice::WriteOnly | QIODevice::Truncate) ){ + QTextStream out(&file); + out << info.join("\n"); + if(!info.last().isEmpty()){ out << "\n"; } //always end with a new line + file.close(); + ok = true; + } + //qDebug() << "Done saving the cursor:" << info; + return ok; +} diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.desktop b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.desktop index 7eb91bee..9d36fffa 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.desktop +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.desktop @@ -1,6 +1,6 @@ [Desktop Entry] X-Desktop-File-Install-Version=0.11 -Name=Lumine Theme Engine +Name=Lumina Theme Engine Comment=Lumina Theme Engine Exec=lthemeengine Icon=preferences-desktop-theme 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 8a466ed9..c1b6eac6 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h @@ -16,14 +16,22 @@ class lthemeengine { public: + static QStringList readFile(QString path); static QString configPath(); static QString configFile(); static QStringList iconPaths(); static QString userStyleSheetPath(); static QStringList sharedStyleSheetPath(); + static QString userDesktopStyleSheetPath(); + static QStringList sharedDesktopStyleSheetPath(); static QString userColorSchemePath(); static QStringList sharedColorSchemePath(); static QString systemLanguageID(); + //Cursor Theme Management + static QStringList availableSystemCursors(); + static QString currentCursor(); + static bool setCursorTheme(QString); + private: lthemeengine() {} 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 721b8888..cc949ff9 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.pro +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.pro @@ -16,7 +16,8 @@ SOURCES += \ interfacepage.cpp \ fontconfigdialog.cpp \ qsspage.cpp \ - qsseditordialog.cpp + qsseditordialog.cpp \ + cursorthemepage.cpp FORMS += \ mainwindow.ui \ @@ -28,7 +29,8 @@ FORMS += \ fontconfigdialog.ui \ previewform.ui \ qsspage.ui \ - qsseditordialog.ui + qsseditordialog.ui \ + cursorthemepage.ui HEADERS += \ mainwindow.h \ @@ -41,7 +43,8 @@ HEADERS += \ interfacepage.h \ fontconfigdialog.h \ qsspage.h \ - qsseditordialog.h + qsseditordialog.h \ + cursorthemepage.h DEFINES += USE_WIDGETS diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp index 719a0f49..a82f8cc6 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp @@ -1,27 +1,47 @@ #include <QApplication> #include <QSettings> +#include <QDebug> +#include <QTimer> + #include "lthemeengine.h" #include "mainwindow.h" #include "appearancepage.h" #include "fontspage.h" #include "iconthemepage.h" +#include "cursorthemepage.h" #include "interfacepage.h" #include "qsspage.h" #include "ui_mainwindow.h" +#include <LDesktopUtils.h> + MainWindow::MainWindow(QWidget *parent) : QWidget(parent), m_ui(new Ui::MainWindow){ m_ui->setupUi(this); - m_ui->tabWidget->addTab(new AppearancePage(this), tr("Appearance")); - m_ui->tabWidget->addTab(new FontsPage(this), tr("Fonts")); - m_ui->tabWidget->addTab(new IconThemePage(this), tr("Icon Theme")); - m_ui->tabWidget->addTab(new InterfacePage(this), tr("Interface")); -#ifdef USE_WIDGETS - m_ui->tabWidget->addTab(new QSSPage(this), tr("Style Sheets")); -#endif + bgroup = new QButtonGroup(this); + bgroup->setExclusive(true); + //Clear out any pages in the stacked widget + while(m_ui->stackedWidget->count()>0){ + m_ui->stackedWidget->removeWidget(m_ui->stackedWidget->widget(0)); + } + //Now add all the pages into the widget + bgroup->addButton(m_ui->tool_page_general, m_ui->stackedWidget->addWidget(new AppearancePage(this)) ); + bgroup->addButton(m_ui->tool_page_effects, m_ui->stackedWidget->addWidget(new InterfacePage(this))); + bgroup->addButton(m_ui->tool_page_fonts, m_ui->stackedWidget->addWidget(new FontsPage(this))); + bgroup->addButton(m_ui->tool_page_icons, m_ui->stackedWidget->addWidget(new IconThemePage(this))); + bgroup->addButton(m_ui->tool_page_styles, m_ui->stackedWidget->addWidget(new QSSPage(this, false))); + bgroup->addButton(m_ui->tool_page_deskstyles, m_ui->stackedWidget->addWidget(new QSSPage(this, true))); + bgroup->addButton(m_ui->tool_page_cursors, m_ui->stackedWidget->addWidget(new CursorThemePage(this)) ); + connect(bgroup, SIGNAL(buttonClicked(int)), m_ui->stackedWidget, SLOT(setCurrentIndex(int)) ); + connect(m_ui->push_close, SIGNAL(clicked()), this, SLOT(closeWindow()) ); + connect(m_ui->push_apply, SIGNAL(clicked()), this, SLOT(applyWindow()) ); + + QTimer::singleShot(10, m_ui->tool_page_general, SLOT(toggle())); QSettings settings(lthemeengine::configFile(), QSettings::IniFormat); restoreGeometry(settings.value("SettingsWindow/geometry").toByteArray()); setWindowIcon(QIcon::fromTheme("preferences-desktop-theme")); - m_ui->versionLabel->setText(tr("Version: %1").arg(LTHEMEENGINE_VERSION_STR)); + this->setWindowTitle(tr("Theme Settings")); + m_ui->versionLabel->setText(tr("Version: %1").arg(LDesktopUtils::LuminaDesktopVersion())); + //m_ui->buttonBox->set } MainWindow::~MainWindow(){ @@ -33,16 +53,14 @@ void MainWindow::closeEvent(QCloseEvent *){ settings.setValue("SettingsWindow/geometry", saveGeometry()); } -void MainWindow::on_buttonBox_clicked(QAbstractButton *button){ - int id = m_ui->buttonBox->standardButton(button); - if(id == QDialogButtonBox::Ok || id == QDialogButtonBox::Apply){ - for(int i = 0; i < m_ui->tabWidget->count(); ++i){ - TabPage *p = qobject_cast<TabPage*>(m_ui->tabWidget->widget(i)); - if(p) { p->writeSettings(); } - } - } - if(id == QDialogButtonBox::Ok || id == QDialogButtonBox::Cancel){ - close(); - qApp->quit(); - } +void MainWindow::closeWindow(){ + close(); + QApplication::quit(); +} + +void MainWindow::applyWindow(){ + for(int i = 0; i < m_ui->stackedWidget->count(); ++i){ + TabPage *p = qobject_cast<TabPage*>(m_ui->stackedWidget->widget(i)); + if(p) { p->writeSettings(); } + } } diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h index 749949a6..333bc1fd 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h @@ -2,8 +2,9 @@ #define MAINWINDOW_H #include <QWidget> - -class QAbstractButton; +#include <QAbstractButton> +#include <QButtonGroup> +//class QAbstractButton; namespace Ui { class MainWindow; @@ -18,12 +19,14 @@ public: ~MainWindow(); private slots: - void on_buttonBox_clicked(QAbstractButton *button); + void closeWindow(); + void applyWindow(); private: void closeEvent(QCloseEvent *); Ui::MainWindow *m_ui; + QButtonGroup *bgroup; }; #endif // MAINWINDOW_H diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.ui b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.ui index 5bdab6d7..c60eb870 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.ui +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.ui @@ -6,14 +6,14 @@ <rect> <x>0</x> <y>0</y> - <width>438</width> - <height>374</height> + <width>672</width> + <height>747</height> </rect> </property> <property name="windowTitle"> <string>Qt5 Configuration Tool</string> </property> - <layout class="QGridLayout" name="gridLayout"> + <layout class="QVBoxLayout" name="verticalLayout_2"> <property name="leftMargin"> <number>6</number> </property> @@ -23,22 +23,318 @@ <property name="bottomMargin"> <number>6</number> </property> - <item row="0" column="0" colspan="2"> - <widget class="QTabWidget" name="tabWidget"/> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="versionLabel"> - <property name="text"> - <string notr="true">...</string> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>4</number> </property> - </widget> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QToolButton" name="tool_page_general"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>General</string> + </property> + <property name="icon"> + <iconset theme="preferences-desktop-theme"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_page_effects"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Effects</string> + </property> + <property name="icon"> + <iconset theme="preferences-desktop-display"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_page_fonts"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Fonts</string> + </property> + <property name="icon"> + <iconset theme="preferences-desktop-font"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_page_icons"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Icons</string> + </property> + <property name="icon"> + <iconset theme="preferences-desktop-icons"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_page_cursors"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Cursors</string> + </property> + <property name="icon"> + <iconset theme="preferences-desktop-mouse"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_page_styles"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>General +Styles</string> + </property> + <property name="icon"> + <iconset theme="preferences-system-windows"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_page_deskstyles"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Desktop +Styles</string> + </property> + <property name="icon"> + <iconset theme="preferences-desktop"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="iconSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QStackedWidget" name="stackedWidget"> + <property name="frameShape"> + <enum>QFrame::Box</enum> + </property> + <widget class="QWidget" name="page"/> + </widget> + </item> + </layout> </item> - <item row="1" column="1"> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - </widget> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="versionLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string notr="true">...</string> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="push_close"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Close</string> + </property> + <property name="icon"> + <iconset theme="dialog-cancel"/> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="push_apply"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Apply</string> + </property> + <property name="icon"> + <iconset theme="dialog-ok-apply"/> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + </layout> </item> </layout> </widget> 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 ac891a80..56289931 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp @@ -4,6 +4,12 @@ #include "qsseditordialog.h" #include "ui_qsseditordialog.h" +#include <QTemporaryFile> +#include <QTextStream> + +#include <LuminaXDG.h> +#include <LUtils.h> + QSSEditorDialog::QSSEditorDialog(const QString &filePath, QWidget *parent) : QDialog(parent), m_ui(new Ui::QSSEditorDialog){ m_ui->setupUi(this); m_filePath = filePath; @@ -37,6 +43,11 @@ QSSEditorDialog::QSSEditorDialog(const QString &filePath, QWidget *parent) : QDi 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*)) ); + validateTimer = new QTimer(this); + validateTimer->setInterval(500); //1/2 second after finish typing + validateTimer->setSingleShot(true); + connect(validateTimer, SIGNAL(timeout()), this, SLOT(validateStyleSheet()) ); + connect(m_ui->textEdit, SIGNAL(textChanged()), validateTimer, SLOT(start()) ); } QSSEditorDialog::~QSSEditorDialog(){ @@ -69,3 +80,31 @@ void QSSEditorDialog::colorPicked(QAction* act){ if(id.isEmpty()){ return; } m_ui->textEdit->insertPlainText( QString("palette(%1)").arg(id) ); } + +bool QSSEditorDialog::isStyleSheetValid(const QString &styleSheet){ + QTemporaryFile tempfile; + if(tempfile.open()){ + QTextStream out(&tempfile); + out << styleSheet; + out.flush(); + tempfile.close(); + } + QStringList log = LUtils::getCmdOutput("lthemeengine-sstest", QStringList() << tempfile.fileName()); + qDebug() << "Got Validation Log:" << log; + return log.join("").simplified().isEmpty(); +} + +void QSSEditorDialog::validateStyleSheet(){ + qDebug() << "Validating StyleSheet:"; + bool ok = isStyleSheetValid(m_ui->textEdit->toPlainText()); + + //Now update the button/label as needed + int sz = this->fontMetrics().height(); + if(ok){ + m_ui->label_status_icon->setPixmap(LXDG::findIcon("dialog-ok","").pixmap(sz,sz) ); + m_ui->label_status_icon->setToolTip(tr("Valid StyleSheet")); + }else{ + m_ui->label_status_icon->setPixmap(LXDG::findIcon("dialog-cancel","").pixmap(sz,sz) ); + m_ui->label_status_icon->setToolTip(tr("Invalid StyleSheet")); + } +} 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 114611fe..f51434e9 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h @@ -5,6 +5,7 @@ #include <QString> #include <QMenu> #include <QAction> +#include <QTimer> namespace Ui { class QSSEditorDialog; @@ -23,6 +24,8 @@ public: private slots: void on_buttonBox_clicked(QAbstractButton *button); void colorPicked(QAction*); + bool isStyleSheetValid(const QString&); + void validateStyleSheet(); private: void save(); @@ -30,6 +33,7 @@ private: Ui::QSSEditorDialog *m_ui; QString m_filePath; QMenu *colorMenu; + QTimer *validateTimer; }; 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 f75a21c6..68a14fb1 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.ui +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>643</width> - <height>499</height> + <width>808</width> + <height>512</height> </rect> </property> <property name="windowTitle"> @@ -53,6 +53,38 @@ </widget> </item> <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="label_status_icon"> + <property name="minimumSize"> + <size> + <width>16</width> + <height>16</height> + </size> + </property> + <property name="text"> + <string notr="true"/> + </property> + <property name="scaledContents"> + <bool>false</bool> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> 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 2cf0f221..3140c553 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp @@ -4,6 +4,9 @@ #include <QMessageBox> #include <QFile> #include <QMenu> +#include <QDebug> +#include <QTimer> + #include "lthemeengine.h" #include "qsseditordialog.h" #include "qsspage.h" @@ -12,8 +15,9 @@ #define QSS_FULL_PATH_ROLE (Qt::ItemDataRole(Qt::UserRole)) #define QSS_WRITABLE_ROLE (Qt::ItemDataRole(Qt::UserRole + 1)) -QSSPage::QSSPage(QWidget *parent) : TabPage(parent), m_ui(new Ui::QSSPage){ +QSSPage::QSSPage(QWidget *parent, bool desktop) : TabPage(parent), m_ui(new Ui::QSSPage){ m_ui->setupUi(this); + desktop_qss = desktop; QDir("/").mkpath(lthemeengine::userStyleSheetPath()); m_menu = new QMenu(this); m_menu->addAction(QIcon::fromTheme("accessories-text-editor"), tr("Edit"), this, SLOT(on_editButton_clicked())); @@ -25,6 +29,9 @@ QSSPage::QSSPage(QWidget *parent) : TabPage(parent), m_ui(new Ui::QSSPage){ m_ui->createButton->setIcon(QIcon::fromTheme("document-new")); m_ui->editButton->setIcon(QIcon::fromTheme("accessories-text-editor")); m_ui->removeButton->setIcon(QIcon::fromTheme("edit-delete")); + m_ui->tool_enable->setEnabled(false); + m_ui->tool_disable->setEnabled(false); + m_ui->copyButton->setEnabled(false); } QSSPage::~QSSPage(){ @@ -34,14 +41,44 @@ QSSPage::~QSSPage(){ void QSSPage::writeSettings(){ QStringList styleSheets; QSettings settings(lthemeengine::configFile(), QSettings::IniFormat); - for(int i = 0; i < m_ui->qssListWidget->count(); ++i){ + for(int i = m_ui->qssListWidget->count()-1; i>=0; i--){ QListWidgetItem *item = m_ui->qssListWidget->item(i); - if(item->checkState() == Qt::Checked){ styleSheets << item->data(QSS_FULL_PATH_ROLE).toString(); } - settings.setValue("Interface/stylesheets", styleSheets); + styleSheets << item->data(QSS_FULL_PATH_ROLE).toString(); } + if(desktop_qss){ settings.setValue("Interface/desktop_stylesheets", styleSheets); } + else{ settings.setValue("Interface/stylesheets", styleSheets); } } void QSSPage::on_qssListWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *){ + if(current!=0){ + m_ui->list_disabled->clearSelection(); //clear any current selection on the other widget + m_ui->list_disabled->setCurrentRow(-1); + m_ui->tool_enable->setEnabled(false); + } + //qDebug() << "Got Current Item Changed"; + m_ui->tool_disable->setEnabled(current!=0); + m_ui->copyButton->setEnabled(current!=0); + if(current){ + m_ui->editButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool()); + m_ui->removeButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool()); + m_ui->renameButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool()); + } + else{ + m_ui->editButton->setEnabled(false); + m_ui->removeButton->setEnabled(false); + m_ui->renameButton->setEnabled(false); + } +} + +void QSSPage::on_list_disabled_currentItemChanged(QListWidgetItem *current, QListWidgetItem *){ + if(current!=0){ + m_ui->qssListWidget->clearSelection(); //clear any current selection on the other widget + m_ui->qssListWidget->setCurrentRow(-1); + m_ui->tool_disable->setEnabled(false); + } + //qDebug() << "Got Current Item Changed"; + m_ui->tool_enable->setEnabled(current!=0); + m_ui->copyButton->setEnabled(current!=0); if(current){ m_ui->editButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool()); m_ui->removeButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool()); @@ -58,54 +95,149 @@ void QSSPage::on_createButton_clicked(){ QString name = QInputDialog::getText(this, tr("Enter Style Sheet Name"), tr("File name:")); if(name.isEmpty()){ return; } if(!name.endsWith(".qss", Qt::CaseInsensitive)){ name.append(".qss"); } - QString filePath = lthemeengine::userStyleSheetPath() + name; + QString filePath; + if(desktop_qss){ filePath = lthemeengine::userDesktopStyleSheetPath() + name; } + else{ filePath = lthemeengine::userStyleSheetPath() + name; } if(QFile::exists(filePath)){ QMessageBox::warning(this, tr("Error"), tr("The file \"%1\" already exists").arg(filePath)); return; } + // Make sure the directory exists + QString dir = filePath.section("/",0,-2); + if(!QFile::exists(dir)){ + QDir D(dir); + D.mkpath(dir); + } //creating empty file QFile file(filePath); file.open(QIODevice::WriteOnly); file.close(); //creating item QFileInfo info(filePath); - QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget); + QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->list_disabled); item->setToolTip(info.filePath()); item->setData(QSS_FULL_PATH_ROLE, info.filePath()); item->setData(QSS_WRITABLE_ROLE, info.isWritable()); - item->setCheckState(Qt::Unchecked); + m_ui->list_disabled->setCurrentRow(m_ui->list_disabled->count()-1); + QTimer::singleShot(10, this, SLOT(on_editButton_clicked()) ); } void QSSPage::on_editButton_clicked(){ - QListWidgetItem *item = m_ui->qssListWidget->currentItem(); + QListWidgetItem *item = currentSelection(); if(item){ QSSEditorDialog dialog(item->data(QSS_FULL_PATH_ROLE).toString(), this); dialog.exec(); } } +void QSSPage::on_copyButton_clicked(){ + QListWidgetItem *sel = currentSelection(); + if(sel==0){ return; } + QString name = QInputDialog::getText(this, tr("Enter Style Sheet Name"), tr("File name:"), QLineEdit::Normal, sel->text().section(".qss",0,0)+"_copy"); + if(name.isEmpty()){ return; } + if(!name.endsWith(".qss", Qt::CaseInsensitive)){ name.append(".qss"); } + QString filePath; + if(desktop_qss){ filePath = lthemeengine::userDesktopStyleSheetPath() + name; } + else{ filePath = lthemeengine::userStyleSheetPath() + name; } + if(QFile::exists(filePath)){ + QMessageBox::warning(this, tr("Error"), tr("The file \"%1\" already exists").arg(filePath)); + return; + } + // Make sure the directory exists + QString dir = filePath.section("/",0,-2); + if(!QFile::exists(dir)){ + QDir D(dir); + D.mkpath(dir); + } + //Copy the file over + QFile::copy(sel->data(QSS_FULL_PATH_ROLE).toString(), filePath); + //creating item + QFileInfo info(filePath); + QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->list_disabled); + item->setToolTip(info.filePath()); + item->setData(QSS_FULL_PATH_ROLE, info.filePath()); + item->setData(QSS_WRITABLE_ROLE, info.isWritable()); + m_ui->list_disabled->setCurrentRow(m_ui->list_disabled->count()-1); +} + void QSSPage::on_removeButton_clicked(){ - QListWidgetItem *item = m_ui->qssListWidget->currentItem(); + QListWidgetItem *item = currentSelection(); if(!item){ return; } int button = QMessageBox::question(this, tr("Confirm Remove"),tr("Are you sure you want to remove style sheet \"%1\"?").arg(item->text()), QMessageBox::Yes | QMessageBox::No); if(button == QMessageBox::Yes){ QFile::remove(item->data(QSS_FULL_PATH_ROLE).toString()); } delete item; } +void QSSPage::on_tool_enable_clicked(){ + QList<QListWidgetItem*> sel = m_ui->list_disabled->selectedItems(); + //qDebug() << "Got Selection:" << sel.count(); + for(int i=0; i<sel.length(); i++){ + m_ui->qssListWidget->addItem(sel[i]->clone()); + delete sel[i]; + //QCoreApplication::processEvents(); + m_ui->qssListWidget->setCurrentRow(m_ui->qssListWidget->count()-1); + } + +} + +void QSSPage::on_tool_disable_clicked(){ + QList<QListWidgetItem*> sel = m_ui->qssListWidget->selectedItems(); + //qDebug() << "Got Selection:" << sel.count(); + for(int i=0; i<sel.length(); i++){ + m_ui->list_disabled->addItem(sel[i]->clone()); + delete sel[i]; + //QCoreApplication::processEvents(); + m_ui->list_disabled->setCurrentRow(m_ui->list_disabled->count()-1); + } +} + +void QSSPage::on_tool_priority_up_clicked(){ + QList<QListWidgetItem*> sel = m_ui->qssListWidget->selectedItems(); + for(int i=0; i<sel.length(); i++){ + int index = m_ui->qssListWidget->row(sel[i]); + //qDebug() << "Move Item Up:" << index; + if(index>0){ + m_ui->qssListWidget->insertItem(index-1, m_ui->qssListWidget->takeItem(index)); + m_ui->qssListWidget->setCurrentRow(index-1); + } + } +} + +void QSSPage::on_tool_priority_down_clicked(){ + QList<QListWidgetItem*> sel = m_ui->qssListWidget->selectedItems(); + for(int i=0; i<sel.length(); i++){ + int index = m_ui->qssListWidget->row(sel[i]); + //qDebug() << "Move Item Down:" << index; + if(index<(m_ui->qssListWidget->count()-1) ){ + m_ui->qssListWidget->insertItem(index+1, m_ui->qssListWidget->takeItem(index)); + m_ui->qssListWidget->setCurrentRow(index+1); + } + } +} + void QSSPage::readSettings(){ //load stylesheets m_ui->qssListWidget->clear(); - findStyleSheets(QStringList() << lthemeengine::userStyleSheetPath() << lthemeengine::sharedStyleSheetPath()); + m_ui->list_disabled->clear(); + //Read the currently-enabled settings QSettings settings(lthemeengine::configFile(), QSettings::IniFormat); - QStringList styleSheets = settings.value("Interface/stylesheets").toStringList(); - for(int i = 0; i < m_ui->qssListWidget->count(); ++i){ - QListWidgetItem *item = m_ui->qssListWidget->item(i); - if(styleSheets.contains(item->data(QSS_FULL_PATH_ROLE).toString())){ item->setCheckState(Qt::Checked); } - else { item->setCheckState(Qt::Unchecked); } + QStringList styleSheets; + if(desktop_qss){ styleSheets = settings.value("Interface/desktop_stylesheets").toStringList(); } + else{ styleSheets = settings.value("Interface/stylesheets").toStringList(); } + for(int i=0; i<styleSheets.length(); i++){ + if(styleSheets[i].contains("..") || styleSheets[i].contains("//") ){ + //Get the absolute path for matching later + styleSheets[i] = QFileInfo(styleSheets[i]).absoluteFilePath(); } + } + //Now load the items into list widgets + //qDebug() << "Found Stylesheets" << styleSheets; + if(desktop_qss){ findStyleSheets(QStringList() << lthemeengine::userDesktopStyleSheetPath() << lthemeengine::sharedDesktopStyleSheetPath(), styleSheets); } + else{findStyleSheets(QStringList() << lthemeengine::userStyleSheetPath() << lthemeengine::sharedStyleSheetPath(), styleSheets); } + } -void QSSPage::findStyleSheets(QStringList paths){ +void QSSPage::findStyleSheets(QStringList paths, QStringList enabled){ paths.removeDuplicates(); for(int i=0; i<paths.length(); i++){ if(!QFile::exists(paths[i])){ continue; } @@ -113,20 +245,30 @@ void QSSPage::findStyleSheets(QStringList paths){ dir.setFilter(QDir::Files); dir.setNameFilters(QStringList() << "*.qss"); foreach (QFileInfo info, dir.entryInfoList()){ - QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget); + QListWidgetItem *item = new QListWidgetItem(info.fileName()); item->setToolTip(info.filePath()); item->setData(QSS_FULL_PATH_ROLE, info.filePath()); item->setData(QSS_WRITABLE_ROLE, info.isWritable()); + if( enabled.contains(info.filePath()) ){ m_ui->qssListWidget->addItem(item); } + else{ m_ui->list_disabled->addItem(item); } } } + //Now ensure the priority of the items in the active list is correct + for(int i = 0; i < m_ui->qssListWidget->count(); ++i){ + QListWidgetItem *item = m_ui->qssListWidget->item(i); + int index = enabled.indexOf( item->data(QSS_FULL_PATH_ROLE).toString() ); + if(index>=0){ m_ui->qssListWidget->insertItem(index, item); }// item->move(m_ui->qssListWidget->count() - 1 - index); } + } + m_ui->list_disabled->sortItems(Qt::AscendingOrder); + } void QSSPage::on_renameButton_clicked(){ - QListWidgetItem *item = m_ui->qssListWidget->currentItem(); + QListWidgetItem *item = currentSelection(); if(!item){ return; } QString name = QInputDialog::getText(this, tr("Rename Style Sheet"), tr("Style sheet name:"), QLineEdit::Normal, item->text(), 0); if(name.isEmpty()){ return; } - if(!m_ui->qssListWidget->findItems(name, Qt::MatchExactly).isEmpty()){ + if(!m_ui->qssListWidget->findItems(name, Qt::MatchExactly).isEmpty() || !m_ui->list_disabled->findItems(name, Qt::MatchExactly).isEmpty()){ QMessageBox::warning(this, tr("Error"), tr("The style sheet \"%1\" already exists").arg(name)); return; } @@ -145,3 +287,9 @@ void QSSPage::on_qssListWidget_customContextMenuRequested(const QPoint &pos){ QListWidgetItem *item = m_ui->qssListWidget->currentItem(); if(item && item->data(QSS_WRITABLE_ROLE).toBool()){ m_menu->exec(m_ui->qssListWidget->viewport()->mapToGlobal(pos)); } } + +QListWidgetItem* QSSPage::currentSelection(){ + QListWidgetItem *item = m_ui->qssListWidget->currentItem(); + if(item==0){ item = m_ui->list_disabled->currentItem(); } + return item; +} 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 5e924ad9..07df4ac2 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h @@ -15,24 +15,34 @@ class QSSPage : public TabPage Q_OBJECT public: - explicit QSSPage(QWidget *parent = 0); + explicit QSSPage(QWidget *parent = 0, bool desktop = false); ~QSSPage(); void writeSettings(); private slots: void on_qssListWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *); + void on_list_disabled_currentItemChanged(QListWidgetItem *current, QListWidgetItem *); void on_createButton_clicked(); + void on_copyButton_clicked(); void on_editButton_clicked(); void on_removeButton_clicked(); void on_renameButton_clicked(); void on_qssListWidget_customContextMenuRequested(const QPoint &pos); + void on_tool_enable_clicked(); + void on_tool_disable_clicked(); + void on_tool_priority_up_clicked(); + void on_tool_priority_down_clicked(); + private: void readSettings(); - void findStyleSheets(QStringList paths); + void findStyleSheets(QStringList paths, QStringList enabled); Ui::QSSPage *m_ui; QMenu *m_menu; + bool desktop_qss; + + QListWidgetItem* currentSelection(); }; #endif // QSSPAGE_H diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.ui b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.ui index 124b4dc6..def99dd0 100644 --- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.ui +++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.ui @@ -13,69 +13,301 @@ <property name="windowTitle"> <string notr="true">Style Sheet Editor</string> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="0"> - <widget class="QPushButton" name="createButton"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Create</string> - </property> - </widget> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QToolButton" name="tool_priority_up"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Increase Priority</string> + </property> + <property name="text"> + <string notr="true"/> + </property> + <property name="icon"> + <iconset theme="arrow-up"> + <normaloff>.</normaloff>.</iconset> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_priority_down"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Decrease priority of style</string> + </property> + <property name="text"> + <string notr="true"/> + </property> + <property name="icon"> + <iconset theme="arrow-down"> + <normaloff>.</normaloff>.</iconset> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QToolButton" name="tool_disable"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Disable Style</string> + </property> + <property name="text"> + <string>Disable</string> + </property> + <property name="icon"> + <iconset theme="arrow-right"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QLabel" name="label"> + <property name="font"> + <font> + <italic>true</italic> + </font> + </property> + <property name="text"> + <string>Enabled</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QListWidget" name="qssListWidget"> + <property name="contextMenuPolicy"> + <enum>Qt::CustomContextMenu</enum> + </property> + <property name="alternatingRowColors"> + <bool>false</bool> + </property> + <property name="resizeMode"> + <enum>QListView::Fixed</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="Line" name="line"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <widget class="QToolButton" name="tool_enable"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Enable</string> + </property> + <property name="icon"> + <iconset theme="arrow-left"> + <normaloff>.</normaloff>.</iconset> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QLabel" name="label_2"> + <property name="font"> + <font> + <italic>true</italic> + </font> + </property> + <property name="text"> + <string>Available</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QListWidget" name="list_disabled"/> + </item> + </layout> + </item> + </layout> </item> - <item row="1" column="3"> - <widget class="QPushButton" name="removeButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Remove</string> - </property> - </widget> - </item> - <item row="1" column="5"> - <spacer name="horizontalSpacer"> + <item> + <widget class="Line" name="line_2"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>189</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="0" column="0" colspan="6"> - <widget class="QListWidget" name="qssListWidget"> - <property name="contextMenuPolicy"> - <enum>Qt::CustomContextMenu</enum> - </property> - <property name="alternatingRowColors"> - <bool>true</bool> - </property> </widget> </item> - <item row="1" column="1"> - <widget class="QPushButton" name="editButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Edit</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QPushButton" name="renameButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Rename</string> - </property> - </widget> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QPushButton" name="createButton"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Create</string> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="copyButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Copy</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="editButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Edit</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="renameButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Rename</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="removeButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Remove</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>189</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> </item> </layout> </widget> |