aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libLumina/LuminaThemes.cpp11
-rw-r--r--libLumina/LuminaThemes.h4
-rw-r--r--libLumina/LuminaUtils.cpp16
-rw-r--r--lumina-desktop/defaults/luminaDesktop.conf2
-rw-r--r--lumina-desktop/main.cpp5
5 files changed, 25 insertions, 13 deletions
diff --git a/libLumina/LuminaThemes.cpp b/libLumina/LuminaThemes.cpp
index 351189eb..415b3acf 100644
--- a/libLumina/LuminaThemes.cpp
+++ b/libLumina/LuminaThemes.cpp
@@ -429,7 +429,7 @@ LuminaThemeEngine::LuminaThemeEngine(QApplication *app){
watcher->addPath( QDir::homePath()+"/.lumina/envsettings.conf" );
watcher->addPath( QDir::homePath()+"/.lumina/themesettings.cfg" );
watcher->addPaths( QStringList() << theme << colors << QDir::homePath()+"/.icons/default/index.theme" ); //also watch these files for changes
- connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(watcherChange()) );
+ connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(watcherChange(QString)) );
connect(syncTimer, SIGNAL(timeout()), this, SLOT(reloadFiles()) );
}
@@ -437,14 +437,19 @@ LuminaThemeEngine::~LuminaThemeEngine(){
}
-void LuminaThemeEngine::watcherChange(){
+void LuminaThemeEngine::refresh(){
+ QTimer::singleShot(100,this, SLOT(reloadFiles()) );
+}
+
+void LuminaThemeEngine::watcherChange(QString file){
if(syncTimer->isActive()){ syncTimer->stop(); }
syncTimer->start();
+ if(!watcher->files().contains(file)){ watcher->addPath(file); }
}
void LuminaThemeEngine::reloadFiles(){
//Check the Theme file/settings
- if(lastcheck < QFileInfo(QDir::homePath()+"/.lumina/themesettings.cfg").lastModified() ){
+ if(lastcheck < QFileInfo(QDir::homePath()+"/.lumina/themesettings.cfg").lastModified().addSecs(1) ){
QStringList current = LTHEME::currentSettings();
application->setStyleSheet( LTHEME::assembleStyleSheet(current[0], current[1], current[3], current[4]) );
if(icons!=current[2]){
diff --git a/libLumina/LuminaThemes.h b/libLumina/LuminaThemes.h
index 0ff15aa1..f0b8c2b6 100644
--- a/libLumina/LuminaThemes.h
+++ b/libLumina/LuminaThemes.h
@@ -92,6 +92,8 @@ public:
LuminaThemeEngine(QApplication *app);
~LuminaThemeEngine();
+ void refresh();
+
private:
QApplication *application;
QFileSystemWatcher *watcher;
@@ -101,7 +103,7 @@ private:
//LuminaThemeStyle *style;
private slots:
- void watcherChange();
+ void watcherChange(QString);
void reloadFiles();
signals:
diff --git a/libLumina/LuminaUtils.cpp b/libLumina/LuminaUtils.cpp
index cad7f817..a8ddfc90 100644
--- a/libLumina/LuminaUtils.cpp
+++ b/libLumina/LuminaUtils.cpp
@@ -574,6 +574,7 @@ void LUtils::LoadSystemDefaults(bool skipOS){
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();
+ 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(".","_"); }
@@ -621,6 +622,7 @@ void LUtils::LoadSystemDefaults(bool skipOS){
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();
+ 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(".","_"); }
@@ -643,6 +645,7 @@ void LUtils::LoadSystemDefaults(bool skipOS){
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();
+ 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(".","_"); }
@@ -675,6 +678,7 @@ void LUtils::LoadSystemDefaults(bool skipOS){
if(tmp[i].startsWith("#") || !tmp[i].contains("=") ){ continue; }
QString var = tmp[i].section("=",0,0).simplified();
QString val = tmp[i].section("=",1,1).section("#",0,0).toLower().simplified();
+ if(val.isEmpty()){ continue; }
//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
@@ -701,7 +705,7 @@ void LUtils::LoadSystemDefaults(bool skipOS){
//Now do any theme settings
QStringList themesettings = LTHEME::currentSettings();
//List: [theme path, colorspath, iconsname, font, fontsize]
- qDebug() << "Current Theme Color:" << themesettings[1];
+ //qDebug() << "Current Theme Color:" << themesettings[1];
tmp = sysDefaults.filter("theme_");
if(tmp.isEmpty()){ tmp = sysDefaults.filter("theme."); }
bool setTheme = !tmp.isEmpty();
@@ -709,6 +713,7 @@ void LUtils::LoadSystemDefaults(bool skipOS){
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();
+ if(val.isEmpty()){ continue; }
//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
@@ -728,8 +733,8 @@ void LUtils::LoadSystemDefaults(bool skipOS){
QStringList systhemes = LTHEME::availableSystemThemes();
QStringList syscolors = LTHEME::availableSystemColors();
//theme file
- qDebug() << "Detected Themes/colors:" << systhemes << syscolors;
- if( !themesettings[0].startsWith("/") || !QFile::exists(themesettings[0]) || !themesettings[1].endsWith(".qss.template")){
+ //qDebug() << "Detected Themes/colors:" << systhemes << syscolors;
+ if( !themesettings[0].startsWith("/") || !QFile::exists(themesettings[0]) || !themesettings[0].endsWith(".qss.template")){
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)){
@@ -750,7 +755,8 @@ void LUtils::LoadSystemDefaults(bool skipOS){
}
}
}
-
+ //qDebug() << " - Final Theme Color:" << themesettings[1];
+
//Ensure that the settings directory exists
QString setdir = QDir::homePath()+"/.lumina/LuminaDE";
if(!QFile::exists(setdir)){
@@ -848,4 +854,4 @@ void ResizeMenu::mouseReleaseEvent(QMouseEvent *ev){
}else{
QMenu::mouseReleaseEvent(ev); //do normal processing
}
-} \ No newline at end of file
+}
diff --git a/lumina-desktop/defaults/luminaDesktop.conf b/lumina-desktop/defaults/luminaDesktop.conf
index f2632e0e..2c973adb 100644
--- a/lumina-desktop/defaults/luminaDesktop.conf
+++ b/lumina-desktop/defaults/luminaDesktop.conf
@@ -29,7 +29,7 @@ session_playlogoutaudio=true #[true/false] Play the audio chimes on log out
#THEME SETTINGS
#theme.themefile=<file path> #Absolute path to the theme template file to use (disable for Lumina-Default)
-theme.colorfile=Black #Name of the color spec file to use for theming
+theme_colorfile=Black #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_fontsize=10pt #Default size of the fonts to use on the desktop (can also use a percentage of the screen height (<number>%) )
diff --git a/lumina-desktop/main.cpp b/lumina-desktop/main.cpp
index 3602c10e..50ad7ef4 100644
--- a/lumina-desktop/main.cpp
+++ b/lumina-desktop/main.cpp
@@ -70,8 +70,7 @@ int main(int argc, char ** argv)
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 Application
- if(DEBUG){ qDebug() << "Session Init:";}
+ //Startup the session
LSession a(argc, argv);
if(!a.isPrimaryProcess()){ return 0; }
//Setup the log file
@@ -95,7 +94,7 @@ int main(int argc, char ** argv)
//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";
bgstack15