diff options
-rw-r--r-- | ROADMAP | 17 | ||||
-rw-r--r-- | lumina-config/mainUI.cpp | 32 | ||||
-rw-r--r-- | lumina-desktop/defaults/luminaDesktop.conf | 13 | ||||
-rw-r--r-- | lumina-fileinfo/dialog.cpp | 7 | ||||
-rw-r--r-- | lumina-fm/MainUI.cpp | 25 | ||||
-rw-r--r-- | lumina-fm/MainUI.h | 1 |
6 files changed, 61 insertions, 34 deletions
@@ -7,9 +7,11 @@ TO-DO (small projects) New Desktop Plugins: - Picture Frame (rotating slideshow) - Alarm Clock (simple clock alternative to the panel plugin with alarm functionality) + - Analog Clock + - System Tray + - Interface to Favorite Items New Panel Plugins: - - Single-Application Launcher (application pinned to the panel) - Minimalistic Task Tanager (no running overhead - when clicked it runs all New Screensaver Plugins (after lumina-screensaver is written): @@ -22,7 +24,6 @@ Add network probing functionality (for lumina-fm mainly) Add OS-specific suspend/resume functionality - Will be integrated into lumina-screensaver primarily - - Can also be integrated into the logout options Redesign the lumina-open dialog (specifically, the widget used to browse the available applications). @@ -31,7 +32,6 @@ Redesign the lumina-open dialog (specifically, the widget used to browse the ava TO-DO (medium projects) ----------------------------------------- Abstraction (move into libLumina): - - Favorites Interaction (currently in userbutton plugin and lumina-fm) - lumina-fm bookmarks? (possibly integrate into the favorites) - Plugins (desktop and panel): this allows lumina-config to more easily probe/utilize the plugins that are available (easier to maintain/disable/add plugins on a per-build basis as well) @@ -44,16 +44,17 @@ New Frameworks: - LuminaThemeEngine library for use by all Qt applications (binary module/wrapper around the current theme engine functionality) -PDF Viewing Capabilities? +PDF Viewing Capabilities (Extremely Low Priority: just created pc-pdfviewer for PC-BSD) - Could be a new utility, but would prefer the functionality be put into libLumina so that lumina-fm can also use it. - Great for quickly viewing/printing PDF files (since most PDF utilities appear to be DE-specific) + ------------------------------------------ TO-DO (large projects) ------------------------------------------ -lumina-screensaver: +lumina-screensaver (Combined into lumina-wm): - This utility is a replacement for xscreensaver, and will reduce the number of packages required by Lumina considerably (removing all perl requirements) - This utility will also be the power management interface for the lumina desktop @@ -80,10 +81,8 @@ capsicum: -------------------------- ROADMAP to 1.0.0-Release (large projects define release schedule) --------------------------- -0.8.4 - Include "lumina-screensaver" as a replacement for xscreensaver -0.8.5 - Integrate "capsicum" on FreeBSD for application/system security - - May have additional 0.8.x releases as necessary -0.9.0 - Include "lumina-wm" as a replacement for Fluxbox +0.8.x - Checkpoints for minor changes/improvements as lumina-wm is being developed +0.9.0 - Include "lumina-wm" as a replacement for Fluxbox/xscreensaver Note: Will use 0.9.x series for serious bug fixing, appearance polishing, and getting ready for the first offical (non-beta) release. diff --git a/lumina-config/mainUI.cpp b/lumina-config/mainUI.cpp index d6e90ecd..b548d7cd 100644 --- a/lumina-config/mainUI.cpp +++ b/lumina-config/mainUI.cpp @@ -169,8 +169,8 @@ void MainUI::setupConnections(){ connect(ui->tool_panel2_getcolor,SIGNAL(clicked()), this, SLOT(getpanel2color()) ); connect(ui->toolBox_panel1, SIGNAL(currentChanged(int)), this, SLOT(adjustpanel2()) ); connect(ui->toolBox_panel2, SIGNAL(currentChanged(int)), this, SLOT(adjustpanel1()) ); - connect(ui->combo_panel1_loc, SIGNAL(currentIndexChanged(int)), this, SLOT(adjustpanel2()) ); - connect(ui->combo_panel2_loc, SIGNAL(currentIndexChanged(int)), this, SLOT(adjustpanel1()) ); + connect(ui->combo_panel1_loc, SIGNAL(currentIndexChanged(int)), this, SLOT(panelValChanged()) ); + connect(ui->combo_panel2_loc, SIGNAL(currentIndexChanged(int)), this, SLOT(panelValChanged()) ); connect(ui->combo_panel1_align, SIGNAL(currentIndexChanged(int)), this, SLOT(panelValChanged()) ); connect(ui->combo_panel2_align, SIGNAL(currentIndexChanged(int)), this, SLOT(panelValChanged()) ); connect(ui->spin_panel1_size, SIGNAL(valueChanged(int)), this, SLOT(panelValChanged()) ); @@ -943,14 +943,14 @@ void MainUI::adjustpanel1(){ if(loading || panadjust){ return; } panadjust = true; qDebug() << "Adjust Panel 1:"; - bool valchanged = ui->toolBox_panel1->currentIndex()==ui->toolBox_panel2->currentIndex(); - if(!valchanged){ + //bool valchanged = ui->toolBox_panel1->currentIndex()==ui->toolBox_panel2->currentIndex(); + //if(!valchanged){ //Just a toolbox page change - switch to match and exit ui->toolBox_panel1->setCurrentIndex( ui->toolBox_panel2->currentIndex() ); panadjust = false; return; - } - int newindex=0; + //} + /*int newindex=0; switch(ui->combo_panel2_loc->currentIndex()){ case 0: newindex = 1; break; @@ -964,9 +964,9 @@ void MainUI::adjustpanel1(){ if(newindex != ui->combo_panel1_loc->currentIndex()){ valchanged = true; ui->combo_panel1_loc->setCurrentIndex(newindex); - } - panadjust = false; - if(!loading && valchanged){ ui->push_save->setEnabled(true); modpan = true; } + }*/ + //panadjust = false; + //if(!loading && valchanged){ ui->push_save->setEnabled(true); modpan = true; } } void MainUI::adjustpanel2(){ @@ -974,15 +974,15 @@ void MainUI::adjustpanel2(){ panadjust = true; //Adjust panel 2 to complement a panel 1 change qDebug() << "Adjust Panel 2:"; - bool valchanged = ui->toolBox_panel1->currentIndex()==ui->toolBox_panel2->currentIndex(); - if(!valchanged){ + //bool valchanged = ui->toolBox_panel1->currentIndex()==ui->toolBox_panel2->currentIndex(); + //if(!valchanged){ //Just a toolbox page change - switch to match and exit ui->toolBox_panel2->setCurrentIndex( ui->toolBox_panel1->currentIndex() ); panadjust = false; return; - } + //} - int newindex=0; + /*int newindex=0; switch(ui->combo_panel1_loc->currentIndex()){ case 0: newindex = 1; break; @@ -996,9 +996,9 @@ void MainUI::adjustpanel2(){ if(newindex != ui->combo_panel2_loc->currentIndex()){ valchanged = true; ui->combo_panel2_loc->setCurrentIndex(newindex); - } - panadjust = false; - if(!loading && valchanged){ ui->push_save->setEnabled(true); modpan = true; } + }*/ + //panadjust = false; + //if(!loading && valchanged){ ui->push_save->setEnabled(true); modpan = true; } } diff --git a/lumina-desktop/defaults/luminaDesktop.conf b/lumina-desktop/defaults/luminaDesktop.conf index 00a12950..942af606 100644 --- a/lumina-desktop/defaults/luminaDesktop.conf +++ b/lumina-desktop/defaults/luminaDesktop.conf @@ -2,15 +2,16 @@ # For any setting that can take a list of values, each vale needs to be seperated by a comma and a space (", ") # Example: some.setting=item1, item2, item3 -#NOTE: To pre-setup default applications for particular mime-types, you need to provide -# an additional file which contains all the registrations: "<Lumina Share>/defaultapps.conf" +#NOTE: To pre-setup default applications for particular mime-types, you need to create *.desktop entries on +# 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.8.1): +# Possible Desktop Plugins (Lumina version 0.8.4): # calendar, applauncher[::absolute path to *.desktop file], desktopview, notepad, audioplayer -# Possible Panel Plugins (Lumina version 0.8.1): +# Possible Panel Plugins (Lumina version 0.8.4): # userbutton, desktopbar, spacer, desktopswitcher, battery, clock, systemdashboard -# taskmanager[-nogroups], systemtray, homebutton, appmenu -# Possible Menu Plugins (Lumina version 0.8.1): +# taskmanager[-nogroups], systemtray, homebutton, appmenu, applauncher[::absolute path to *.desktop file] +# Possible Menu Plugins (Lumina version 0.8.4): # terminal, filemanager, applications, line, settings, windowlist, app::<absolute path to *.desktop file> #GENERAL SESSION SETTINGS diff --git a/lumina-fileinfo/dialog.cpp b/lumina-fileinfo/dialog.cpp index f44ace8f..6141b961 100644 --- a/lumina-fileinfo/dialog.cpp +++ b/lumina-fileinfo/dialog.cpp @@ -122,9 +122,11 @@ void Dialog::LoadDesktopFile(QString input) exit(1); } //if proposed file does not exist, than we will create one based on the templates - if (!QFile::exists(input)) { + QFileInfo info(desktopFileName); + if ((info.size() == 0) && (desktopFileName.endsWith(".desktop"))) { + QFile::remove(desktopFileName); //for the copy, we need to remove it if (desktopType=="link") { - copyTemplate("-link"); + copyTemplate("-link"); } else { copyTemplate("-app"); } @@ -132,7 +134,6 @@ void Dialog::LoadDesktopFile(QString input) this->setWindowTitle(desktopFileName.section("/",-1)); ui->tabWidget->setCurrentIndex(0); //always start on the file info tab //Now load the file info and put it into the UI - QFileInfo info(desktopFileName); QString mime = LXDG::findAppMimeForFile(desktopFileName); QList<QByteArray> fmt = QImageReader::supportedImageFormats(); diff --git a/lumina-fm/MainUI.cpp b/lumina-fm/MainUI.cpp index 4c41ffda..3cc66d97 100644 --- a/lumina-fm/MainUI.cpp +++ b/lumina-fm/MainUI.cpp @@ -976,6 +976,11 @@ void MainUI::OpenContextMenu(const QPoint &pt){ contextMenu->addSeparator(); contextMenu->addAction(LXDG::findIcon("edit-find-replace",""), tr("File Properties"), this, SLOT(ViewPropertiesItem()) )->setEnabled(hasSelection); } + if (info.isDir() || CItem.isEmpty()) { + //in case the user click on a directory or click on the background + contextMenu->addSeparator(); + contextMenu->addAction(LXDG::findIcon("system-search",""), tr("Open Terminal here"), this, SLOT(openTerminal())); + } //Now show the menu if(radio_view_details->isChecked()){ contextMenu->popup(ui->tree_dir_view->mapToGlobal(pt)); @@ -1423,6 +1428,26 @@ void MainUI::ViewPropertiesItem(){ } } +void MainUI::openTerminal(){ + QFileInfoList sel = getSelectedItems(); + QString shell; + //we get the shell has defined in the environment + if (getenv("SHELL")) shell = QString(getenv("SHELL")); + else shell = QString("/bin/sh"); + //we use the application defined as thate default terminal + QSettings *sessionsettings = new QSettings( QSettings::UserScope, "LuminaDE","sessionsettings", this); + //xterm remains the default + QString defTerminal = sessionsettings->value("default-terminal", "xterm").toString(); + if(sel.isEmpty()){ + //-e is the parameter for most of the terminal appliction to execute an external command. + //In your case we start a shell in the selected directory + QProcess::startDetached(defTerminal + " -e \"cd " + getCurrentDir() + " && " + shell + " \" "); + } else { + QProcess::startDetached(defTerminal + " -e \"cd " + sel[0].absoluteFilePath() + " && " + shell + " \" "); + } +} + + void MainUI::CutItems(){ //Only let this run if viewing the browser page if(ui->stackedWidget->currentWidget()!=ui->page_browser){ return; } diff --git a/lumina-fm/MainUI.h b/lumina-fm/MainUI.h index 345e2dd4..be8bb11f 100644 --- a/lumina-fm/MainUI.h +++ b/lumina-fm/MainUI.h @@ -217,6 +217,7 @@ private slots: void FavoriteItem(); // - full selection actions void ViewPropertiesItem(); + void openTerminal(); void CutItems(); void CopyItems(); void PasteItems(); |