aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core-utils
diff options
context:
space:
mode:
authorKen Moore <moorekou@gmail.com>2016-06-27 15:41:10 -0400
committerKen Moore <moorekou@gmail.com>2016-06-27 15:41:10 -0400
commit8e491cc5f4f300738b5c3d29e5067392014953d6 (patch)
tree433a86e267d7f80fdfb0d1fcf869a47400788c19 /src-qt5/core-utils
parentAllow the "save file as" option to always be available (not dependant on chan... (diff)
downloadlumina-8e491cc5f4f300738b5c3d29e5067392014953d6.tar.gz
lumina-8e491cc5f4f300738b5c3d29e5067392014953d6.tar.bz2
lumina-8e491cc5f4f300738b5c3d29e5067392014953d6.zip
Get the default apps page all converted over to the new UI.
Diffstat (limited to 'src-qt5/core-utils')
-rw-r--r--src-qt5/core-utils/lumina-config/pages/getPage.h3
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp430
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.h45
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui19
-rw-r--r--src-qt5/core-utils/lumina-config/pages/pages.pri12
5 files changed, 495 insertions, 14 deletions
diff --git a/src-qt5/core-utils/lumina-config/pages/getPage.h b/src-qt5/core-utils/lumina-config/pages/getPage.h
index 33b0e77a..47bb276f 100644
--- a/src-qt5/core-utils/lumina-config/pages/getPage.h
+++ b/src-qt5/core-utils/lumina-config/pages/getPage.h
@@ -29,6 +29,7 @@ static QList<PAGEINFO> KnownPages(){
list << PageInfo("wallpaper", QObject::tr("Change Wallpaper"), QObject::tr("Wallpaper Settings"), "preferences-desktop-wallpaper",QObject::tr("Change background image(s)"), "appearance", QStringList(), QStringList() << "background" << "wallpaper" << "color" << "image");
list << PageInfo("theme", QObject::tr("Change Desktop Theme"), QObject::tr("Theme Settings"), "preferences-desktop-theme",QObject::tr("Change interface fonts and colors"), "appearance", QStringList(), QStringList() << "background" << "interface" << "color" << "theme" << "plugins");
list << PageInfo("autostart", QObject::tr("Startup Services and Applications"), QObject::tr("Startup Settings"), "preferences-system-session-services",QObject::tr("Automatically start applications or services"), "session", QStringList(), QStringList() << "apps" << "autostart" << "services" << "xdg" << "startup" << "session");
+ list << PageInfo("defaultapps", QObject::tr("Default Applications for File Type"), QObject::tr("Mimetype Settings"), "preferences-desktop-filetype-association",QObject::tr("Change default applications"), "apps", QStringList(), QStringList() << "apps" << "default" << "services" << "xdg" << "session");
return list;
}
@@ -37,12 +38,14 @@ static QList<PAGEINFO> KnownPages(){
#include "page_wallpaper.h"
#include "page_theme.h"
#include "page_autostart.h"
+#include "page_defaultapps.h"
static PageWidget* GetNewPage(QString id, QWidget *parent){
//Find the page that matches this "id"
if(id=="wallpaper"){ return new page_wallpaper(parent); }
else if(id=="theme"){ return new page_theme(parent); }
else if(id=="autostart"){ return new page_autostart(parent); }
+ else if(id=="defaultapps"){ return new page_defaultapps(parent); }
//Return the main control_panel page as the fallback/default
return new page_main(parent);
}
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
new file mode 100644
index 00000000..e55beba6
--- /dev/null
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
@@ -0,0 +1,430 @@
+//===========================================
+// Lumina Desktop Source Code
+// Copyright (c) 2016, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#include "page_defaultapps.h"
+#include "ui_page_defaultapps.h"
+#include "getPage.h"
+#include "../AppDialog.h"
+
+//==========
+// PUBLIC
+//==========
+page_defaultapps::page_defaultapps(QWidget *parent) : PageWidget(parent), ui(new Ui::page_defaultapps()){
+ ui->setupUi(this);
+
+ connect(ui->tool_default_filemanager, SIGNAL(clicked()), this, SLOT(changeDefaultFileManager()) );
+ connect(ui->tool_default_terminal, SIGNAL(clicked()), this, SLOT(changeDefaultTerminal()) );
+ connect(ui->tool_default_webbrowser, SIGNAL(clicked()), this, SLOT(changeDefaultBrowser()) );
+ connect(ui->tool_default_email, SIGNAL(clicked()), this, SLOT(changeDefaultEmail()) );
+ connect(ui->tool_defaults_clear, SIGNAL(clicked()), this, SLOT(cleardefaultitem()) );
+ connect(ui->tool_defaults_set, SIGNAL(clicked()), this, SLOT(setdefaultitem()) );
+ connect(ui->tool_defaults_setbin, SIGNAL(clicked()), this, SLOT(setdefaultbinary()) );
+ connect(ui->tree_defaults, SIGNAL(itemSelectionChanged()), this, SLOT(checkdefaulticons()) );
+ updateIcons();
+ ui->tabWidget_apps->setCurrentWidget(ui->tab_auto);
+}
+
+page_defaultapps::~page_defaultapps(){
+
+}
+
+//================
+// PUBLIC SLOTS
+//================
+void page_defaultapps::SaveSettings(){
+
+}
+
+void page_defaultapps::LoadSettings(int){
+ emit HasPendingChanges(false);
+ emit ChangePageTitle( tr("Default Applications") );
+
+//First load the lumina-open specific defaults
+ // - Default File Manager
+ QString tmp = LXDG::findDefaultAppForMime("inode/directory");
+ 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()){
+ //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","") );
+ }
+ // - Default Terminal
+ 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()){
+ //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","") );
+ }
+ // - Default Web Browser
+ 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()){
+ //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","") );
+ }else{
+ ui->tool_default_webbrowser->setText(file.name);
+ ui->tool_default_webbrowser->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{
+ //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","") );
+ }
+ // - Default Email Client
+ 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()){
+ //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","") );
+ }
+
+ //Now load the XDG mime defaults
+ ui->tree_defaults->clear();
+ QStringList defMimeList = LXDG::listFileMimeDefaults();
+ //qDebug() << "Mime List:\n" << defMimeList.join("\n");
+ defMimeList.sort(); //sort by group/mime
+ //Now fill the tree by group/mime
+ QTreeWidgetItem *group = new QTreeWidgetItem(0); //nothing at the moment
+ QString ccat;
+ for(int i=0; i<defMimeList.length(); i++){
+ //Get the info from this entry
+ QString mime = defMimeList[i].section("::::",0,0);
+ QString cat = mime.section("/",0,0);
+ QString extlist = defMimeList[i].section("::::",1,1);
+ QString def = defMimeList[i].section("::::",2,2);
+ QString comment = defMimeList[i].section("::::",3,50);
+ //Now check if this is a new category
+ if(ccat!=cat){
+ //New group
+ group = new QTreeWidgetItem(0);
+ group->setText(0, cat); //add translations for known/common groups later
+ ui->tree_defaults->addTopLevelItem(group);
+ ccat = cat;
+ }
+ //Now create the entry
+ QTreeWidgetItem *it = new QTreeWidgetItem();
+ it->setWhatsThis(0,mime); // full mimetype
+ it->setText(0, QString(tr("%1 (%2)")).arg(mime.section("/",-1), extlist) );
+ it->setText(2,comment);
+ it->setToolTip(0, comment); it->setToolTip(1,comment);
+ //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()){
+ //Might be a binary - just print out the raw "path"
+ it->setText(1,def.section("/",-1));
+ it->setIcon(1, LXDG::findIcon("application-x-executable","") );
+ }else{
+ it->setText(1, file.name);
+ it->setIcon(1, LXDG::findIcon(file.icon,"") );
+ }
+ }else if(!def.isEmpty()){
+ //Binary/Other default
+ it->setText(1, def.section("/",-1));
+ it->setIcon(1, LXDG::findIcon("application-x-executable","") );
+ }
+ group->addChild(it);
+ }
+
+ ui->tree_defaults->sortItems(0,Qt::AscendingOrder);
+
+ checkdefaulticons();
+}
+
+void page_defaultapps::updateIcons(){
+ ui->tool_defaults_clear->setIcon( LXDG::findIcon("edit-clear","") );
+ ui->tool_defaults_set->setIcon( LXDG::findIcon("system-run","") );
+ ui->tool_defaults_setbin->setIcon( LXDG::findIcon("application-x-executable","") );
+ ui->tabWidget_apps->setTabIcon( ui->tabWidget_apps->indexOf(ui->tab_auto), LXDG::findIcon("system-run", "") );
+ ui->tabWidget_apps->setTabIcon( ui->tabWidget_apps->indexOf(ui->tab_defaults), LXDG::findIcon("preferences-desktop-filetype-association", "") );
+}
+
+//=================
+// PRIVATE
+//=================
+XDGDesktop page_defaultapps::getSysApp(bool allowreset){
+ AppDialog dlg(this, LXDG::sortDesktopNames( LXDG::systemDesktopFiles() ) );
+ dlg.allowReset(allowreset);
+ dlg.exec();
+ XDGDesktop desk;
+ if(dlg.appreset && allowreset){
+ desk.filePath = "reset"; //special internal flag
+ }else{
+ desk = 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()){
+ //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","") );
+ }else{
+ ui->tool_default_webbrowser->setText(desk.name);
+ ui->tool_default_webbrowser->setIcon(LXDG::findIcon(desk.icon,"") );
+ }
+ }else if(tmp.isEmpty()){
+ ui->tool_default_webbrowser->setText(tr("Click to Set"));
+ ui->tool_default_webbrowser->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","") );
+ }
+}
+
+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="";
+ }
+ //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","") );
+ }
+}
+
+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";
+ }
+ //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","") );
+ }
+}
+
+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";
+ }
+ //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","") );
+ }
+}
+
+void page_defaultapps::cleardefaultitem(){
+ QTreeWidgetItem *it = ui->tree_defaults->currentItem();
+ if(it==0){ return; } //no item selected
+ QList<QTreeWidgetItem*> list;
+ for(int i=0; i<it->childCount(); i++){
+ list << it->child(i);
+ }
+ if(list.isEmpty()){ list << it; } //just do the current item
+ //Now clear the items
+ for(int i=0; i<list.length(); i++){
+ //Clear it in the back end
+ LXDG::setDefaultAppForMime(list[i]->whatsThis(0), "");
+ //Now clear it in the UI
+ list[i]->setWhatsThis(1,""); //clear the app path
+ list[i]->setIcon(1,QIcon()); //clear the icon
+ list[i]->setText(1,""); //clear the name
+ }
+
+}
+
+void page_defaultapps::setdefaultitem(){
+ QTreeWidgetItem *it = ui->tree_defaults->currentItem();
+ if(it==0){ return; } //no item selected
+ QList<QTreeWidgetItem*> list;
+ for(int i=0; i<it->childCount(); i++){
+ list << it->child(i);
+ }
+ 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
+ //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);
+ //Set it in the UI
+ list[i]->setWhatsThis(1,desk.filePath); //app path
+ list[i]->setIcon(1,LXDG::findIcon(desk.icon,"")); //reset the icon
+ list[i]->setText(1,desk.name); //reset the name
+ }
+
+}
+
+void page_defaultapps::setdefaultbinary(){
+ QTreeWidgetItem *it = ui->tree_defaults->currentItem();
+ if(it==0){ return; } //no item selected
+ QList<QTreeWidgetItem*> list;
+ for(int i=0; i<it->childCount(); i++){
+ list << it->child(i);
+ }
+ if(list.isEmpty()){ list << it; } //just do the current item
+ //Prompt for which binary to use
+ QFileDialog dlg(this);
+ //dlg.setFilter(QDir::Executable | QDir::Files); //Does not work! Filters executable files as well as breaks browsing capabilities
+ dlg.setFileMode(QFileDialog::ExistingFile);
+ dlg.setDirectory( LOS::AppPrefix()+"bin" );
+ dlg.setWindowTitle(tr("Select Binary"));
+ if( !dlg.exec() || dlg.selectedFiles().isEmpty() ){
+ return; //cancelled
+ }
+ QString path = dlg.selectedFiles().first();
+ //Make sure it is executable
+ if( !QFileInfo(path).isExecutable()){
+ QMessageBox::warning(this, tr("Invalid Binary"), tr("The selected binary is not executable!"));
+ return;
+ }
+ //Now set the items
+ for(int i=0; i<list.length(); i++){
+ //Set it in the back end
+ LXDG::setDefaultAppForMime(list[i]->whatsThis(0), path);
+ //Set it in the UI
+ list[i]->setWhatsThis(1,path); //app path
+ list[i]->setIcon(1,LXDG::findIcon("application-x-executable","")); //clear the icon
+ list[i]->setText(1,path.section("/",-1)); //clear the name
+ }
+}
+
+void page_defaultapps::checkdefaulticons(){
+ QTreeWidgetItem *it = ui->tree_defaults->currentItem();
+ ui->tool_defaults_set->setEnabled(it!=0);
+ ui->tool_defaults_clear->setEnabled(it!=0);
+ ui->tool_defaults_setbin->setEnabled(it!=0);
+}
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
new file mode 100644
index 00000000..afe99d4b
--- /dev/null
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
@@ -0,0 +1,45 @@
+//===========================================
+// Lumina Desktop Source Code
+// Copyright (c) 2016, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#ifndef _LUMINA_CONFIG_PAGE_DEFAULTAPPS_H
+#define _LUMINA_CONFIG_PAGE_DEFAULTAPPS_H
+#include "../globals.h"
+#include "PageWidget.h"
+
+namespace Ui{
+ class page_defaultapps;
+};
+
+class page_defaultapps : public PageWidget{
+ Q_OBJECT
+public:
+ page_defaultapps(QWidget *parent);
+ ~page_defaultapps();
+
+public slots:
+ void SaveSettings();
+ void LoadSettings(int screennum);
+ void updateIcons();
+
+private:
+ Ui::page_defaultapps *ui;
+
+ XDGDesktop getSysApp(bool allowreset);
+
+private slots:
+ //Simple defaults tab
+ void changeDefaultBrowser();
+ void changeDefaultEmail();
+ void changeDefaultFileManager();
+ void changeDefaultTerminal();
+ //Advanced defaults tab
+ void cleardefaultitem();
+ void setdefaultitem();
+ void setdefaultbinary();
+ void checkdefaulticons();
+
+};
+#endif
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui
index 16e65bdf..ef72c4f1 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.ui
@@ -15,25 +15,28 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
- <number>0</number>
+ <number>6</number>
</property>
<property name="topMargin">
- <number>0</number>
+ <number>6</number>
</property>
<property name="rightMargin">
- <number>0</number>
+ <number>6</number>
</property>
<property name="bottomMargin">
- <number>0</number>
+ <number>6</number>
</property>
<item>
<widget class="QTabWidget" name="tabWidget_apps">
<property name="currentIndex">
- <number>0</number>
+ <number>1</number>
+ </property>
+ <property name="movable">
+ <bool>false</bool>
</property>
<widget class="QWidget" name="tab_defaults">
<attribute name="title">
- <string>File Defaults</string>
+ <string>Advanced</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="leftMargin">
@@ -160,9 +163,9 @@
</item>
</layout>
</widget>
- <widget class="QWidget" name="tab_2">
+ <widget class="QWidget" name="tab_auto">
<attribute name="title">
- <string>Common Applications</string>
+ <string>Basic Settings</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
diff --git a/src-qt5/core-utils/lumina-config/pages/pages.pri b/src-qt5/core-utils/lumina-config/pages/pages.pri
index 7610e946..7c0f6538 100644
--- a/src-qt5/core-utils/lumina-config/pages/pages.pri
+++ b/src-qt5/core-utils/lumina-config/pages/pages.pri
@@ -4,8 +4,8 @@ HEADERS += $${PWD}/getPage.h \
$${PWD}/page_main.h \
$${PWD}/page_wallpaper.h \
$${PWD}/page_theme.h \
- $${PWD}/page_autostart.h
-# $${PWD}/page_defaultapps.h \
+ $${PWD}/page_autostart.h \
+ $${PWD}/page_defaultapps.h
# $${PWD}/page_fluxbox_keys.h \
# $${PWD}/page_fluxbox_settings.h \
# $${PWD}/page_interface_desktop.h \
@@ -18,8 +18,8 @@ HEADERS += $${PWD}/getPage.h \
SOURCES += $${PWD}/page_main.cpp \
$${PWD}/page_wallpaper.cpp \
$${PWD}/page_theme.cpp \
- $${PWD}/page_autostart.cpp
-# $${PWD}/page_defaultapps.cpp \
+ $${PWD}/page_autostart.cpp \
+ $${PWD}/page_defaultapps.cpp
# $${PWD}/page_fluxbox_keys.cpp \
# $${PWD}/page_fluxbox_settings.cpp \
# $${PWD}/page_interface_desktop.cpp \
@@ -32,8 +32,8 @@ SOURCES += $${PWD}/page_main.cpp \
FORMS += $${PWD}/page_main.ui \
$${PWD}/page_wallpaper.ui \
$${PWD}/page_theme.ui \
- $${PWD}/page_autostart.ui
-# $${PWD}/page_defaultapps.ui \
+ $${PWD}/page_autostart.ui \
+ $${PWD}/page_defaultapps.ui
# $${PWD}/page_fluxbox_keys.ui \
# $${PWD}/page_fluxbox_settings.ui \
# $${PWD}/page_interface_desktop.ui \
bgstack15