aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ROADMAP17
-rw-r--r--lumina-config/mainUI.cpp32
-rw-r--r--lumina-desktop/defaults/luminaDesktop.conf13
-rw-r--r--lumina-fileinfo/dialog.cpp7
-rw-r--r--lumina-fm/MainUI.cpp25
-rw-r--r--lumina-fm/MainUI.h1
6 files changed, 61 insertions, 34 deletions
diff --git a/ROADMAP b/ROADMAP
index 50e9833c..30af3cf5 100644
--- a/ROADMAP
+++ b/ROADMAP
@@ -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();
bgstack15