aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core-utils/lumina-config/pages
diff options
context:
space:
mode:
authorKen Moore <ken@pcbsd.org>2016-09-22 16:41:42 -0400
committerKen Moore <ken@pcbsd.org>2016-09-22 16:41:42 -0400
commit82ebebfb8a5867b400c1df726a478bdcb9d7c005 (patch)
tree6c799a122fba9dc9068695f95e967e417f6b1636 /src-qt5/core-utils/lumina-config/pages
parentMerge remote-tracking branch 'origin/master' (diff)
downloadlumina-82ebebfb8a5867b400c1df726a478bdcb9d7c005.tar.gz
lumina-82ebebfb8a5867b400c1df726a478bdcb9d7c005.tar.bz2
lumina-82ebebfb8a5867b400c1df726a478bdcb9d7c005.zip
Large update to how XDGDesktop files are created/used.
This impacts almost all tools/utilities within Lumina - please test (passed internal tests so far). This cleans up a lot of the backend XDG compliance class, moving lots of functionality into child functions of the XDGDesktop class and ensuring that they get cleaned up more regularly/properly. This *seems* to make the desktop startup a lot faster, even if the overall memory savings are slight (so far).
Diffstat (limited to 'src-qt5/core-utils/lumina-config/pages')
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_autostart.cpp43
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_autostart.h2
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp196
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.h4
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_interface_desktop.cpp28
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_interface_desktop.h2
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_interface_menu.cpp20
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_interface_menu.h2
8 files changed, 112 insertions, 185 deletions
diff --git a/src-qt5/core-utils/lumina-config/pages/page_autostart.cpp b/src-qt5/core-utils/lumina-config/pages/page_autostart.cpp
index b7c52fb7..371791e9 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_autostart.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_autostart.cpp
@@ -32,19 +32,19 @@ page_autostart::~page_autostart(){
// PUBLIC SLOTS
//================
void page_autostart::SaveSettings(){
- QList<XDGDesktop> STARTAPPS = LXDG::findAutoStartFiles(true); //also want invalid/disabled items
+ QList<XDGDesktop*> STARTAPPS = LXDG::findAutoStartFiles(true); //also want invalid/disabled items
//bool newstartapps = false;
for(int i=0; i<ui->list_session_start->count(); i++){
QString file = ui->list_session_start->item(i)->whatsThis();
bool enabled = ui->list_session_start->item(i)->checkState()==Qt::Checked;
bool found = false;
for(int i=0; i<STARTAPPS.length(); i++){
- if(STARTAPPS[i].filePath==file){
+ if(STARTAPPS[i]->filePath==file){
found = true;
- if(enabled != !STARTAPPS[i].isHidden){
+ if(enabled != !STARTAPPS[i]->isHidden){
//value is different
- qDebug() << "Setting Autostart:" << enabled << STARTAPPS[i].filePath;
- LXDG::setAutoStarted(enabled, STARTAPPS[i]);
+ qDebug() << "Setting Autostart:" << enabled << STARTAPPS[i]->filePath;
+ STARTAPPS[i]->setAutoStarted(enabled);
}
break;
}
@@ -55,25 +55,29 @@ void page_autostart::SaveSettings(){
LXDG::setAutoStarted(enabled, file);
//newstartapps = true;
}
- }
+ } //end loop over GUI items
+ //Now cleanup all the STARTAPPS data
+ for(int i=0; STARTAPPS.length(); i++){ STARTAPPS[i]->deleteLater(); }
}
void page_autostart::LoadSettings(int){
emit HasPendingChanges(false);
emit ChangePageTitle( tr("Startup Services") );
- QList<XDGDesktop> STARTAPPS = LXDG::findAutoStartFiles(true); //also want invalid/disabled items
+ QList<XDGDesktop*> STARTAPPS = LXDG::findAutoStartFiles(true); //also want invalid/disabled items
//qDebug() << "StartApps:";
ui->list_session_start->clear();
for(int i=0; i<STARTAPPS.length(); i++){
//qDebug() << STARTAPPS[i].filePath +" -> " +STARTAPPS[i].name << STARTAPPS[i].isHidden;
- if( !LXDG::checkValidity(STARTAPPS[i],false) || !QFile::exists(STARTAPPS[i].filePath) ){ continue; }
- QListWidgetItem *it = new QListWidgetItem( LXDG::findIcon(STARTAPPS[i].icon,"application-x-executable"), STARTAPPS[i].name );
- it->setWhatsThis(STARTAPPS[i].filePath); //keep the file location
- it->setToolTip(STARTAPPS[i].comment);
- if(STARTAPPS[i].isHidden){ it->setCheckState( Qt::Unchecked); }
+ if( !STARTAPPS[i]->isValid() || !QFile::exists(STARTAPPS[i]->filePath) ){ continue; }
+ QListWidgetItem *it = new QListWidgetItem( LXDG::findIcon(STARTAPPS[i]->icon,"application-x-executable"), STARTAPPS[i]->name );
+ it->setWhatsThis(STARTAPPS[i]->filePath); //keep the file location
+ it->setToolTip(STARTAPPS[i]->comment);
+ if(STARTAPPS[i]->isHidden){ it->setCheckState( Qt::Unchecked); }
else{it->setCheckState( Qt::Checked); }
ui->list_session_start->addItem(it);
}
+ //Now cleanup all the STARTAPPS data
+ for(int i=0; STARTAPPS.length(); i++){ STARTAPPS[i]->deleteLater(); }
}
void page_autostart::updateIcons(){
@@ -85,17 +89,15 @@ void page_autostart::updateIcons(){
//=================
// PRIVATE
//=================
-XDGDesktop page_autostart::getSysApp(bool allowreset){
- AppDialog dlg(this, LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ) );
+QString page_autostart::getSysApp(bool allowreset){
+ AppDialog dlg(this);
dlg.allowReset(allowreset);
dlg.exec();
- XDGDesktop desk;
if(dlg.appreset && allowreset){
- desk.filePath = "reset"; //special internal flag
+ return "reset";
}else{
- desk = dlg.appselected;
+ return dlg.appselected;
}
- return desk;
}
//=================
@@ -109,8 +111,9 @@ void page_autostart::rmsessionstartitem(){
void page_autostart::addsessionstartapp(){
//Prompt for the application to start
- XDGDesktop desk = getSysApp(false); //no reset
- if(desk.filePath.isEmpty()){ return; } //cancelled
+ QString app = getSysApp(false); //no reset
+ if(app.isEmpty()){ return; } //cancelled
+ XDGDesktop desk(app);
QListWidgetItem *it = new QListWidgetItem( LXDG::findIcon(desk.icon,""), desk.name );
it->setWhatsThis(desk.filePath);
it->setToolTip(desk.comment);
diff --git a/src-qt5/core-utils/lumina-config/pages/page_autostart.h b/src-qt5/core-utils/lumina-config/pages/page_autostart.h
index 88f1ef94..60868598 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_autostart.h
+++ b/src-qt5/core-utils/lumina-config/pages/page_autostart.h
@@ -27,7 +27,7 @@ public slots:
private:
Ui::page_autostart *ui;
- XDGDesktop getSysApp(bool allowreset);
+ QString getSysApp(bool allowreset);
private slots:
void rmsessionstartitem();
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
index e55beba6..b2a0896c 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
@@ -48,9 +48,8 @@ void page_defaultapps::LoadSettings(int){
if(tmp.isEmpty()){ tmp = "lumina-fm"; }
if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
+ XDGDesktop file(tmp);
+ if(file.type == XDGDesktop::BAD){
//Might be a binary - just print out the raw "path"
ui->tool_default_filemanager->setText(tmp.section("/",-1));
ui->tool_default_filemanager->setIcon( LXDG::findIcon("application-x-executable","") );
@@ -70,9 +69,8 @@ void page_defaultapps::LoadSettings(int){
tmp =LXDG::findDefaultAppForMime("application/terminal"); //sessionsettings->value("default-terminal", "xterm").toString();
if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
+ XDGDesktop file(tmp);
+ if(file.type == XDGDesktop::BAD){
//Might be a binary - just print out the raw "path"
ui->tool_default_terminal->setText(tmp.section("/",-1));
ui->tool_default_terminal->setIcon( LXDG::findIcon("application-x-executable","") );
@@ -92,9 +90,8 @@ void page_defaultapps::LoadSettings(int){
tmp = LXDG::findDefaultAppForMime("x-scheme-handler/http"); //appsettings->value("default/webbrowser", "").toString();
if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
+ XDGDesktop file(tmp);
+ if(file.type == XDGDesktop::BAD){
//Might be a binary - just print out the raw "path"
ui->tool_default_webbrowser->setText(tmp.section("/",-1));
ui->tool_default_webbrowser->setIcon( LXDG::findIcon("application-x-executable","") );
@@ -114,9 +111,8 @@ void page_defaultapps::LoadSettings(int){
tmp = LXDG::findDefaultAppForMime("application/email"); //appsettings->value("default/email", "").toString();
if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
+ XDGDesktop file(tmp);
+ if(file.type == XDGDesktop::BAD){
//Might be a binary - just print out the raw "path"
ui->tool_default_email->setText(tmp.section("/",-1));
ui->tool_default_email->setIcon( LXDG::findIcon("application-x-executable","") );
@@ -165,9 +161,8 @@ void page_defaultapps::LoadSettings(int){
//Now load the default (if there is one)
it->setWhatsThis(1,def); //save for later
if(def.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(def, ok);
- if(!ok || file.filePath.isEmpty()){
+ XDGDesktop file(def);
+ if(file.type == XDGDesktop::BAD){
//Might be a binary - just print out the raw "path"
it->setText(1,def.section("/",-1));
it->setIcon(1, LXDG::findIcon("application-x-executable","") );
@@ -199,150 +194,80 @@ void page_defaultapps::updateIcons(){
//=================
// PRIVATE
//=================
-XDGDesktop page_defaultapps::getSysApp(bool allowreset){
- AppDialog dlg(this, LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ) );
+QString page_defaultapps::getSysApp(bool allowreset){
+ AppDialog dlg(this);
dlg.allowReset(allowreset);
dlg.exec();
- XDGDesktop desk;
if(dlg.appreset && allowreset){
- desk.filePath = "reset"; //special internal flag
+ return "reset";
}else{
- desk = dlg.appselected;
+ return dlg.appselected;
}
- return desk;
}
-//=================
-// PRIVATE SLOTS
-//=================
-void page_defaultapps::changeDefaultBrowser(){
- //Prompt for the new app
- XDGDesktop desk = getSysApp(true);
- if(desk.filePath.isEmpty()){ return; }//nothing selected
- if(desk.filePath=="reset"){
- desk.filePath="";
- }
- //save the new app setting and adjust the button appearance
- //appsettings->setValue("default/webbrowser", desk.filePath);
- LXDG::setDefaultAppForMime("x-scheme-handler/http", desk.filePath.section("/",-1));
- LXDG::setDefaultAppForMime("x-scheme-handler/https", desk.filePath.section("/",-1));
- QString tmp = desk.filePath;
- if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
+void page_defaultapps::updateDefaultButton(QToolButton *button, QString app){
+ if(app.endsWith(".desktop")){
+ XDGDesktop file(app);
+ if(file.type == XDGDesktop::BAD){
//Might be a binary - just print out the raw "path"
- ui->tool_default_webbrowser->setText(tmp.section("/",-1));
- ui->tool_default_webbrowser->setIcon( LXDG::findIcon("application-x-executable","") );
+ button->setText(app.section("/",-1));
+ button->setIcon( LXDG::findIcon("application-x-executable","") );
}else{
- ui->tool_default_webbrowser->setText(desk.name);
- ui->tool_default_webbrowser->setIcon(LXDG::findIcon(desk.icon,"") );
+ button->setText(file.name);
+ button->setIcon(LXDG::findIcon(file.icon,"") );
}
- }else if(tmp.isEmpty()){
- ui->tool_default_webbrowser->setText(tr("Click to Set"));
- ui->tool_default_webbrowser->setIcon( LXDG::findIcon("system-help","") );
+ }else if(app.isEmpty()){
+ button->setText(tr("Click to Set"));
+ button->setIcon( LXDG::findIcon("system-help","") );
}else{
//Might be a binary - just print out the raw "path"
- ui->tool_default_webbrowser->setText(tmp.section("/",-1));
- ui->tool_default_webbrowser->setIcon( LXDG::findIcon("application-x-executable","") );
+ button->setText(app.section("/",-1));
+ button->setIcon( LXDG::findIcon("application-x-executable","") );
}
}
+//=================
+// PRIVATE SLOTS
+//=================
+void page_defaultapps::changeDefaultBrowser(){
+ //Prompt for the new app
+ QString app = getSysApp(true);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app.clear(); }
+ //save the new app setting and adjust the button appearance
+ LXDG::setDefaultAppForMime("x-scheme-handler/http", app.section("/",-1));
+ LXDG::setDefaultAppForMime("x-scheme-handler/https", app.section("/",-1));
+ updateDefaultButton(ui->tool_default_webbrowser, app);
+}
+
void page_defaultapps::changeDefaultEmail(){
//Prompt for the new app
- XDGDesktop desk = getSysApp(true); //allow reset to default
- if(desk.filePath.isEmpty()){ return; }//nothing selected
- if(desk.filePath=="reset"){
- desk.filePath="";
- }
+ QString app = getSysApp(true);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app.clear(); }
//save the new app setting and adjust the button appearance
- LXDG::setDefaultAppForMime("application/email",desk.filePath);
- // appsettings->setValue("default/email", desk.filePath);
- QString tmp = desk.filePath;
- if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
- //Might be a binary - just print out the raw "path"
- ui->tool_default_email->setText(tmp.section("/",-1));
- ui->tool_default_email->setIcon( LXDG::findIcon("application-x-executable","") );
- }else{
- ui->tool_default_email->setText(file.name);
- ui->tool_default_email->setIcon(LXDG::findIcon(file.icon,"") );
- }
- }else if(tmp.isEmpty()){
- ui->tool_default_email->setText(tr("Click to Set"));
- ui->tool_default_email->setIcon( LXDG::findIcon("system-help","") );
- }else{
- //Might be a binary - just print out the raw "path"
- ui->tool_default_email->setText(tmp.section("/",-1));
- ui->tool_default_email->setIcon( LXDG::findIcon("application-x-executable","") );
- }
+ LXDG::setDefaultAppForMime("application/email",app.section("/",-1));
+ updateDefaultButton(ui->tool_default_email, app);
}
void page_defaultapps::changeDefaultFileManager(){
//Prompt for the new app
- XDGDesktop desk = getSysApp(true);
- if(desk.filePath.isEmpty()){ return; }//nothing selected
- if(desk.filePath=="reset"){
- desk.filePath="lumina-fm";
- }
+ QString app = getSysApp(true);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app = "lumina-fm"; }
//save the new app setting and adjust the button appearance
- //appsettings->setValue("default/directory", desk.filePath);
- //sessionsettings->setValue("default-filemanager", desk.filePath);
- LXDG::setDefaultAppForMime("inode/directory", desk.filePath.section("/",-1));
- QString tmp = desk.filePath;
- if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
- //Might be a binary - just print out the raw "path"
- ui->tool_default_filemanager->setText(tmp.section("/",-1));
- ui->tool_default_filemanager->setIcon( LXDG::findIcon("application-x-executable","") );
- }else{
- ui->tool_default_filemanager->setText(file.name);
- ui->tool_default_filemanager->setIcon(LXDG::findIcon(file.icon,"") );
- }
- }else if(tmp.isEmpty()){
- ui->tool_default_filemanager->setText(tr("Click to Set"));
- ui->tool_default_filemanager->setIcon( LXDG::findIcon("system-help","") );
- }else{
- //Might be a binary - just print out the raw "path"
- ui->tool_default_filemanager->setText(tmp.section("/",-1));
- ui->tool_default_filemanager->setIcon( LXDG::findIcon("application-x-executable","") );
- }
+ LXDG::setDefaultAppForMime("inode/directory", app.section("/",-1));
+ updateDefaultButton(ui->tool_default_filemanager, app);
}
void page_defaultapps::changeDefaultTerminal(){
//Prompt for the new app
- XDGDesktop desk = getSysApp(true);
- if(desk.filePath.isEmpty()){ return; }//nothing selected
- if(desk.filePath=="reset"){
- desk.filePath="xterm";
- }
+ QString app = getSysApp(true);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app = "xterm"; }
//save the new app setting and adjust the button appearance
- LXDG::setDefaultAppForMime("application/terminal",desk.filePath);
- //sessionsettings->setValue("default-terminal", desk.filePath);
- QString tmp = desk.filePath;
- if(tmp.endsWith(".desktop")){
- bool ok = false;
- XDGDesktop file = LXDG::loadDesktopFile(tmp, ok);
- if(!ok || file.filePath.isEmpty()){
- //Might be a binary - just print out the raw "path"
- ui->tool_default_terminal->setText(tmp.section("/",-1));
- ui->tool_default_terminal->setIcon( LXDG::findIcon("application-x-executable","") );
- }else{
- ui->tool_default_terminal->setText(file.name);
- ui->tool_default_terminal->setIcon(LXDG::findIcon(file.icon,"") );
- }
- }else if(tmp.isEmpty()){
- ui->tool_default_terminal->setText(tr("Click to Set"));
- ui->tool_default_terminal->setIcon( LXDG::findIcon("system-help","") );
- }else{
- //Might be a binary - just print out the raw "path"
- ui->tool_default_terminal->setText(tmp.section("/",-1));
- ui->tool_default_terminal->setIcon( LXDG::findIcon("application-x-executable","") );
- }
+ LXDG::setDefaultAppForMime("application/terminal", app.section("/",-1) );
+ updateDefaultButton(ui->tool_default_terminal, app);
}
void page_defaultapps::cleardefaultitem(){
@@ -374,14 +299,15 @@ void page_defaultapps::setdefaultitem(){
}
if(list.isEmpty()){ list << it; } //just do the current item
//Prompt for which application to use
- XDGDesktop desk = getSysApp(false); //no "reset" option
- if(desk.filePath.isEmpty()){ return; }//nothing selected
+ QString app = getSysApp(false); //no "reset" option
+ if(app.isEmpty()){ return; }//nothing selected
//Now set the items
for(int i=0; i<list.length(); i++){
//Set it in the back end
- LXDG::setDefaultAppForMime(list[i]->whatsThis(0), desk.filePath);
+ LXDG::setDefaultAppForMime(list[i]->whatsThis(0), app.section("/",-1));
//Set it in the UI
- list[i]->setWhatsThis(1,desk.filePath); //app path
+ XDGDesktop desk(app);
+ list[i]->setWhatsThis(1,app); //app path
list[i]->setIcon(1,LXDG::findIcon(desk.icon,"")); //reset the icon
list[i]->setText(1,desk.name); //reset the name
}
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
index afe99d4b..f80ea1ab 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
@@ -27,7 +27,9 @@ public slots:
private:
Ui::page_defaultapps *ui;
- XDGDesktop getSysApp(bool allowreset);
+ QString getSysApp(bool allowreset);
+
+ void updateDefaultButton(QToolButton *button, QString app);
private slots:
//Simple defaults tab
diff --git a/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.cpp b/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.cpp
index 7a52959a..fdcde804 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.cpp
@@ -69,9 +69,8 @@ void page_interface_desktop::LoadSettings(int screennum){
dplugs[i] = dplugs[i].section("---",0,0);
}
if(dplugs[i].startsWith("applauncher::")){
- bool ok = false;
- XDGDesktop app = LXDG::loadDesktopFile(dplugs[i].section("::",1,50), ok);
- if(!ok){ continue; } //invalid for some reason
+ XDGDesktop app(dplugs[i].section("::",1,50));
+ if(app.type == XDGDesktop::BAD){ continue; } //invalid for some reason
//Now fill the item with the necessary info
it->setText(app.name);
it->setIcon(LXDG::findIcon(app.icon,"") );
@@ -97,17 +96,15 @@ void page_interface_desktop::updateIcons(){
//=================
// PRIVATE
//=================
-XDGDesktop page_interface_desktop::getSysApp(bool allowreset){
- AppDialog dlg(this, LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ) );
+QString page_interface_desktop::getSysApp(bool allowreset){
+ AppDialog dlg(this);
dlg.allowReset(allowreset);
dlg.exec();
- XDGDesktop desk;
if(dlg.appreset && allowreset){
- desk.filePath = "reset"; //special internal flag
+ return "reset";
}else{
- desk = dlg.appselected;
+ return dlg.appselected;
}
- return desk;
}
//=================
@@ -122,14 +119,15 @@ void page_interface_desktop::deskplugadded(){
QListWidgetItem *it = new QListWidgetItem();
if(newplug=="applauncher"){
//Prompt for the application to add
- XDGDesktop app = getSysApp();
- if(app.filePath.isEmpty()){ return; } //cancelled
- newplug.append("::"+app.filePath);
+ QString app = getSysApp();
+ if(app.isEmpty()){ return; } //cancelled
+ newplug.append("::"+app);
+ XDGDesktop desk(app);
//Now fill the item with the necessary info
it->setWhatsThis(newplug);
- it->setText(app.name);
- it->setIcon(LXDG::findIcon(app.icon,"") );
- it->setToolTip(app.comment);
+ it->setText(desk.name);
+ it->setIcon(LXDG::findIcon(desk.icon,"") );
+ it->setToolTip(desk.comment);
}else{
//Load the info for this plugin
LPI info = PINFO->desktopPluginInfo(newplug);
diff --git a/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.h b/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.h
index e212182a..cfeb7f8c 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.h
+++ b/src-qt5/core-utils/lumina-config/pages/page_interface_desktop.h
@@ -33,7 +33,7 @@ private:
LPlugins *PINFO;
//Get an application on the system
- XDGDesktop getSysApp(bool allowreset = false);
+ QString getSysApp(bool allowreset = false);
private slots:
void deskplugadded();
diff --git a/src-qt5/core-utils/lumina-config/pages/page_interface_menu.cpp b/src-qt5/core-utils/lumina-config/pages/page_interface_menu.cpp
index d211d380..370980d2 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_interface_menu.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_interface_menu.cpp
@@ -53,9 +53,8 @@ QStringList items = settings.value("menu/itemlist", QStringList() ).toStringList
ui->list_menu->clear();
for(int i=0; i<items.length(); i++){
if(items[i].startsWith("app::::")){
- bool ok = false;
- XDGDesktop desk = LXDG::loadDesktopFile(items[i].section("::::",1,1), ok);
- if(!ok){ continue; } //invalid application file (no longer installed?)
+ XDGDesktop desk(items[i].section("::::",1,1));
+ if(desk.type == XDGDesktop::BAD){ continue; } //invalid application file (no longer installed?)
QListWidgetItem *item = new QListWidgetItem();
item->setWhatsThis( items[i] );
item->setIcon( LXDG::findIcon(desk.icon) );
@@ -99,17 +98,15 @@ void page_interface_menu::updateIcons(){
//=================
// PRIVATE
//=================
-XDGDesktop page_interface_menu::getSysApp(bool allowreset){
- AppDialog dlg(this, LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ) );
+QString page_interface_menu::getSysApp(bool allowreset){
+ AppDialog dlg(this);
dlg.allowReset(allowreset);
dlg.exec();
- XDGDesktop desk;
if(dlg.appreset && allowreset){
- desk.filePath = "reset"; //special internal flag
+ return "reset";
}else{
- desk = dlg.appselected;
+ return dlg.appselected;
}
- return desk;
}
//=================
@@ -127,9 +124,10 @@ void page_interface_menu::addmenuplugin(){
if(info.ID=="app"){
//Need to prompt for the exact application to add to the menu
// Note: whatsThis() format: "app::::< *.desktop file path >"
- XDGDesktop desk = getSysApp();
- if(desk.filePath.isEmpty()){ return; }//nothing selected
+ QString app = getSysApp();
+ if(app.isEmpty()){ return; }//nothing selected
//Create the item for the list
+ XDGDesktop desk(app);
it = new QListWidgetItem(LXDG::findIcon(desk.icon,""), desk.name );
it->setWhatsThis(info.ID+"::::"+desk.filePath);
it->setToolTip( desk.comment );
diff --git a/src-qt5/core-utils/lumina-config/pages/page_interface_menu.h b/src-qt5/core-utils/lumina-config/pages/page_interface_menu.h
index f2a53007..16f80385 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_interface_menu.h
+++ b/src-qt5/core-utils/lumina-config/pages/page_interface_menu.h
@@ -29,7 +29,7 @@ private:
Ui::page_interface_menu *ui;
LPlugins *PINFO;
//Get an application on the system
- XDGDesktop getSysApp(bool allowreset = false);
+ QString getSysApp(bool allowreset = false);
private slots:
void addmenuplugin();
bgstack15