aboutsummaryrefslogtreecommitdiff
path: root/src-qt5
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5')
-rw-r--r--src-qt5/core/libLumina/DesktopSettings.cpp2
-rw-r--r--src-qt5/core/libLumina/DesktopSettings.h2
-rw-r--r--src-qt5/core/libLumina/NativeEmbedWidget.cpp83
-rw-r--r--src-qt5/core/libLumina/NativeEmbedWidget.h8
-rw-r--r--src-qt5/core/libLumina/NativeWindow.cpp4
-rw-r--r--src-qt5/core/libLumina/RootSubWindow-animations.cpp97
-rw-r--r--src-qt5/core/libLumina/RootSubWindow.cpp69
-rw-r--r--src-qt5/core/libLumina/RootSubWindow.h7
-rw-r--r--src-qt5/core/libLumina/RootWindow.cpp17
-rw-r--r--src-qt5/core/libLumina/RootWindow.pri4
-rw-r--r--src-qt5/core/lumina-desktop-unified/LSession.cpp4
-rw-r--r--src-qt5/core/lumina-desktop-unified/main.cpp2
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp427
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h31
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp34
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.cpp70
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.h31
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-style/plugin.cpp34
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp532
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h32
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.cpp180
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.cpp143
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp276
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.cpp184
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp149
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp95
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp93
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.cpp181
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp96
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp296
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h28
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.cpp31
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.h28
41 files changed, 1200 insertions, 2294 deletions
diff --git a/src-qt5/core/libLumina/DesktopSettings.cpp b/src-qt5/core/libLumina/DesktopSettings.cpp
index 47dc29de..8bda1ac5 100644
--- a/src-qt5/core/libLumina/DesktopSettings.cpp
+++ b/src-qt5/core/libLumina/DesktopSettings.cpp
@@ -238,6 +238,8 @@ QString DesktopSettings::rel_path(DesktopSettings::File file){
name="keys"; break;
case DesktopSettings::Theme:
name="theme"; break;
+ case DesktopSettings::Animation:
+ name="animations"; break;
}
return FILEPREFIX+name+".conf";
}
diff --git a/src-qt5/core/libLumina/DesktopSettings.h b/src-qt5/core/libLumina/DesktopSettings.h
index 57a85791..dcb10bb6 100644
--- a/src-qt5/core/libLumina/DesktopSettings.h
+++ b/src-qt5/core/libLumina/DesktopSettings.h
@@ -25,7 +25,7 @@
class DesktopSettings : public QObject{
Q_OBJECT
public:
- enum File{ System, Favorites, Environment, Session, Desktop, ContextMenu, Keys, Theme };
+ enum File{ System, Favorites, Environment, Session, Desktop, ContextMenu, Keys, Theme, Animation };
DesktopSettings(QObject *parent = 0);
~DesktopSettings();
diff --git a/src-qt5/core/libLumina/NativeEmbedWidget.cpp b/src-qt5/core/libLumina/NativeEmbedWidget.cpp
index 80c843e0..ed0fd89c 100644
--- a/src-qt5/core/libLumina/NativeEmbedWidget.cpp
+++ b/src-qt5/core/libLumina/NativeEmbedWidget.cpp
@@ -37,8 +37,8 @@ inline void registerClientEvents(WId id){
// ============
//Simplification functions for the XCB/XLib interactions
void NativeEmbedWidget::syncWinSize(QSize sz){
- if(WIN==0){ return; }
- if(!sz.isValid()){ sz = this->size(); } //use the current widget size
+ if(WIN==0 ){ return; }
+ else if(!sz.isValid()){ sz = this->size(); } //use the current widget size
//qDebug() << "Sync Window Size:" << sz;
if(sz == winSize){ return; } //no change
const uint32_t valList[2] = {(uint32_t) sz.width(), (uint32_t) sz.height()};
@@ -58,9 +58,11 @@ void NativeEmbedWidget::hideWindow(){
void NativeEmbedWidget::showWindow(){
xcb_map_window(QX11Info::connection(), WIN->id());
+ QTimer::singleShot(0,this, SLOT(repaintWindow()));
}
QImage NativeEmbedWidget::windowImage(QRect geom){
+ //if(paused){ return QImage(); }
//Pull the XCB pixmap out of the compositing layer
xcb_pixmap_t pix = xcb_generate_id(QX11Info::connection());
xcb_composite_name_window_pixmap(QX11Info::connection(), WIN->id(), pix);
@@ -85,7 +87,8 @@ QImage NativeEmbedWidget::windowImage(QRect geom){
// ============
NativeEmbedWidget::NativeEmbedWidget(QWidget *parent) : QWidget(parent){
WIN = 0; //nothing embedded yet
- this->setSizeIncrement(2,2);
+ paused = false;
+ //this->setSizeIncrement(2,2);
}
bool NativeEmbedWidget::embedWindow(NativeWindow *window){
@@ -141,9 +144,22 @@ bool NativeEmbedWidget::isEmbedded(){
// ==============
// PUBLIC SLOTS
// ==============
+//Pause/resume
+void NativeEmbedWidget::pause(){
+ if(winImage.isNull()){ repaintWindow(); } //make sure we have one image already cached first
+ paused = true;
+}
+
+void NativeEmbedWidget::resume(){
+ paused = false;
+ //syncWinSize();
+ //showWindow();
+ repaintWindow(); //update the cached image right away
+}
+
void NativeEmbedWidget::resyncWindow(){
if(WIN==0){ return; }
- return; //skip the stuff below (not working)
+ /*return; //skip the stuff below (not working)
QRect geom = WIN->geometry();
//Send an artificial configureNotify event to the window with the global position/size included
xcb_configure_notify_event_t event;
@@ -158,12 +174,28 @@ void NativeEmbedWidget::resyncWindow(){
event.event = WIN->id();
event.response_type = XCB_CONFIGURE_NOTIFY;
xcb_send_event(QX11Info::connection(), false, WIN->id(), XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY, (const char *) &event);
-
- xcb_flush(QX11Info::connection());
+ */
+ //Just jitter the window size by 1 pixel really quick so the window knows to update it's geometry
+ QSize sz = this->size();
+ uint32_t valList[2] = {(uint32_t) sz.width()-1, (uint32_t) sz.height()};
+ uint32_t mask = XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT;
+ xcb_configure_window(QX11Info::connection(), WIN->id(), mask, valList);
+ xcb_flush(QX11Info::connection());
+ valList[0] = (uint32_t) sz.width();
+ xcb_configure_window(QX11Info::connection(), WIN->id(), mask, valList);
+ xcb_flush(QX11Info::connection());
+ syncWinSize();
+ QTimer::singleShot(0, this, SLOT(repaintWindow()) );
}
void NativeEmbedWidget::repaintWindow(){
- this->update();
+ //qDebug() << "Update Window Image:" << !paused;
+ if(paused){ return; }
+ QImage tmp = windowImage( QRect(QPoint(0,0), this->size()) );
+ if(!tmp.isNull()){
+ winImage = tmp;
+ }//else{ qDebug() << "Got Null Image!!"; }
+ this->parentWidget()->update();
}
// ==============
// PROTECTED
@@ -186,23 +218,30 @@ void NativeEmbedWidget::hideEvent(QHideEvent *ev){
}
void NativeEmbedWidget::paintEvent(QPaintEvent *ev){
- //QWidget::paintEvent(ev); //ensure all the Qt-compositing is done first
- if(this->size()!=winSize){ return; } //do not paint here - waiting to re-sync the sizes
if(WIN==0){ QWidget::paintEvent(ev); return; }
+ else if( winImage.isNull() ){ /*QTimer::singleShot(0, this, SLOT(repaintWindow()) );*/ return; }
+ else if(paused){ return; }
+ //else if(this->size()!=winSize){ QTimer::singleShot(0,this, SLOT(syncWinSize())); return; } //do not paint here - waiting to re-sync the sizes
+ //else if(this->size() != winImage.size()){ QTimer::singleShot(0, this, SLOT(repaintWindow()) ); return; }
//Need to paint the image from the window onto the widget as an overlay
- QRect geom = QRect(0,0,this->width(), this->height()); //always paint the whole window
- //qDebug() << "Get Paint image:" << ev->rect() << geom;
- //geom = ev->rect(); //atomic updates
- //geom.adjust(-1,-1,1,1); //add an additional pixel in each direction to be painted
- //geom = geom.intersected(QRect(0,0,this->width(), this->height())); //ensure intersection with actual window
- QImage img = windowImage(geom);
- if(!img.isNull()){
- if(img.size() != geom.size()){ return; }
+ QRect geom = ev->rect(); //atomic updates
+ geom.adjust(-10,-10,10,10); //add an additional few pixels in each direction to be painted
+ geom = geom.intersected(QRect(0,0,this->width(), this->height())); //ensure intersection with actual window
+ if( !QRect(QPoint(0,0),winImage.size()).contains(geom) ){ QTimer::singleShot(0,this, SLOT(repaintWindow()) );return; }
QPainter P(this);
- P.drawImage( geom , img, QRect(geom.topLeft(), img.size()), Qt::NoOpaqueDetection); //1-to-1 mapping
- //qDebug() << "Painted Rect:" << ev->rect() << this->geometry();
+ P.setClipping(true);
+ P.setClipRect(0,0,this->width(), this->height());
+ //qDebug() << "Paint Embed Window:" << geom << winImage.size();
+ if(winImage.size() == this->size()){
+ P.drawImage( geom , winImage, geom, Qt::NoOpaqueDetection); //1-to-1 mapping
+ //Note: Qt::NoOpaqueDetection Speeds up the paint by bypassing the checks to see if there are [semi-]transparent pixels
+ // Since this is an embedded image - we fully expect there to be transparency all/most of the time.
+ }else{
+ P.drawImage( geom , winImage);
+ }
+ //else{ QImage scaled = winImage.scaled(geom.size()); P.drawImage(geom, scaled); }
+ //P.drawImage( geom , winImage, geom, Qt::NoOpaqueDetection); //1-to-1 mapping
//Note: Qt::NoOpaqueDetection Speeds up the paint by bypassing the checks to see if there are [semi-]transparent pixels
- // Since this is an embedded image - we fully expect there to be transparency most of the time.
- }
- //qDebug() << "Done Painting";
+ // Since this is an embedded image - we fully expect there to be transparency all/most of the time.
+
}
diff --git a/src-qt5/core/libLumina/NativeEmbedWidget.h b/src-qt5/core/libLumina/NativeEmbedWidget.h
index 78c11dfc..65e03c51 100644
--- a/src-qt5/core/libLumina/NativeEmbedWidget.h
+++ b/src-qt5/core/libLumina/NativeEmbedWidget.h
@@ -24,6 +24,8 @@ class NativeEmbedWidget : public QWidget{
private:
NativeWindow *WIN;
QSize winSize;
+ QImage winImage;
+ bool paused;
private slots:
//Simplification functions
@@ -41,7 +43,13 @@ public:
bool detachWindow();
bool isEmbedded(); //status of the embed
+
+
public slots:
+ //Pause/resume
+ void pause();
+ void resume();
+
void resyncWindow();
void repaintWindow();
diff --git a/src-qt5/core/libLumina/NativeWindow.cpp b/src-qt5/core/libLumina/NativeWindow.cpp
index 94d39cb7..48d0380b 100644
--- a/src-qt5/core/libLumina/NativeWindow.cpp
+++ b/src-qt5/core/libLumina/NativeWindow.cpp
@@ -89,11 +89,11 @@ QRect NativeWindow::geometry(){
QRect geom( hash.value(NativeWindow::GlobalPos).toPoint(), hash.value(NativeWindow::Size).toSize() );
//Now adjust the window geom by the frame margins
QList<int> frame = hash.value(NativeWindow::FrameExtents).value< QList<int> >(); //Left,Right,Top,Bottom
- qDebug() << "Calculate Geometry:" << geom << frame;
+ //qDebug() << "Calculate Geometry:" << geom << frame;
if(frame.length()==4){
geom = geom.adjusted( -frame[0], -frame[2], frame[1], frame[3] );
}
- qDebug() << " - Total:" << geom;
+ //qDebug() << " - Total:" << geom;
return geom;
}
// ==== PUBLIC SLOTS ===
diff --git a/src-qt5/core/libLumina/RootSubWindow-animations.cpp b/src-qt5/core/libLumina/RootSubWindow-animations.cpp
new file mode 100644
index 00000000..ac813e3a
--- /dev/null
+++ b/src-qt5/core/libLumina/RootSubWindow-animations.cpp
@@ -0,0 +1,97 @@
+//===========================================
+// Lumina Desktop source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#include "RootSubWindow.h"
+#include <QDebug>
+
+QStringList RootSubWindow::validAnimations(NativeWindow::Property prop){
+ QStringList valid;
+ if(prop == NativeWindow::Visible){
+ valid << "zoom" << "wipe-center-vertical" << "wipe-center-horizontal" << "shade-top" << "shade-right" << "shade-left" << "shade-bottom";
+ }
+ return valid;
+}
+
+void RootSubWindow::loadAnimation(QString name, NativeWindow::Property prop, QVariant nval){
+ animResetProp.clear();
+ //Special case - random animation each time
+ if(name=="random"){
+ QStringList valid = validAnimations(prop);
+ name = valid.at(qrand()%valid.length());
+ }
+ //Now setup the animation
+ if(prop == NativeWindow::Visible){
+ //NOTE: Assigns values for "invisible->visible" animation: will reverse it afterwards as needed
+ anim->setPropertyName("geometry");
+ QRect geom = this->geometry();
+ if(name == "zoom"){
+ //Zoom to/from the center point
+ anim->setStartValue( QRect(geom.center(), QSize(0,0)) );
+ anim->setEndValue(geom);
+ }else if(name == "wipe-center-vertical"){
+ anim->setStartValue( QRect( geom.center().x(), geom.y(), 0, geom.height()) );
+ anim->setEndValue( geom );
+ }else if(name == "wipe-center-horizontal"){
+ anim->setStartValue( QRect( geom.x(), geom.center().y(), geom.width(), 0) );
+ anim->setEndValue( geom );
+ }else if(name == "shade-top"){
+ anim->setStartValue( QRect( geom.x(), geom.y(), geom.width(), 0) );
+ anim->setEndValue( geom );
+ }else if(name == "shade-bottom"){
+ anim->setStartValue( QRect( geom.x(), geom.y()+geom.height(), geom.width(), 0) );
+ anim->setEndValue( geom );
+ }else if(name == "shade-left"){
+ anim->setStartValue( QRect( geom.x(), geom.y(), 0, geom.height()) );
+ anim->setEndValue( geom );
+ }else if(name == "shade-right"){
+ anim->setStartValue( QRect( geom.x()+geom.width(), geom.y(), 0, geom.height()) );
+ anim->setEndValue( geom );
+ }else{
+ //Invalid/None animation
+ if(nval.toBool()){ this->show(); }
+ else{ this->hide(); }
+ return;
+ }
+ if(nval.toBool()){
+ this->setGeometry( anim->startValue().toRect() ); //ensure the window is the initial geom before it becomes visible
+ }else{
+ QVariant tmp = anim->startValue();
+ anim->setStartValue(anim->endValue());
+ anim->setEndValue(tmp);
+ animResetProp = anim->startValue();
+ QTimer::singleShot(anim->duration(), this, SLOT(hide()) );
+ }
+ WinWidget->pause();
+ anim->start();
+ this->show();
+ } //end of Visibility animation
+}
+
+void RootSubWindow::animFinished(){
+ if(closing){ this->close(); return;}
+ else if(anim->propertyName()=="geometry"){
+ if(!animResetProp.isNull()){
+ /*qDebug() << "Animation Finished, Reset Geometry:" << animResetProp.toRect();
+ qDebug() << " - Starting Value:" << anim->startValue().toRect();
+ qDebug() << " - Ending Value:" << anim->endValue().toRect();*/
+ this->setGeometry( animResetProp.toRect() );
+ //Also ensure that the proper geometry is saved to the window structure
+ QRect curg = this->geometry();
+ QRect wing = WIN->geometry();
+ //qDebug() << " - After Animation Reset:" << curg << wing;
+ if(curg!=wing){
+ QRect clientg = clientGlobalGeom();
+ //qDebug() << "Sub Window geometry:" << clientg;
+ WIN->setProperties(QList< NativeWindow::Property>() << NativeWindow::Size << NativeWindow::GlobalPos,
+ QList<QVariant>() << clientg.size() << clientg.topLeft() );
+ WinWidget->resyncWindow(); //also let the window know about the current geometry
+ }
+ }
+ }
+ animResetProp = QVariant(); //clear the variable
+ WinWidget->resume();
+
+}
diff --git a/src-qt5/core/libLumina/RootSubWindow.cpp b/src-qt5/core/libLumina/RootSubWindow.cpp
index 9ef6464e..c2da8aef 100644
--- a/src-qt5/core/libLumina/RootSubWindow.cpp
+++ b/src-qt5/core/libLumina/RootSubWindow.cpp
@@ -14,6 +14,7 @@
#define WIN_BORDER 5
#include <LIconCache.h>
+#include <DesktopSettings.h>
// === PUBLIC ===
RootSubWindow::RootSubWindow(QWidget *root, NativeWindow *win) : QFrame(root){
@@ -246,6 +247,14 @@ void RootSubWindow::LoadProperties( QList< NativeWindow::Property> list){
propertiesChanged(list, vals);
}
+QRect RootSubWindow::clientGlobalGeom(){
+ QRect tot = this->geometry();
+ QList<int> frame = WIN->property(NativeWindow::FrameExtents).value< QList<int> >();
+ //Now adjust this to take out the frame
+ tot.adjust(frame[0], frame[2], -frame[1], -frame[3]);
+ return tot;
+}
+
// === PUBLIC SLOTS ===
void RootSubWindow::clientClosed(){
//qDebug() << "Client Closed";
@@ -296,6 +305,7 @@ void RootSubWindow::startMoving(){
activeState = Move;
offset = this->mapFromGlobal(curpt);
setMouseCursor(activeState, true); //this one is an override cursor
+ //WinWidget->pause();
//Also need to capture the mouse
this->grabMouse();
}
@@ -312,24 +322,8 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList
switch(props[i]){
case NativeWindow::Visible:
//qDebug() << "Got Visibility Change:" << vals[i] << this->geometry() << WIN->geometry();
- if(vals[i].toBool()){
- if(lastGeom.isNull()){ animResetProp = this->geometry(); }
- else{ animResetProp = lastGeom; }
- anim->setPropertyName("geometry");
- anim->setStartValue( QRect(animResetProp.toRect().center(), QSize(0,0)) );
- anim->setEndValue(animResetProp);
- this->setGeometry( anim->startValue().toRect() ); //ensure the window is the initial geom before it becomes visible
- anim->start();
- this->show();
- }else{
- animResetProp = this->geometry(); //hide event - should already be the right geom
- lastGeom = this->geometry();
- anim->setPropertyName("geometry");
- anim->setStartValue(this->geometry());
- anim->setEndValue( QRect(this->geometry().center(), QSize(0,0) ) );
- anim->start();
- QTimer::singleShot(anim->duration(), this, SLOT(hide()) );
- }
+ if(vals[i].toBool()){ loadAnimation( DesktopSettings::instance()->value(DesktopSettings::Animation, "window/appear", "random").toString(), NativeWindow::Visible, vals[i]); }
+ else{ loadAnimation( DesktopSettings::instance()->value(DesktopSettings::Animation, "window/disappear", "random").toString(), NativeWindow::Visible, vals[i]); }
break;
case NativeWindow::Title:
titleLabel->setText(vals[i].toString());
@@ -340,11 +334,6 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList
else{ otherB->setIcon(vals[i].value<QIcon>()); }
break;
case NativeWindow::GlobalPos:
- //qDebug() << "Got Global Pos:" << this->pos() << WinWidget->mapToGlobal(QPoint(0,0)) << WIN->geometry().topLeft() << vals[i].toPoint();
- if(activeState == RootSubWindow::Normal){
- this->move( WIN->geometry().topLeft() );
- }
- break;
case NativeWindow::Size:
//qDebug() << " - SIZE CHANGE";
if(WIN->property(NativeWindow::FrameExtents).isNull() && (i<props.indexOf(NativeWindow::FrameExtents)) ){
@@ -353,11 +342,8 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList
vals << vals.takeAt(i);
i--;
}else if(anim->state() != QPropertyAnimation::Running ){
- if(vals[i].toSize() != WinWidget->size() && activeState==Normal){
- //qDebug() << "Got Widget Size Change:" << vals[i].toSize() << WinWidget->size();
- WinWidget->resize(vals[i].toSize());
- this->resize( WIN->geometry().size() );
- //qDebug() << " - Size after change:" << WinWidget->size() << this->size() << WIN->geometry();
+ if(vals[i].toSize() != WinWidget->size() && activeState==Normal && vals[i]==WIN->property(NativeWindow::Size)){
+ this->setGeometry(WIN->geometry());
}
}
break;
@@ -388,20 +374,6 @@ void RootSubWindow::propertiesChanged(QList<NativeWindow::Property> props, QList
}
}
-void RootSubWindow::animFinished(){
- if(closing){ this->close(); return;}
- else if(anim->propertyName()=="geometry"){
- if(!animResetProp.isNull()){
- /*qDebug() << "Animation Finished, Reset Geometry:" << animResetProp;
- qDebug() << " - Starting Value:" << anim->startValue();
- qDebug() << " - Ending Value:" << anim->endValue();
- qDebug() << " - Current Value:" << this->geometry();*/
- this->setGeometry( animResetProp.toRect() );
- }
- }
- animResetProp = QVariant(); //clear the variable
-}
-
// === PROTECTED ===
void RootSubWindow::mousePressEvent(QMouseEvent *ev){
activate();
@@ -409,7 +381,7 @@ void RootSubWindow::mousePressEvent(QMouseEvent *ev){
//qDebug() << "Frame Mouse Press Event";
offset.setX(0); offset.setY(0);
if(activeState != Normal){ return; } // do nothing - already in a state of grabbed mouse
- this->activate();
+ //this->activate();
if(this->childAt(ev->pos())!=0){
//Check for any non-left-click event and skip it
if(ev->button()!=Qt::LeftButton){ return; }
@@ -420,6 +392,8 @@ void RootSubWindow::mousePressEvent(QMouseEvent *ev){
activeState = getStateAtPoint(ev->pos(), true); //also have it set the offset variable
}
setMouseCursor(activeState, true); //this one is an override cursor
+ //if(activeState!=Normal){WinWidget->pause(); }
+ if(activeState!=Normal && activeState!=Move){WinWidget->pause(); }
QFrame::mousePressEvent(ev);
}
@@ -498,7 +472,9 @@ void RootSubWindow::mouseMoveEvent(QMouseEvent *ev){
default:
break;
}
- this->setGeometry(geom);
+ //if( (geom.width()%2==0 && geom.height()%2==0) || activeState==Move){
+ this->setGeometry(geom);
+ //}
}
QFrame::mouseMoveEvent(ev);
}
@@ -511,6 +487,8 @@ void RootSubWindow::mouseReleaseEvent(QMouseEvent *ev){
otherM->popup(ev->globalPos());
return;
}
+ if(activeState!=Normal){ WinWidget->resume(); }
+ if(activeState!=Normal && activeState!=Move){WinWidget->resume(); }
activeState = Normal;
QApplication::restoreOverrideCursor();
setMouseCursor( getStateAtPoint(ev->pos()) );
@@ -529,8 +507,5 @@ void RootSubWindow::moveEvent(QMoveEvent *ev){
QFrame::moveEvent(ev);
if(!closing && anim->state()!=QAbstractAnimation::Running){
moveTimer->start();
- //WinWidget->resyncWindow();
- //WIN->requestProperty(NativeWindow::GlobalPos, ev->pos() );
}
-
}
diff --git a/src-qt5/core/libLumina/RootSubWindow.h b/src-qt5/core/libLumina/RootSubWindow.h
index de6aba89..079a6201 100644
--- a/src-qt5/core/libLumina/RootSubWindow.h
+++ b/src-qt5/core/libLumina/RootSubWindow.h
@@ -39,6 +39,7 @@ private:
//Functions for getting/setting state
ModState getStateAtPoint(QPoint pt, bool setoffset = false); //generally used for mouse location detection
void setMouseCursor(ModState, bool override = false); //Update the mouse cursor based on state
+
//Native window embed objects
NativeWindow *WIN;
NativeEmbedWidget *WinWidget;
@@ -60,10 +61,14 @@ private:
void LoadProperties( QList< NativeWindow::Property> list);
+ static QStringList validAnimations(NativeWindow::Property);
+
public slots:
void clientClosed();
void LoadAllProperties();
+ QRect clientGlobalGeom();
+
//Button Actions - public so they can be tied to key shortcuts and stuff as well
void toggleMinimize();
void toggleMaximize();
@@ -77,6 +82,8 @@ public slots:
private slots:
void propertiesChanged(QList<NativeWindow::Property>, QList<QVariant>);
+
+ void loadAnimation(QString name, NativeWindow::Property, QVariant nval); //new val
void animFinished();
protected:
diff --git a/src-qt5/core/libLumina/RootWindow.cpp b/src-qt5/core/libLumina/RootWindow.cpp
index 31faaf50..90ad8739 100644
--- a/src-qt5/core/libLumina/RootWindow.cpp
+++ b/src-qt5/core/libLumina/RootWindow.cpp
@@ -10,6 +10,8 @@
#include <QScreen>
#include <QDebug>
+#define DEBUG 1
+
// === PUBLIC ===
RootWindow::RootWindow() : QWidget(0, Qt::Window | Qt::BypassWindowManagerHint | Qt::WindowStaysOnBottomHint){
qRegisterMetaType<WId>("WId");
@@ -100,12 +102,14 @@ void RootWindow::updateScreenPixmap(screeninfo *info){
// === PUBLIC SLOTS ===
void RootWindow::ResizeRoot(){
+ if(DEBUG){ qDebug() << "Resize Root..."; }
QList<QScreen*> scrns = QApplication::screens();
//Update all the screen locations and ID's in the WALLPAPERS list
QRect fullscreen;
QStringList valid;
//Update the size of the rootWindow itself
for(int i=0; i<scrns.length(); i++){
+ if(DEBUG){ qDebug() << " - Found Screen:" << scrns[i]->name() << scrns[i]->geometry(); }
fullscreen = fullscreen.united(scrns[i]->geometry());
valid << scrns[i]->name();
for(int j=0; j<WALLPAPERS.length(); j++){
@@ -129,11 +133,13 @@ void RootWindow::ResizeRoot(){
}
}
//Trigger a repaint and send out any signals
+ if(DEBUG){ qDebug() << " - FullScreen Geometry:" << fullscreen; }
this->setGeometry(fullscreen);
this->update();
emit RootResized(fullscreen);
if(!valid.isEmpty()){ emit NewScreens(valid); }
if(!invalid.isEmpty()){ emit RemovedScreens(invalid); }
+ if(DEBUG){ qDebug() << " - Geom after change:" << this->geometry(); }
}
void RootWindow::ChangeWallpaper(QString id, RootWindow::ScaleType scale, QString file){
@@ -148,6 +154,7 @@ void RootWindow::ChangeWallpaper(QString id, RootWindow::ScaleType scale, QStrin
}
}
if(!found){
+ ResizeRoot();
//Need to create a new screeninfo structure
QList<QScreen*> scrns = QApplication::screens();
for(int i=0; i<scrns.length(); i++){
@@ -169,7 +176,7 @@ void RootWindow::ChangeWallpaper(QString id, RootWindow::ScaleType scale, QStrin
void RootWindow::NewWindow(NativeWindow *win){
RootSubWindow *subwin = 0;
- qDebug() << "Got New Window:" << win->property(NativeWindow::Title);
+ //qDebug() << "Got New Window:" << win->property(NativeWindow::Title);
for(int i=0; i<WINDOWS.length() && subwin==0; i++){
if(WINDOWS[i]->id() == win->id()){ subwin = WINDOWS[i]; }
}
@@ -185,7 +192,7 @@ void RootWindow::NewWindow(NativeWindow *win){
void RootWindow::CloseWindow(WId win){
for(int i=0; i<WINDOWS.length(); i++){
- if(WINDOWS[i]->id() == win){ qDebug() << "Remove Window From Root List"; WINDOWS.takeAt(i)->clientClosed(); break; }
+ if(WINDOWS[i]->id() == win){ WINDOWS.takeAt(i)->clientClosed(); break; }
}
}
@@ -196,10 +203,12 @@ void RootWindow::paintEvent(QPaintEvent *ev){
//qDebug() << "RootWindow: PaintEvent:" << ev->rect(); //<< QDateTime::currentDateTime()->toString(QDateTime::ShortDate);
bool found = false;
QPainter painter(this);
+ QRect geom = ev->rect();
+ geom.adjust(-10,-10,10,10); //give it a few more pixels in each direction to repaint (noticing some issues in Qt 5.7.1)
for(int i=0; i<WALLPAPERS.length(); i++){
- if(WALLPAPERS[i].area.intersects(ev->rect()) ){
+ if(WALLPAPERS[i].area.intersects(geom) ){
found = true;
- QRect intersect = WALLPAPERS[i].area.intersected(ev->rect());
+ QRect intersect = WALLPAPERS[i].area.intersected(geom);
painter.drawPixmap( intersect, WALLPAPERS[i].wallpaper, intersect.translated(-WALLPAPERS[i].area.x(), -WALLPAPERS[i].area.y()) );
}
}
diff --git a/src-qt5/core/libLumina/RootWindow.pri b/src-qt5/core/libLumina/RootWindow.pri
index e4d5f00b..b83240e5 100644
--- a/src-qt5/core/libLumina/RootWindow.pri
+++ b/src-qt5/core/libLumina/RootWindow.pri
@@ -1,7 +1,8 @@
# Files
SOURCES *= $${PWD}/RootWindow.cpp \
- $${PWD}/RootSubWindow.cpp
+ $${PWD}/RootSubWindow.cpp \
+ $${PWD}/RootSubWindow-animations.cpp
HEADERS *= $${PWD}/RootWindow.h \
$${PWD}/RootSubWindow.h
@@ -12,3 +13,4 @@ INCLUDEPATH *= ${PWD}
include(LUtils.pri)
include(NativeWindow.pri)
include(LIconCache.pri)
+include(DesktopSettings.pri)
diff --git a/src-qt5/core/lumina-desktop-unified/LSession.cpp b/src-qt5/core/lumina-desktop-unified/LSession.cpp
index 0b9a9b35..60ed1a39 100644
--- a/src-qt5/core/lumina-desktop-unified/LSession.cpp
+++ b/src-qt5/core/lumina-desktop-unified/LSession.cpp
@@ -18,8 +18,6 @@
NativeWindowSystem* Lumina::NWS = 0;
NativeEventFilter* Lumina::NEF = 0;
LScreenSaver* Lumina::SS = 0;
-//DesktopSettings* Lumina::SETTINGS = 0;
-//Lumina::WM = 0;
QThread* Lumina::EVThread = 0;
RootWindow* Lumina::ROOTWIN = 0;
XDGDesktopList* Lumina::APPLIST = 0;
@@ -49,7 +47,6 @@ LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lu
//Now initialize the global objects (but do not start them yet)
Lumina::NEF = new NativeEventFilter();
Lumina::NWS = new NativeWindowSystem();
- //Lumina::SETTINGS = new DesktopSettings();
Lumina::SS = new LScreenSaver();
//Now put the Native Window System into it's own thread to keep things snappy
Lumina::EVThread = new QThread();
@@ -67,7 +64,6 @@ LSession::~LSession(){
//Clean up the global objects as needed
if(Lumina::NEF!=0){ Lumina::NEF->deleteLater(); }
if(Lumina::NWS!=0){ Lumina::NWS->deleteLater(); }
- //if(Lumina::EFILTER!=0){ Lumina::EFILTER->deleteLater(); }
if(Lumina::SS!=0){ Lumina::SS->deleteLater(); }
if(Lumina::EVThread!=0){
if(Lumina::EVThread->isRunning()){ Lumina::EVThread->quit(); }
diff --git a/src-qt5/core/lumina-desktop-unified/main.cpp b/src-qt5/core/lumina-desktop-unified/main.cpp
index 0b67de46..8e40f7eb 100644
--- a/src-qt5/core/lumina-desktop-unified/main.cpp
+++ b/src-qt5/core/lumina-desktop-unified/main.cpp
@@ -30,6 +30,8 @@ int main(int argc, char ** argv)
setenv("XDG_CURRENT_DESKTOP","Lumina",1);
setenv("QT_NO_GLIB", "1", 1); //Disable the glib event loop within Qt at runtime (performance hit + bugs)
unsetenv("QT_QPA_PLATFORMTHEME"); //causes issues with Lumina themes - not many people have this by default...
+ unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR"); //need exact-pixel measurements (no fake scaling)
+
//Startup the session
if(DEBUG){ qDebug() << "Starting unified session"; }
LSession a(argc, argv);
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp
index 02f6a10f..dcede34c 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QVariant>
#include <QSettings>
#include <QGuiApplication>
@@ -60,248 +32,199 @@ Q_LOGGING_CATEGORY(llthemeengine, "lthemeengine")
//QT_QPA_PLATFORMTHEME=lthemeengine
-lthemeenginePlatformTheme::lthemeenginePlatformTheme()
-{
- if(QGuiApplication::desktopSettingsAware())
- {
- readSettings();
- QMetaObject::invokeMethod(this, "applySettings", Qt::QueuedConnection);
+lthemeenginePlatformTheme::lthemeenginePlatformTheme(){
+ if(QGuiApplication::desktopSettingsAware()){
+ readSettings();
+ QMetaObject::invokeMethod(this, "applySettings", Qt::QueuedConnection);
#ifdef QT_WIDGETS_LIB
- QMetaObject::invokeMethod(this, "createFSWatcher", Qt::QueuedConnection);
+ QMetaObject::invokeMethod(this, "createFSWatcher", Qt::QueuedConnection);
#endif
- QGuiApplication::setFont(m_generalFont);
+ QGuiApplication::setFont(m_generalFont);
}
- qCDebug(llthemeengine) << "using lthemeengine plugin";
+ qCDebug(llthemeengine) << "using lthemeengine plugin";
#ifdef QT_WIDGETS_LIB
- if(!QStyleFactory::keys().contains("lthemeengine-style"))
- qCCritical(llthemeengine) << "unable to find lthemeengine proxy style";
+ if(!QStyleFactory::keys().contains("lthemeengine-style"))
+ qCCritical(llthemeengine) << "unable to find lthemeengine proxy style";
#endif
}
-lthemeenginePlatformTheme::~lthemeenginePlatformTheme()
-{
- if(m_customPalette)
- delete m_customPalette;
+lthemeenginePlatformTheme::~lthemeenginePlatformTheme(){
+ if(m_customPalette)
+ delete m_customPalette;
}
#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)) && !defined(QT_NO_DBUS)
-QPlatformMenuBar *lthemeenginePlatformTheme::createPlatformMenuBar() const
-{
- if(m_checkDBusGlobalMenu)
- {
- QDBusConnection conn = QDBusConnection::sessionBus();
- m_dbusGlobalMenuAvailable = conn.interface()->isServiceRegistered("com.canonical.AppMenu.Registrar");
- qCDebug(llthemeengine) << "D-Bus global menu:" << (m_dbusGlobalMenuAvailable ? "yes" : "no");
+QPlatformMenuBar *lthemeenginePlatformTheme::createPlatformMenuBar() const{
+ if(m_checkDBusGlobalMenu){
+ QDBusConnection conn = QDBusConnection::sessionBus();
+ m_dbusGlobalMenuAvailable = conn.interface()->isServiceRegistered("com.canonical.AppMenu.Registrar");
+ qCDebug(llthemeengine) << "D-Bus global menu:" << (m_dbusGlobalMenuAvailable ? "yes" : "no");
}
- return (m_dbusGlobalMenuAvailable ? new QDBusMenuBar() : nullptr);
+ return (m_dbusGlobalMenuAvailable ? new QDBusMenuBar() : nullptr);
}
#endif
#if !defined(QT_NO_DBUS) && !defined(QT_NO_SYSTEMTRAYICON)
-QPlatformSystemTrayIcon *lthemeenginePlatformTheme::createPlatformSystemTrayIcon() const
-{
- if(m_checkDBusTray)
- {
- QDBusMenuConnection conn;
- m_dbusTrayAvailable = conn.isStatusNotifierHostRegistered();
- m_checkDBusTray = false;
- qCDebug(llthemeengine) << "D-Bus system tray:" << (m_dbusTrayAvailable ? "yes" : "no");
+QPlatformSystemTrayIcon *lthemeenginePlatformTheme::createPlatformSystemTrayIcon() const{
+ if(m_checkDBusTray){
+ QDBusMenuConnection conn;
+ m_dbusTrayAvailable = conn.isStatusNotifierHostRegistered();
+ m_checkDBusTray = false;
+ qCDebug(llthemeengine) << "D-Bus system tray:" << (m_dbusTrayAvailable ? "yes" : "no");
}
- return (m_dbusTrayAvailable ? new QDBusTrayIcon() : nullptr);
+ return (m_dbusTrayAvailable ? new QDBusTrayIcon() : nullptr);
}
#endif
-const QPalette *lthemeenginePlatformTheme::palette(QPlatformTheme::Palette type) const
-{
- Q_UNUSED(type);
- return (m_usePalette ? m_customPalette : nullptr);
+const QPalette *lthemeenginePlatformTheme::palette(QPlatformTheme::Palette type) const{
+ Q_UNUSED(type);
+ return (m_usePalette ? m_customPalette : nullptr);
}
-const QFont *lthemeenginePlatformTheme::font(QPlatformTheme::Font type) const
-{
- if(type == QPlatformTheme::FixedFont)
- return &m_fixedFont;
- return &m_generalFont;
+const QFont *lthemeenginePlatformTheme::font(QPlatformTheme::Font type) const{
+ if(type == QPlatformTheme::FixedFont)
+ return &m_fixedFont;
+ return &m_generalFont;
}
-QVariant lthemeenginePlatformTheme::themeHint(QPlatformTheme::ThemeHint hint) const
-{
- switch (hint)
- {
- case QPlatformTheme::CursorFlashTime:
- return m_cursorFlashTime;
- case MouseDoubleClickInterval:
- return m_doubleClickInterval;
- case QPlatformTheme::ToolButtonStyle:
- return m_toolButtonStyle;
- case QPlatformTheme::SystemIconThemeName:
- return m_iconTheme;
- case QPlatformTheme::StyleNames:
- return QStringList() << "lthemeengine-style";
- case QPlatformTheme::IconThemeSearchPaths:
- return lthemeengine::iconPaths();
- case DialogButtonBoxLayout:
- return m_buttonBoxLayout;
- case QPlatformTheme::UiEffects:
- return m_uiEffects;
+QVariant lthemeenginePlatformTheme::themeHint(QPlatformTheme::ThemeHint hint) const{
+ switch (hint){
+ case QPlatformTheme::CursorFlashTime: return m_cursorFlashTime;
+ case MouseDoubleClickInterval: return m_doubleClickInterval;
+ case QPlatformTheme::ToolButtonStyle: return m_toolButtonStyle;
+ case QPlatformTheme::SystemIconThemeName: return m_iconTheme;
+ case QPlatformTheme::StyleNames: return QStringList() << "lthemeengine-style";
+ case QPlatformTheme::IconThemeSearchPaths: return lthemeengine::iconPaths();
+ case DialogButtonBoxLayout: return m_buttonBoxLayout;
+ case QPlatformTheme::UiEffects: return m_uiEffects;
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
- case QPlatformTheme::WheelScrollLines:
- return m_wheelScrollLines;
+ case QPlatformTheme::WheelScrollLines: return m_wheelScrollLines;
#endif
- default:
- return QPlatformTheme::themeHint(hint);
+ default: return QPlatformTheme::themeHint(hint);
}
}
-void lthemeenginePlatformTheme::applySettings()
-{
- if(!QGuiApplication::desktopSettingsAware())
- return;
-
+void lthemeenginePlatformTheme::applySettings(){
+ if(!QGuiApplication::desktopSettingsAware())
+ return;
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0))
- if(!m_update)
- {
- //do not override application palette
- if(QCoreApplication::testAttribute(Qt::AA_SetPalette))
- {
- m_usePalette = false;
- qCDebug(llthemeengine) << "palette support is disabled";
+ if(!m_update){
+ //do not override application palette
+ if(QCoreApplication::testAttribute(Qt::AA_SetPalette)){
+ m_usePalette = false;
+ qCDebug(llthemeengine) << "palette support is disabled";
}
- }
+ }
#endif
-
#ifdef QT_WIDGETS_LIB
- if(hasWidgets())
- {
- qApp->setFont(m_generalFont);
-
- //Qt 5.6 or higher should be use themeHint function on application startup.
- //So, there is no need to call this function first time.
+ if(hasWidgets()){
+ qApp->setFont(m_generalFont);
+ //Qt 5.6 or higher should be use themeHint function on application startup.
+ //So, there is no need to call this function first time.
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
- if(m_update)
- qApp->setWheelScrollLines(m_wheelScrollLines);
+ if(m_update)
+ qApp->setWheelScrollLines(m_wheelScrollLines);
#else
- qApp->setWheelScrollLines(m_wheelScrollLines);
+ qApp->setWheelScrollLines(m_wheelScrollLines);
#endif
-
- if(m_update && qApp->style()->objectName() == "lthemeengine-style") //ignore application style
- qApp->setStyle("lthemeengine-style"); //recreate style object
-
- if(m_update && m_usePalette)
- {
- if(m_customPalette)
- qApp->setPalette(*m_customPalette);
- else
- qApp->setPalette(qApp->style()->standardPalette());
- }
-
+ if(m_update && qApp->style()->objectName() == "lthemeengine-style") //ignore application style
+ qApp->setStyle("lthemeengine-style"); //recreate style object
+ if(m_update && m_usePalette){
+ if(m_customPalette)
+ qApp->setPalette(*m_customPalette);
+ else
+ qApp->setPalette(qApp->style()->standardPalette());
+ }
//do not override application style
if(m_prevStyleSheet == qApp->styleSheet())
- qApp->setStyleSheet(m_userStyleSheet);
+ qApp->setStyleSheet(m_userStyleSheet);
else
- qCDebug(llthemeengine) << "custom style sheet is disabled";
- m_prevStyleSheet = m_userStyleSheet;
+ qCDebug(llthemeengine) << "custom style sheet is disabled";
+ m_prevStyleSheet = m_userStyleSheet;
}
#endif
- QGuiApplication::setFont(m_generalFont); //apply font
- QIcon::setThemeName(m_iconTheme); //apply icons
- if(m_customPalette && m_usePalette)
- QGuiApplication::setPalette(*m_customPalette); //apply palette
-
+ QGuiApplication::setFont(m_generalFont); //apply font
+ QIcon::setThemeName(m_iconTheme); //apply icons
+ if(m_customPalette && m_usePalette)
+ QGuiApplication::setPalette(*m_customPalette); //apply palette
#ifdef QT_WIDGETS_LIB
- if(hasWidgets())
- {
- foreach (QWidget *w, qApp->allWidgets())
- {
- QEvent e(QEvent::ThemeChange);
- QApplication::sendEvent(w, &e);
- }
+ if(hasWidgets()){
+ foreach (QWidget *w, qApp->allWidgets()){
+ QEvent e(QEvent::ThemeChange);
+ QApplication::sendEvent(w, &e);
+ }
}
#endif
-
- if(!m_update)
- m_update = true;
+ if(!m_update)
+ m_update = true;
}
-
#ifdef QT_WIDGETS_LIB
-void lthemeenginePlatformTheme::createFSWatcher()
-{
- QFileSystemWatcher *watcher = new QFileSystemWatcher(this);
- watcher->addPath(lthemeengine::configPath());
- QTimer *timer = new QTimer(this);
- timer->setSingleShot(true);
- timer->setInterval(3000);
- connect(watcher, SIGNAL(directoryChanged(QString)), timer, SLOT(start()));
- connect(timer, SIGNAL(timeout()), SLOT(updateSettings()));
+void lthemeenginePlatformTheme::createFSWatcher(){
+ QFileSystemWatcher *watcher = new QFileSystemWatcher(this);
+ watcher->addPath(lthemeengine::configPath());
+ QTimer *timer = new QTimer(this);
+ timer->setSingleShot(true);
+ timer->setInterval(3000);
+ connect(watcher, SIGNAL(directoryChanged(QString)), timer, SLOT(start()));
+ connect(timer, SIGNAL(timeout()), SLOT(updateSettings()));
}
-void lthemeenginePlatformTheme::updateSettings()
-{
- qCDebug(llthemeengine) << "updating settings..";
- readSettings();
- applySettings();
+void lthemeenginePlatformTheme::updateSettings(){
+ qCDebug(llthemeengine) << "updating settings..";
+ readSettings();
+ applySettings();
}
#endif
-void lthemeenginePlatformTheme::readSettings()
-{
- if(m_customPalette)
- {
- delete m_customPalette;
- m_customPalette = 0;
+void lthemeenginePlatformTheme::readSettings(){
+ if(m_customPalette){
+ delete m_customPalette;
+ m_customPalette = 0;
}
-
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
-
- settings.beginGroup("Appearance");
- m_style = settings.value("style", "Fusion").toString();
- if(settings.value("custom_palette", false).toBool())
- {
- QString schemePath = settings.value("color_scheme_path").toString();
- m_customPalette = new QPalette(loadColorScheme(schemePath));
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Appearance");
+ m_style = settings.value("style", "Fusion").toString();
+ if(settings.value("custom_palette", false).toBool()){
+ QString schemePath = settings.value("color_scheme_path").toString();
+ m_customPalette = new QPalette(loadColorScheme(schemePath));
}
- m_iconTheme = settings.value("icon_theme").toString();
- settings.endGroup();
-
- settings.beginGroup("Fonts");
- m_generalFont = settings.value("general", QPlatformTheme::font(QPlatformTheme::SystemFont)).value<QFont>();
- m_fixedFont = settings.value("fixed", QPlatformTheme::font(QPlatformTheme::FixedFont)).value<QFont>();
- settings.endGroup();
-
- settings.beginGroup("Interface");
- m_doubleClickInterval = QPlatformTheme::themeHint(QPlatformTheme::MouseDoubleClickInterval).toInt();
- m_doubleClickInterval = settings.value("double_click_interval", m_doubleClickInterval).toInt();
- m_cursorFlashTime = QPlatformTheme::themeHint(QPlatformTheme::CursorFlashTime).toInt();
- m_cursorFlashTime = settings.value("cursor_flash_time", m_cursorFlashTime).toInt();
- m_buttonBoxLayout = QPlatformTheme::themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
- m_buttonBoxLayout = settings.value("buttonbox_layout", m_buttonBoxLayout).toInt();
- QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, !settings.value("menus_have_icons", true).toBool());
- m_toolButtonStyle = settings.value("toolbutton_style", Qt::ToolButtonFollowStyle).toInt();
- m_wheelScrollLines = settings.value("wheel_scroll_lines", 3).toInt();
-
- //load effects
- m_uiEffects = QPlatformTheme::themeHint(QPlatformTheme::UiEffects).toInt();
- if(settings.childKeys().contains("gui_effects"))
- {
- QStringList effectList = settings.value("gui_effects").toStringList();
- m_uiEffects = 0;
- if(effectList.contains("General"))
- m_uiEffects |= QPlatformTheme::GeneralUiEffect;
+ m_iconTheme = settings.value("icon_theme").toString();
+ settings.endGroup();
+ settings.beginGroup("Fonts");
+ m_generalFont = settings.value("general", QPlatformTheme::font(QPlatformTheme::SystemFont)).value<QFont>();
+ m_fixedFont = settings.value("fixed", QPlatformTheme::font(QPlatformTheme::FixedFont)).value<QFont>();
+ settings.endGroup();
+ settings.beginGroup("Interface");
+ m_doubleClickInterval = QPlatformTheme::themeHint(QPlatformTheme::MouseDoubleClickInterval).toInt();
+ m_doubleClickInterval = settings.value("double_click_interval", m_doubleClickInterval).toInt();
+ m_cursorFlashTime = QPlatformTheme::themeHint(QPlatformTheme::CursorFlashTime).toInt();
+ m_cursorFlashTime = settings.value("cursor_flash_time", m_cursorFlashTime).toInt();
+ m_buttonBoxLayout = QPlatformTheme::themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
+ m_buttonBoxLayout = settings.value("buttonbox_layout", m_buttonBoxLayout).toInt();
+ QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, !settings.value("menus_have_icons", true).toBool());
+ m_toolButtonStyle = settings.value("toolbutton_style", Qt::ToolButtonFollowStyle).toInt();
+ m_wheelScrollLines = settings.value("wheel_scroll_lines", 3).toInt();
+ //load effects
+ m_uiEffects = QPlatformTheme::themeHint(QPlatformTheme::UiEffects).toInt();
+ if(settings.childKeys().contains("gui_effects")){
+ QStringList effectList = settings.value("gui_effects").toStringList();
+ m_uiEffects = 0;
+ if(effectList.contains("General"))
+ m_uiEffects |= QPlatformTheme::GeneralUiEffect;
if(effectList.contains("AnimateMenu"))
- m_uiEffects |= QPlatformTheme::AnimateMenuUiEffect;
- if(effectList.contains("FadeMenu"))
+ m_uiEffects |= QPlatformTheme::AnimateMenuUiEffect;
+ if(effectList.contains("FadeMenu"))
m_uiEffects |= QPlatformTheme::FadeMenuUiEffect;
- if(effectList.contains("AnimateCombo"))
- m_uiEffects |= QPlatformTheme::AnimateComboUiEffect;
- if(effectList.contains("AnimateTooltip"))
- m_uiEffects |= QPlatformTheme::AnimateTooltipUiEffect;
- if(effectList.contains("FadeTooltip"))
- m_uiEffects |= QPlatformTheme::FadeTooltipUiEffect;
- if(effectList.contains("AnimateToolBox"))
- m_uiEffects |= QPlatformTheme::AnimateToolBoxUiEffect;
- }
-
+ if(effectList.contains("AnimateCombo"))
+ m_uiEffects |= QPlatformTheme::AnimateComboUiEffect;
+ if(effectList.contains("AnimateTooltip"))
+ m_uiEffects |= QPlatformTheme::AnimateTooltipUiEffect;
+ if(effectList.contains("FadeTooltip"))
+ m_uiEffects |= QPlatformTheme::FadeTooltipUiEffect;
+ if(effectList.contains("AnimateToolBox"))
+ m_uiEffects |= QPlatformTheme::AnimateToolBoxUiEffect;
+ }
//load style sheets
#ifdef QT_WIDGETS_LIB
QStringList qssPaths = settings.value("stylesheets").toStringList();
@@ -311,56 +234,44 @@ void lthemeenginePlatformTheme::readSettings()
}
#ifdef QT_WIDGETS_LIB
-bool lthemeenginePlatformTheme::hasWidgets()
-{
- return qobject_cast<QApplication *> (qApp) != nullptr;
+bool lthemeenginePlatformTheme::hasWidgets(){
+ return qobject_cast<QApplication *> (qApp) != nullptr;
}
#endif
-QString lthemeenginePlatformTheme::loadStyleSheets(const QStringList &paths)
-{
- QString content;
- foreach (QString path, paths)
- {
- if(!QFile::exists(path))
- continue;
-
- QFile file(path);
- file.open(QIODevice::ReadOnly);
- content.append(file.readAll());
+QString lthemeenginePlatformTheme::loadStyleSheets(const QStringList &paths){
+ QString content;
+ foreach (QString path, paths){
+ if(!QFile::exists(path))
+ continue;
+ QFile file(path);
+ file.open(QIODevice::ReadOnly);
+ content.append(file.readAll());
}
- QRegExp regExp("//.*(\\n|$)");
- regExp.setMinimal(true);
- content.remove(regExp);
- return content;
+ QRegExp regExp("//.*(\\n|$)");
+ regExp.setMinimal(true);
+ content.remove(regExp);
+ return content;
}
-QPalette lthemeenginePlatformTheme::loadColorScheme(const QString &filePath)
-{
- QPalette customPalette;
- QSettings settings(filePath, QSettings::IniFormat);
- settings.beginGroup("ColorScheme");
- QStringList activeColors = settings.value("active_colors").toStringList();
- QStringList inactiveColors = settings.value("inactive_colors").toStringList();
- QStringList disabledColors = settings.value("disabled_colors").toStringList();
- settings.endGroup();
-
- if(activeColors.count() == QPalette::NColorRoles &&
- inactiveColors.count() == QPalette::NColorRoles &&
- disabledColors.count() == QPalette::NColorRoles)
- {
- for (int i = 0; i < QPalette::NColorRoles; i++)
- {
- QPalette::ColorRole role = QPalette::ColorRole(i);
- customPalette.setColor(QPalette::Active, role, QColor(activeColors.at(i)));
- customPalette.setColor(QPalette::Inactive, role, QColor(inactiveColors.at(i)));
- customPalette.setColor(QPalette::Disabled, role, QColor(disabledColors.at(i)));
+QPalette lthemeenginePlatformTheme::loadColorScheme(const QString &filePath){
+ QPalette customPalette;
+ QSettings settings(filePath, QSettings::IniFormat);
+ settings.beginGroup("ColorScheme");
+ QStringList activeColors = settings.value("active_colors").toStringList();
+ QStringList inactiveColors = settings.value("inactive_colors").toStringList();
+ QStringList disabledColors = settings.value("disabled_colors").toStringList();
+ settings.endGroup();
+ if(activeColors.count() == QPalette::NColorRoles && inactiveColors.count() == QPalette::NColorRoles && disabledColors.count() == QPalette::NColorRoles){
+ for (int i = 0; i < QPalette::NColorRoles; i++){
+ QPalette::ColorRole role = QPalette::ColorRole(i);
+ customPalette.setColor(QPalette::Active, role, QColor(activeColors.at(i)));
+ customPalette.setColor(QPalette::Inactive, role, QColor(inactiveColors.at(i)));
+ customPalette.setColor(QPalette::Disabled, role, QColor(disabledColors.at(i)));
}
}
- else
- {
- customPalette = *QPlatformTheme::palette(SystemPalette); //load fallback palette
+ else{
+ customPalette = *QPlatformTheme::palette(SystemPalette); //load fallback palette
}
-
- return customPalette;
+ return customPalette;
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h
index 3996b451..5313b73e 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef LTHEMEENGINEPLATFORMTHEME_H
#define LTHEMEENGINEPLATFORMTHEME_H
@@ -50,8 +22,7 @@ class QPlatformSystemTrayIcon;
class QPlatformMenuBar;
#endif
-class lthemeenginePlatformTheme : public QObject, public QPlatformTheme
-{
+class lthemeenginePlatformTheme : public QObject, public QPlatformTheme{
Q_OBJECT
public:
lthemeenginePlatformTheme();
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp
index 37798f70..12e4a581 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp
@@ -1,46 +1,16 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <qpa/qplatformthemeplugin.h>
#include "lthemeengineplatformtheme.h"
QT_BEGIN_NAMESPACE
-class lthemeenginePlatformThemePlugin: public QPlatformThemePlugin
-{
+class lthemeenginePlatformThemePlugin: public QPlatformThemePlugin{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1" FILE "lthemeengine.json")
public:
QPlatformTheme *create(const QString &key, const QStringList &params);
};
-QPlatformTheme *lthemeenginePlatformThemePlugin::create(const QString &key, const QStringList &params)
-{
+QPlatformTheme *lthemeenginePlatformThemePlugin::create(const QString &key, const QStringList &params){
Q_UNUSED(params);
if (key.toLower() == "lthemeengine")
return new lthemeenginePlatformTheme();
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.cpp
index c9833a30..2c66144f 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.cpp
@@ -1,63 +1,29 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QSettings>
#include <lthemeengine/lthemeengine.h>
#include "lthemeengineproxystyle.h"
-lthemeengineProxyStyle::lthemeengineProxyStyle(const QString &key) :
- QProxyStyle(key)
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- m_dialogButtonsHaveIcons = settings.value("Interface/dialog_buttons_have_icons", Qt::PartiallyChecked).toInt();
- m_activateItemOnSingleClick = settings.value("Interface/activate_item_on_single_click", Qt::PartiallyChecked).toInt();
+lthemeengineProxyStyle::lthemeengineProxyStyle(const QString &key) : QProxyStyle(key){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ m_dialogButtonsHaveIcons = settings.value("Interface/dialog_buttons_have_icons", Qt::PartiallyChecked).toInt();
+ m_activateItemOnSingleClick = settings.value("Interface/activate_item_on_single_click", Qt::PartiallyChecked).toInt();
}
-lthemeengineProxyStyle::~lthemeengineProxyStyle()
-{
- //qDebug("%s", Q_FUNC_INFO);
+lthemeengineProxyStyle::~lthemeengineProxyStyle(){
+ //qDebug("%s", Q_FUNC_INFO);
}
-int lthemeengineProxyStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
-{
- if(hint == QStyle::SH_DialogButtonBox_ButtonsHaveIcons)
- {
- if(m_dialogButtonsHaveIcons == Qt::Unchecked)
- return 0;
- else if(m_dialogButtonsHaveIcons == Qt::Checked)
- return 1;
+int lthemeengineProxyStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const{
+ if(hint == QStyle::SH_DialogButtonBox_ButtonsHaveIcons){
+ if(m_dialogButtonsHaveIcons == Qt::Unchecked)
+ return 0;
+ else if(m_dialogButtonsHaveIcons == Qt::Checked)
+ return 1;
}
- else if(hint == QStyle::QStyle::SH_ItemView_ActivateItemOnSingleClick)
- {
- if(m_activateItemOnSingleClick == Qt::Unchecked)
- return 0;
- else if(m_activateItemOnSingleClick == Qt::Checked)
- return 1;
+ else if(hint == QStyle::QStyle::SH_ItemView_ActivateItemOnSingleClick){
+ if(m_activateItemOnSingleClick == Qt::Unchecked)
+ return 0;
+ else if(m_activateItemOnSingleClick == Qt::Checked)
+ return 1;
}
- return QProxyStyle::styleHint(hint, option, widget, returnData);
+ return QProxyStyle::styleHint(hint, option, widget, returnData);
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.h
index 47a18099..0d168897 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/lthemeengineproxystyle.h
@@ -1,38 +1,9 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef LTHEMEENGINEPROXYSTYLE_H
#define LTHEMEENGINEPROXYSTYLE_H
#include <QProxyStyle>
-class lthemeengineProxyStyle : public QProxyStyle
-{
+class lthemeengineProxyStyle : public QProxyStyle{
Q_OBJECT
public:
explicit lthemeengineProxyStyle(const QString &key);
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/plugin.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/plugin.cpp
index 9d63093e..fb9e5fb2 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/plugin.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-style/plugin.cpp
@@ -1,39 +1,10 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QStylePlugin>
#include <QSettings>
#include <QStyleFactory>
#include <lthemeengine/lthemeengine.h>
#include "lthemeengineproxystyle.h"
-class lthemeengineStylePlugin : public QStylePlugin
-{
+class lthemeengineStylePlugin : public QStylePlugin{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "lthemeengine.json")
@@ -41,8 +12,7 @@ public:
QStyle *create(const QString &key);
};
-QStyle *lthemeengineStylePlugin::create(const QString &key)
-{
+QStyle *lthemeengineStylePlugin::create(const QString &key){
if (key == "lthemeengine-style")
{
QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp
index b9175d6e..95f2c9b7 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QStyleFactory>
#include <QMdiSubWindow>
#include <QSettings>
@@ -40,379 +12,273 @@
#include "ui_appearancepage.h"
#include "ui_previewform.h"
-AppearancePage::AppearancePage(QWidget *parent) :
- TabPage(parent),
- m_ui(new Ui::AppearancePage)
-{
- m_ui->setupUi(this);
- QStringList keys = QStyleFactory::keys();
- keys.removeAll("lthemeengine-style"); //hide lthemeengine proxy style
- m_ui->styleComboBox->addItems(keys);
-
- connect(m_ui->paletteComboBox, SIGNAL(activated(int)), SLOT(updatePalette()));
- connect(m_ui->customPaletteButton, SIGNAL(clicked()), SLOT(updatePalette()));
- connect(m_ui->defaultPaletteButton, SIGNAL(clicked()), SLOT(updatePalette()));
-
- m_previewWidget = new QWidget(this);
- m_previewUi = new Ui::PreviewForm();
- m_previewUi->setupUi(m_previewWidget);
- QMdiSubWindow *w = m_ui->mdiArea->addSubWindow(m_previewWidget, Qt::CustomizeWindowHint
- | Qt::WindowMinMaxButtonsHint
- | Qt::WindowTitleHint);
- w->move(10, 10);
-
- QMenu *menu = new QMenu(this);
- menu->addAction(QIcon::fromTheme("list-add"), tr("Create"), this, SLOT(createColorScheme()));
- m_changeColorSchemeAction = menu->addAction(tr("Edit"), this, SLOT(changeColorScheme()));
- menu->addAction(tr("Create a Copy"), this, SLOT(copyColorScheme()));
- m_renameColorSchemeAction = menu->addAction(tr("Rename"), this, SLOT(renameColorScheme()));
- menu->addSeparator();
- m_removeColorSchemeAction = menu->addAction(tr("Remove"), this, SLOT(removeColorScheme()));
- m_ui->colorSchemeButton->setMenu(menu);
-
- m_changeColorSchemeAction->setIcon(QIcon::fromTheme("accessories-text-editor"));
- m_removeColorSchemeAction->setIcon(QIcon::fromTheme("list-remove"));
- connect(menu, SIGNAL(aboutToShow()), SLOT(updateActions()));
-
- readSettings();
+AppearancePage::AppearancePage(QWidget *parent) : TabPage(parent), m_ui(new Ui::AppearancePage){
+ m_ui->setupUi(this);
+ QStringList keys = QStyleFactory::keys();
+ keys.removeAll("lthemeengine-style"); //hide lthemeengine proxy style
+ m_ui->styleComboBox->addItems(keys);
+ connect(m_ui->paletteComboBox, SIGNAL(activated(int)), SLOT(updatePalette()));
+ connect(m_ui->customPaletteButton, SIGNAL(clicked()), SLOT(updatePalette()));
+ connect(m_ui->defaultPaletteButton, SIGNAL(clicked()), SLOT(updatePalette()));
+ m_previewWidget = new QWidget(this);
+ m_previewUi = new Ui::PreviewForm();
+ m_previewUi->setupUi(m_previewWidget);
+ QMdiSubWindow *w = m_ui->mdiArea->addSubWindow(m_previewWidget, Qt::CustomizeWindowHint | Qt::WindowMinMaxButtonsHint | Qt::WindowTitleHint);
+ w->move(10, 10);
+
+ QMenu *menu = new QMenu(this);
+ menu->addAction(QIcon::fromTheme("list-add"), tr("Create"), this, SLOT(createColorScheme()));
+ m_changeColorSchemeAction = menu->addAction(tr("Edit"), this, SLOT(changeColorScheme()));
+ menu->addAction(tr("Create a Copy"), this, SLOT(copyColorScheme()));
+ m_renameColorSchemeAction = menu->addAction(tr("Rename"), this, SLOT(renameColorScheme()));
+ menu->addSeparator();
+ m_removeColorSchemeAction = menu->addAction(tr("Remove"), this, SLOT(removeColorScheme()));
+ m_ui->colorSchemeButton->setMenu(menu);
+ m_changeColorSchemeAction->setIcon(QIcon::fromTheme("accessories-text-editor"));
+ m_removeColorSchemeAction->setIcon(QIcon::fromTheme("list-remove"));
+ connect(menu, SIGNAL(aboutToShow()), SLOT(updateActions()));
+
+ readSettings();
}
-AppearancePage::~AppearancePage()
-{
- if(m_selectedStyle)
- delete m_selectedStyle;
+AppearancePage::~AppearancePage(){
+ if(m_selectedStyle)
+ delete m_selectedStyle;
delete m_ui;
delete m_previewUi;
}
-void AppearancePage::writeSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.beginGroup("Appearance");
- settings.setValue("style", m_ui->styleComboBox->currentText());
- settings.setValue("custom_palette", m_ui->customPaletteButton->isChecked());
- settings.setValue("color_scheme_path", m_ui->colorSchemeComboBox->currentData().toString());
- settings.endGroup();
+void AppearancePage::writeSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Appearance");
+ settings.setValue("style", m_ui->styleComboBox->currentText());
+ settings.setValue("custom_palette", m_ui->customPaletteButton->isChecked());
+ settings.setValue("color_scheme_path", m_ui->colorSchemeComboBox->currentData().toString());
+ settings.endGroup();
}
-void AppearancePage::on_styleComboBox_activated(const QString &text)
-{
- QStyle *style = QStyleFactory::create(text);
- if(!style)
- return;
+void AppearancePage::on_styleComboBox_activated(const QString &text){
+ QStyle *style = QStyleFactory::create(text);
+ if(!style)
+ return;
setStyle(m_previewWidget, style);
-
if(m_selectedStyle)
- delete m_selectedStyle;
- m_selectedStyle = style;
-
- updatePalette();
+ delete m_selectedStyle;
+ m_selectedStyle = style;
+ updatePalette();
}
-void AppearancePage::on_colorSchemeComboBox_activated(int)
-{
- m_customPalette = loadColorScheme(m_ui->colorSchemeComboBox->currentData().toString());
- updatePalette();
+void AppearancePage::on_colorSchemeComboBox_activated(int){
+ m_customPalette = loadColorScheme(m_ui->colorSchemeComboBox->currentData().toString());
+ updatePalette();
}
-void AppearancePage::createColorScheme()
-{
- QString name = QInputDialog::getText(this, tr("Enter Color Scheme Name"), tr("File name:"));
- if(name.isEmpty())
- return;
-
+void AppearancePage::createColorScheme(){
+ QString name = QInputDialog::getText(this, tr("Enter Color Scheme Name"), tr("File name:"));
+ if(name.isEmpty())
+ return;
if(!name.endsWith(".conf", Qt::CaseInsensitive))
- name.append(".conf");
-
- if(m_ui->colorSchemeComboBox->findText(name.section('.',0,0)) != -1)
- {
- QMessageBox::warning(this, tr("Error"), tr("The color scheme \"%1\" already exists")
- .arg(name.section('.',0,0)));
+ name.append(".conf");
+ if(m_ui->colorSchemeComboBox->findText(name.section('.',0,0)) != -1){
+ QMessageBox::warning(this, tr("Error"), tr("The color scheme \"%1\" already exists").arg(name.section('.',0,0)));
return;
- }
-
+ }
QString schemePath = lthemeengine::userColorSchemePath() + "/" + name;
-
createColorScheme(schemePath, palette());
m_ui->colorSchemeComboBox->addItem(name.section('.',0,0), schemePath);
}
-void AppearancePage::changeColorScheme()
-{
- if(m_ui->colorSchemeComboBox->currentIndex() < 0)
- return;
-
- if(!QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable())
- {
- QMessageBox::information(this, tr("Warning"), tr("The color scheme \"%1\" is read only")
- .arg(m_ui->colorSchemeComboBox->currentText()));
- return;
+void AppearancePage::changeColorScheme(){
+ if(m_ui->colorSchemeComboBox->currentIndex() < 0)
+ return;
+ if(!QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable()){
+ QMessageBox::information(this, tr("Warning"), tr("The color scheme \"%1\" is read only").arg(m_ui->colorSchemeComboBox->currentText()));
+ return;
}
-
PaletteEditDialog d(m_customPalette, m_selectedStyle, this);
connect(&d, SIGNAL(paletteChanged(QPalette)), SLOT(setPreviewPalette(QPalette)));
- if(d.exec() == QDialog::Accepted)
- {
- m_customPalette = d.selectedPalette();
- createColorScheme(m_ui->colorSchemeComboBox->currentData().toString(), m_customPalette);
+ if(d.exec() == QDialog::Accepted){
+ m_customPalette = d.selectedPalette();
+ createColorScheme(m_ui->colorSchemeComboBox->currentData().toString(), m_customPalette);
}
updatePalette();
}
-void AppearancePage::removeColorScheme()
-{
- int index = m_ui->colorSchemeComboBox->currentIndex();
- if(index < 0 || m_ui->colorSchemeComboBox->count() <= 1)
- return;
-
- if(!QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable())
- {
- QMessageBox::information(this, tr("Warning"), tr("The color scheme \"%1\" is read only")
- .arg(m_ui->colorSchemeComboBox->currentText()));
- return;
+void AppearancePage::removeColorScheme(){
+ int index = m_ui->colorSchemeComboBox->currentIndex();
+ if(index < 0 || m_ui->colorSchemeComboBox->count() <= 1)
+ return;
+ if(!QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable()){
+ QMessageBox::information(this, tr("Warning"), tr("The color scheme \"%1\" is read only").arg(m_ui->colorSchemeComboBox->currentText()));
+ return;
}
-
- int button = QMessageBox::question(this, tr("Confirm Remove"),
- tr("Are you sure you want to remove color scheme \"%1\"?")
- .arg(m_ui->colorSchemeComboBox->currentText()),
- QMessageBox::Yes | QMessageBox::No);
+ int button = QMessageBox::question(this, tr("Confirm Remove"),tr("Are you sure you want to remove color scheme \"%1\"?").arg(m_ui->colorSchemeComboBox->currentText()), QMessageBox::Yes | QMessageBox::No);
if(button != QMessageBox::Yes)
- return;
-
- if(QFile::remove(m_ui->colorSchemeComboBox->currentData().toString()))
- {
+ return;
+ if(QFile::remove(m_ui->colorSchemeComboBox->currentData().toString())){
m_ui->colorSchemeComboBox->removeItem(index);
on_colorSchemeComboBox_activated(0);
- }
+ }
}
-void AppearancePage::copyColorScheme()
-{
- if(m_ui->colorSchemeComboBox->currentIndex() < 0)
- return;
-
- QString name = QInputDialog::getText(this, tr("Enter Color Scheme Name"), tr("File name:"),
- QLineEdit::Normal,
- tr("%1 (copy)").arg(m_ui->colorSchemeComboBox->currentText()));
+void AppearancePage::copyColorScheme(){
+ if(m_ui->colorSchemeComboBox->currentIndex() < 0)
+ return;
+ QString name = QInputDialog::getText(this, tr("Enter Color Scheme Name"), tr("File name:"),QLineEdit::Normal, tr("%1 (copy)").arg(m_ui->colorSchemeComboBox->currentText()));
if(name.isEmpty() || name == m_ui->colorSchemeComboBox->currentText())
- return;
-
- if(!name.endsWith(".conf", Qt::CaseInsensitive))
- name.append(".conf");
-
- if(m_ui->colorSchemeComboBox->findText(name.section('.',0,0)) != -1)
- {
- QMessageBox::warning(this, tr("Error"), tr("The color scheme \"%1\" already exists")
- .arg(name.section('.',0,0)));
- return;
- }
-
- QString newPath = lthemeengine::userColorSchemePath() + "/" + name;
- QFile::copy(m_ui->colorSchemeComboBox->currentData().toString(), newPath);
- m_ui->colorSchemeComboBox->addItem(name.section('.',0,0), newPath);
+ return;
+ if(!name.endsWith(".conf", Qt::CaseInsensitive))name.append(".conf");
+ if(m_ui->colorSchemeComboBox->findText(name.section('.',0,0)) != -1){
+ QMessageBox::warning(this, tr("Error"), tr("The color scheme \"%1\" already exists").arg(name.section('.',0,0)));
+ return;
+ }
+ QString newPath = lthemeengine::userColorSchemePath() + "/" + name;
+ QFile::copy(m_ui->colorSchemeComboBox->currentData().toString(), newPath);
+ m_ui->colorSchemeComboBox->addItem(name.section('.',0,0), newPath);
}
-void AppearancePage::renameColorScheme()
-{
- int index = m_ui->colorSchemeComboBox->currentIndex();
-
+void AppearancePage::renameColorScheme(){
+ int index = m_ui->colorSchemeComboBox->currentIndex();
if(index < 0)
+ return;
+ if(!QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable()){
+ QMessageBox::information(this, tr("Warning"), tr("The color scheme \"%1\" is read only").arg(m_ui->colorSchemeComboBox->currentText()));
return;
-
- if(!QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable())
- {
- QMessageBox::information(this, tr("Warning"), tr("The color scheme \"%1\" is read only")
- .arg(m_ui->colorSchemeComboBox->currentText()));
- return;
- }
-
- QString name = QInputDialog::getText(this, tr("Enter Color Scheme Name"), tr("File name:"),
- QLineEdit::Normal, m_ui->colorSchemeComboBox->currentText());
- if(name.isEmpty() || name == m_ui->colorSchemeComboBox->currentText())
- return;
-
- if(!name.endsWith(".conf", Qt::CaseInsensitive))
- name.append(".conf");
-
- if(m_ui->colorSchemeComboBox->findText(name.section('.',0,0)) != -1)
- {
- QMessageBox::warning(this, tr("Error"), tr("The color scheme \"%1\" already exists")
- .arg(name.section('.',0,0)));
+ }
+ QString name = QInputDialog::getText(this, tr("Enter Color Scheme Name"), tr("File name:"), QLineEdit::Normal, m_ui->colorSchemeComboBox->currentText());
+ if(name.isEmpty() || name == m_ui->colorSchemeComboBox->currentText())
return;
- }
-
- QString newPath = lthemeengine::userColorSchemePath() + "/" + name;
- QFile::rename(m_ui->colorSchemeComboBox->currentData().toString(), newPath);
- m_ui->colorSchemeComboBox->setItemText(index, name.section('.',0,0));
- m_ui->colorSchemeComboBox->setItemData(index, newPath);
+ if(!name.endsWith(".conf", Qt::CaseInsensitive))name.append(".conf");
+ if(m_ui->colorSchemeComboBox->findText(name.section('.',0,0)) != -1){
+ QMessageBox::warning(this, tr("Error"), tr("The color scheme \"%1\" already exists").arg(name.section('.',0,0)));
+ return;
+ }
+ QString newPath = lthemeengine::userColorSchemePath() + "/" + name;
+ QFile::rename(m_ui->colorSchemeComboBox->currentData().toString(), newPath);
+ m_ui->colorSchemeComboBox->setItemText(index, name.section('.',0,0));
+ m_ui->colorSchemeComboBox->setItemData(index, newPath);
}
-void AppearancePage::updatePalette()
-{
+void AppearancePage::updatePalette(){
if(!m_selectedStyle)
- return;
-
- setPreviewPalette(m_ui->customPaletteButton->isChecked() ?
- m_customPalette : m_selectedStyle->standardPalette());
+ return;
+ setPreviewPalette(m_ui->customPaletteButton->isChecked() ? m_customPalette : m_selectedStyle->standardPalette());
}
-void AppearancePage::setPreviewPalette(const QPalette &p)
-{
- QPalette previewPalette = palette();
-
- QPalette::ColorGroup colorGroup = QPalette::Disabled;
-
- if(m_ui->paletteComboBox->currentIndex() == 0)
- {
- colorGroup = QPalette::Active;
- }
- else if(m_ui->paletteComboBox->currentIndex() == 1)
- {
- colorGroup = QPalette::Inactive;
+void AppearancePage::setPreviewPalette(const QPalette &p){
+ QPalette previewPalette = palette();
+ QPalette::ColorGroup colorGroup = QPalette::Disabled;
+ if(m_ui->paletteComboBox->currentIndex() == 0){
+ colorGroup = QPalette::Active;
}
-
- for (int i = 0; i < QPalette::NColorRoles; i++)
- {
- QPalette::ColorRole role = QPalette::ColorRole(i);
- previewPalette.setColor(QPalette::Active, role, p.color(colorGroup, role));
- previewPalette.setColor(QPalette::Inactive, role, p.color(colorGroup, role));
- }
-
- setPalette(m_ui->mdiArea, previewPalette);
+ else if(m_ui->paletteComboBox->currentIndex() == 1){
+ colorGroup = QPalette::Inactive;
+ }
+ for (int i = 0; i < QPalette::NColorRoles; i++){
+ QPalette::ColorRole role = QPalette::ColorRole(i);
+ previewPalette.setColor(QPalette::Active, role, p.color(colorGroup, role));
+ previewPalette.setColor(QPalette::Inactive, role, p.color(colorGroup, role));
+ }
+ setPalette(m_ui->mdiArea, previewPalette);
}
-void AppearancePage::updateActions()
-{
- if(m_ui->colorSchemeComboBox->count() == 0 ||
- !QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable())
- {
- m_changeColorSchemeAction->setVisible(false);
- m_renameColorSchemeAction->setVisible(false);
- m_removeColorSchemeAction->setVisible(false);
- }
- else
- {
- m_changeColorSchemeAction->setVisible(true);
- m_renameColorSchemeAction->setVisible(true);
- m_removeColorSchemeAction->setVisible(m_ui->colorSchemeComboBox->count() > 1);
+void AppearancePage::updateActions(){
+ if(m_ui->colorSchemeComboBox->count() == 0 || !QFileInfo(m_ui->colorSchemeComboBox->currentData().toString()).isWritable()){
+ m_changeColorSchemeAction->setVisible(false);
+ m_renameColorSchemeAction->setVisible(false);
+ m_removeColorSchemeAction->setVisible(false);
}
+ else{
+ m_changeColorSchemeAction->setVisible(true);
+ m_renameColorSchemeAction->setVisible(true);
+ m_removeColorSchemeAction->setVisible(m_ui->colorSchemeComboBox->count() > 1);
+ }
}
-void AppearancePage::readSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.beginGroup("Appearance");
- QString style = settings.value("style", "Fusion").toString();
- m_ui->styleComboBox->setCurrentText(style);
-
- m_ui->customPaletteButton->setChecked(settings.value("custom_palette", false).toBool());
- QString colorSchemePath = settings.value("color_scheme_path").toString();
-
- QDir("/").mkpath(lthemeengine::userColorSchemePath());
- findColorSchemes(lthemeengine::userColorSchemePath());
- findColorSchemes(lthemeengine::sharedColorSchemePath().join(", "));
-
- if(m_ui->colorSchemeComboBox->count() == 0)
- {
- m_customPalette = palette(); //load fallback palette
- }
- else
- {
- int index = m_ui->colorSchemeComboBox->findData(colorSchemePath);
- if(index >= 0)
- m_ui->colorSchemeComboBox->setCurrentIndex(index);
- m_customPalette = loadColorScheme(m_ui->colorSchemeComboBox->currentData().toString());
+void AppearancePage::readSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Appearance");
+ QString style = settings.value("style", "Fusion").toString();
+ m_ui->styleComboBox->setCurrentText(style);
+ m_ui->customPaletteButton->setChecked(settings.value("custom_palette", false).toBool());
+ QString colorSchemePath = settings.value("color_scheme_path").toString();
+ QDir("/").mkpath(lthemeengine::userColorSchemePath());
+ findColorSchemes(lthemeengine::userColorSchemePath());
+ findColorSchemes(lthemeengine::sharedColorSchemePath().join(", "));
+ if(m_ui->colorSchemeComboBox->count() == 0){
+ m_customPalette = palette(); //load fallback palette
}
-
+ else{
+ int index = m_ui->colorSchemeComboBox->findData(colorSchemePath);
+ if(index >= 0)
+ m_ui->colorSchemeComboBox->setCurrentIndex(index);
+ m_customPalette = loadColorScheme(m_ui->colorSchemeComboBox->currentData().toString());
+ }
on_styleComboBox_activated(m_ui->styleComboBox->currentText());
-
settings.endGroup();
}
-void AppearancePage::setStyle(QWidget *w, QStyle *s)
-{
- foreach (QObject *o, w->children())
- {
- if(o->isWidgetType())
- {
- setStyle(qobject_cast<QWidget *>(o), s);
- }
+void AppearancePage::setStyle(QWidget *w, QStyle *s){
+ foreach (QObject *o, w->children()){
+ if(o->isWidgetType()){
+ setStyle(qobject_cast<QWidget *>(o), s);
}
- w->setStyle(s);
+ }
+ w->setStyle(s);
}
-void AppearancePage::setPalette(QWidget *w, QPalette p)
-{
- foreach (QObject *o, w->children())
- {
- if(o->isWidgetType())
- {
- setPalette(qobject_cast<QWidget *>(o), p);
- }
+void AppearancePage::setPalette(QWidget *w, QPalette p){
+ foreach (QObject *o, w->children()){
+ if(o->isWidgetType()){
+ setPalette(qobject_cast<QWidget *>(o), p);
+ }
}
- w->setPalette(p);
+ w->setPalette(p);
}
-void AppearancePage::findColorSchemes(const QString &path)
-{
- QDir dir(path);
- dir.setFilter(QDir::Files);
- dir.setNameFilters(QStringList() << "*.conf");
-
- foreach (QFileInfo info, dir.entryInfoList())
- {
- m_ui->colorSchemeComboBox->addItem(info.baseName(), info.filePath());
+void AppearancePage::findColorSchemes(const QString &path){
+ QDir dir(path);
+ dir.setFilter(QDir::Files);
+ dir.setNameFilters(QStringList() << "*.conf");
+ foreach (QFileInfo info, dir.entryInfoList()){
+ m_ui->colorSchemeComboBox->addItem(info.baseName(), info.filePath());
}
}
-QPalette AppearancePage::loadColorScheme(const QString &filePath)
-{
- QPalette customPalette;
- QSettings settings(filePath, QSettings::IniFormat);
- settings.beginGroup("ColorScheme");
- QStringList activeColors = settings.value("active_colors").toStringList();
- QStringList inactiveColors = settings.value("inactive_colors").toStringList();
- QStringList disabledColors = settings.value("disabled_colors").toStringList();
- settings.endGroup();
-
- if(activeColors.count() == QPalette::NColorRoles &&
- inactiveColors.count() == QPalette::NColorRoles &&
- disabledColors.count() == QPalette::NColorRoles)
- {
- for (int i = 0; i < QPalette::NColorRoles; i++)
- {
- QPalette::ColorRole role = QPalette::ColorRole(i);
- customPalette.setColor(QPalette::Active, role, QColor(activeColors.at(i)));
- customPalette.setColor(QPalette::Inactive, role, QColor(inactiveColors.at(i)));
- customPalette.setColor(QPalette::Disabled, role, QColor(disabledColors.at(i)));
- }
+QPalette AppearancePage::loadColorScheme(const QString &filePath){
+ QPalette customPalette;
+ QSettings settings(filePath, QSettings::IniFormat);
+ settings.beginGroup("ColorScheme");
+ QStringList activeColors = settings.value("active_colors").toStringList();
+ QStringList inactiveColors = settings.value("inactive_colors").toStringList();
+ QStringList disabledColors = settings.value("disabled_colors").toStringList();
+ settings.endGroup();
+ if(activeColors.count() == QPalette::NColorRoles && inactiveColors.count() == QPalette::NColorRoles && disabledColors.count() == QPalette::NColorRoles){
+ for (int i = 0; i < QPalette::NColorRoles; i++){
+ QPalette::ColorRole role = QPalette::ColorRole(i);
+ customPalette.setColor(QPalette::Active, role, QColor(activeColors.at(i)));
+ customPalette.setColor(QPalette::Inactive, role, QColor(inactiveColors.at(i)));
+ customPalette.setColor(QPalette::Disabled, role, QColor(disabledColors.at(i)));
+ }
}
- else
- {
- customPalette = palette(); //load fallback palette
- }
-
+ else{
+ customPalette = palette(); //load fallback palette
+ }
return customPalette;
}
-void AppearancePage::createColorScheme(const QString &name, const QPalette &palette)
-{
- QSettings settings(name, QSettings::IniFormat);
- settings.beginGroup("ColorScheme");
-
- QStringList activeColors, inactiveColors, disabledColors;
- for (int i = 0; i < QPalette::NColorRoles; i++)
- {
- QPalette::ColorRole role = QPalette::ColorRole(i);
- activeColors << palette.color(QPalette::Active, role).name();
- inactiveColors << palette.color(QPalette::Inactive, role).name();
- disabledColors << palette.color(QPalette::Disabled, role).name();
+void AppearancePage::createColorScheme(const QString &name, const QPalette &palette){
+ QSettings settings(name, QSettings::IniFormat);
+ settings.beginGroup("ColorScheme");
+ QStringList activeColors, inactiveColors, disabledColors;
+ for (int i = 0; i < QPalette::NColorRoles; i++){
+ QPalette::ColorRole role = QPalette::ColorRole(i);
+ activeColors << palette.color(QPalette::Active, role).name();
+ inactiveColors << palette.color(QPalette::Inactive, role).name();
+ disabledColors << palette.color(QPalette::Disabled, role).name();
}
-
- settings.setValue("active_colors",activeColors);
- settings.setValue("inactive_colors",inactiveColors);
- settings.setValue("disabled_colors",disabledColors);
-
- settings.endGroup();
-
+ settings.setValue("active_colors",activeColors);
+ settings.setValue("inactive_colors",inactiveColors);
+ settings.setValue("disabled_colors",disabledColors);
+ settings.endGroup();
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h
index 3a7752c7..23bab52f 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/appearancepage.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef APPEARANCEPAGE_H
#define APPEARANCEPAGE_H
@@ -39,14 +11,12 @@ class PreviewForm;
class QStyle;
class QAction;
-class AppearancePage : public TabPage
-{
+class AppearancePage : public TabPage{
Q_OBJECT
public:
explicit AppearancePage(QWidget *parent = 0);
~AppearancePage();
-
void writeSettings();
private slots:
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.cpp
index 398a2436..13c92bf0 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QXmlStreamWriter>
#include <QFile>
#include <QDir>
@@ -33,106 +5,80 @@
#include "fontconfigdialog.h"
#include "ui_fontconfigdialog.h"
-FontConfigDialog::FontConfigDialog(QWidget *parent) :
- QDialog(parent),
- m_ui(new Ui::FontConfigDialog)
-{
- m_ui->setupUi(this);
-
- m_ui->hintingStyleComboBox->addItem(tr("None"), "hintnone");
- m_ui->hintingStyleComboBox->addItem(tr("Slight"), "hintslight");
- m_ui->hintingStyleComboBox->addItem(tr("Medium"), "hintmedium");
- m_ui->hintingStyleComboBox->addItem(tr("Full"), "hintfull");
-
- m_ui->rgbaComboBox->addItem(tr("None"), "none");
- m_ui->rgbaComboBox->addItem("rgb", "rgb");
- m_ui->rgbaComboBox->addItem("bgr", "bgr");
- m_ui->rgbaComboBox->addItem("vrgb", "vrgb");
- m_ui->rgbaComboBox->addItem("vbgr", "vbgr");
-
- m_ui->lcdFilterComboBox->addItem("lcdnone");
- m_ui->lcdFilterComboBox->addItem("lcddefault");
- m_ui->lcdFilterComboBox->addItem("lcdlight");
- m_ui->lcdFilterComboBox->addItem("lcdlegacy");
+FontConfigDialog::FontConfigDialog(QWidget *parent) : QDialog(parent), m_ui(new Ui::FontConfigDialog){
+ m_ui->setupUi(this);
+
+ m_ui->hintingStyleComboBox->addItem(tr("None"), "hintnone");
+ m_ui->hintingStyleComboBox->addItem(tr("Slight"), "hintslight");
+ m_ui->hintingStyleComboBox->addItem(tr("Medium"), "hintmedium");
+ m_ui->hintingStyleComboBox->addItem(tr("Full"), "hintfull");
+ m_ui->rgbaComboBox->addItem(tr("None"), "none");
+ m_ui->rgbaComboBox->addItem("rgb", "rgb");
+ m_ui->rgbaComboBox->addItem("bgr", "bgr");
+ m_ui->rgbaComboBox->addItem("vrgb", "vrgb");
+ m_ui->rgbaComboBox->addItem("vbgr", "vbgr");
+ m_ui->lcdFilterComboBox->addItem("lcdnone");
+ m_ui->lcdFilterComboBox->addItem("lcddefault");
+ m_ui->lcdFilterComboBox->addItem("lcdlight");
+ m_ui->lcdFilterComboBox->addItem("lcdlegacy");
}
-FontConfigDialog::~FontConfigDialog()
-{
- delete m_ui;
+FontConfigDialog::~FontConfigDialog(){
+ delete m_ui;
}
-void FontConfigDialog::accept()
-{
- QDir::home().mkpath(".config/fontconfig/");
- QString path = QDir::homePath() + "/.config/fontconfig/fonts.conf";
- qDebug("FontConfigDialog: fontconfig path: %s", qPrintable(path));
-
-
- if(QFile::exists(path))
- {
- if(QMessageBox::question(this, tr("Font Configuration"),
- tr("<i>%1</i> already exists. Do you want to replace it?").arg(path),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::No)
- {
- QDialog::reject();
- return;
- }
-
- QFile::remove(path + ".back");
- QFile::copy(path, path + ".back");
+void FontConfigDialog::accept(){
+ QDir::home().mkpath(".config/fontconfig/");
+ QString path = QDir::homePath() + "/.config/fontconfig/fonts.conf";
+ qDebug("FontConfigDialog: fontconfig path: %s", qPrintable(path));
+ if(QFile::exists(path)){
+ if(QMessageBox::question(this, tr("Font Configuration"), tr("<i>%1</i> already exists. Do you want to replace it?").arg(path), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No){
+ QDialog::reject();
+ return;
+ }
+ QFile::remove(path + ".back");
+ QFile::copy(path, path + ".back");
}
-
- QFile file(path);
- if(!file.open(QIODevice::WriteOnly))
- {
- qWarning("FontConfigDialog: unable to open file: %s", qPrintable(file.errorString()));
- return;
+ QFile file(path);
+ if(!file.open(QIODevice::WriteOnly)){
+ qWarning("FontConfigDialog: unable to open file: %s", qPrintable(file.errorString()));
+ return;
}
-
- QXmlStreamWriter stream(&file);
- stream.setAutoFormatting(true);
-
- stream.writeStartDocument();
- stream.writeDTD("<!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">");
- stream.writeStartElement("fontconfig");
-
+ QXmlStreamWriter stream(&file);
+ stream.setAutoFormatting(true);
+ stream.writeStartDocument();
+ stream.writeDTD("<!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">");
+ stream.writeStartElement("fontconfig");
+ stream.writeStartElement("match");
+ stream.writeAttribute("target", "font");
+ writeOption(&stream, "antialias", "bool", m_ui->antialisingCheckBox->isChecked() ? "true" : "false");
+ writeOption(&stream, "hinting", "bool", m_ui->hintingCheckBox->isChecked() ? "true" : "false");
+ writeOption(&stream, "hintstyle", "const", m_ui->hintingStyleComboBox->currentData().toString());
+ writeOption(&stream, "rgba", "const", m_ui->rgbaComboBox->currentData().toString());
+ writeOption(&stream, "autohint", "bool", m_ui->autohinterCheckBox->isChecked() ? "true" : "false");
+ writeOption(&stream, "lcdfilter", "const", m_ui->lcdFilterComboBox->currentText());
+ writeOption(&stream, "dpi", "double", QString::number(m_ui->dpiSpinBox->value()));
+ stream.writeEndElement();
+ if(m_ui->disableBoldAutohintCheckBox->isChecked()){
stream.writeStartElement("match");
stream.writeAttribute("target", "font");
- writeOption(&stream, "antialias", "bool", m_ui->antialisingCheckBox->isChecked() ? "true" : "false");
- writeOption(&stream, "hinting", "bool", m_ui->hintingCheckBox->isChecked() ? "true" : "false");
- writeOption(&stream, "hintstyle", "const", m_ui->hintingStyleComboBox->currentData().toString());
- writeOption(&stream, "rgba", "const", m_ui->rgbaComboBox->currentData().toString());
+ stream.writeStartElement("test");
+ stream.writeAttribute("name", "weight");
+ stream.writeAttribute("compare", "more");
+ stream.writeTextElement("const", "medium");
+ stream.writeEndElement();
writeOption(&stream, "autohint", "bool", m_ui->autohinterCheckBox->isChecked() ? "true" : "false");
- writeOption(&stream, "lcdfilter", "const", m_ui->lcdFilterComboBox->currentText());
- writeOption(&stream, "dpi", "double", QString::number(m_ui->dpiSpinBox->value()));
stream.writeEndElement();
-
- if(m_ui->disableBoldAutohintCheckBox->isChecked())
- {
- stream.writeStartElement("match");
- stream.writeAttribute("target", "font");
-
- stream.writeStartElement("test");
- stream.writeAttribute("name", "weight");
- stream.writeAttribute("compare", "more");
- stream.writeTextElement("const", "medium");
- stream.writeEndElement();
-
- writeOption(&stream, "autohint", "bool", m_ui->autohinterCheckBox->isChecked() ? "true" : "false");
-
- stream.writeEndElement();
}
- stream.writeEndElement();
- stream.writeEndDocument();
-
- QDialog::accept();
+ stream.writeEndElement();
+ stream.writeEndDocument();
+ QDialog::accept();
}
-void FontConfigDialog::writeOption(QXmlStreamWriter *stream, const QString &name, const QString &type, const QString &value)
-{
- stream->writeStartElement("edit");
- stream->writeAttribute("name", name);
- stream->writeAttribute("mode", "assign");
- stream->writeTextElement(type, value);
- stream->writeEndElement();
+void FontConfigDialog::writeOption(QXmlStreamWriter *stream, const QString &name, const QString &type, const QString &value){
+ stream->writeStartElement("edit");
+ stream->writeAttribute("name", name);
+ stream->writeAttribute("mode", "assign");
+ stream->writeTextElement(type, value);
+ stream->writeEndElement();
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.h
index 5b7e31a5..09991787 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontconfigdialog.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef FONTCONFIGDIALOG_H
#define FONTCONFIGDIALOG_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.cpp
index db48a3cc..8d1ed1ab 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QSignalMapper>
#include <QMessageBox>
#include <QSettings>
@@ -38,89 +10,70 @@
#include "fontconfigdialog.h"
#include "ui_fontspage.h"
-FontsPage::FontsPage(QWidget *parent) :
- TabPage(parent),
- m_ui(new Ui::FontsPage)
-{
- m_ui->setupUi(this);
-
- QSignalMapper *mapper = new QSignalMapper(this);
- mapper->setMapping(m_ui->changeGeneralFontButton, m_ui->generalFontLabel);
- mapper->setMapping(m_ui->changeFixedWidthFontButton, m_ui->fixedFontLabel);
- connect(m_ui->changeGeneralFontButton, SIGNAL(clicked()), mapper, SLOT(map()));
- connect(m_ui->changeFixedWidthFontButton, SIGNAL(clicked()), mapper, SLOT(map()));
- connect(mapper, SIGNAL(mapped(QWidget*)), SLOT(onFontChangeRequested(QWidget*)));
+FontsPage::FontsPage(QWidget *parent) : TabPage(parent), m_ui(new Ui::FontsPage){
+ m_ui->setupUi(this);
- readSettings();
+ QSignalMapper *mapper = new QSignalMapper(this);
+ mapper->setMapping(m_ui->changeGeneralFontButton, m_ui->generalFontLabel);
+ mapper->setMapping(m_ui->changeFixedWidthFontButton, m_ui->fixedFontLabel);
+ connect(m_ui->changeGeneralFontButton, SIGNAL(clicked()), mapper, SLOT(map()));
+ connect(m_ui->changeFixedWidthFontButton, SIGNAL(clicked()), mapper, SLOT(map()));
+ connect(mapper, SIGNAL(mapped(QWidget*)), SLOT(onFontChangeRequested(QWidget*)));
+ readSettings();
- //icons
- m_ui->createFontsConfButton->setIcon(QIcon::fromTheme("document-new"));
- m_ui->removeFontsConfButton->setIcon(QIcon::fromTheme("edit-delete"));
+ //icons
+ m_ui->createFontsConfButton->setIcon(QIcon::fromTheme("document-new"));
+ m_ui->removeFontsConfButton->setIcon(QIcon::fromTheme("edit-delete"));
}
-FontsPage::~FontsPage()
-{
- delete m_ui;
+FontsPage::~FontsPage(){
+ delete m_ui;
}
-void FontsPage::writeSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.beginGroup("Fonts");
- settings.setValue("general", m_ui->generalFontLabel->font());
- settings.setValue("fixed", m_ui->fixedFontLabel->font());
- settings.endGroup();
+void FontsPage::writeSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Fonts");
+ settings.setValue("general", m_ui->generalFontLabel->font());
+ settings.setValue("fixed", m_ui->fixedFontLabel->font());
+ settings.endGroup();
}
-void FontsPage::onFontChangeRequested(QWidget *widget)
-{
- bool ok = false;
- QFont font = QFontDialog::getFont (&ok, widget->font(), this);
- if(ok)
- {
- widget->setFont(font);
- qobject_cast<QLabel*>(widget)->setText(font.family () + " " + QString::number(font.pointSize ()));
+void FontsPage::onFontChangeRequested(QWidget *widget){
+ bool ok = false;
+ QFont font = QFontDialog::getFont (&ok, widget->font(), this);
+ if(ok){
+ widget->setFont(font);
+ qobject_cast<QLabel*>(widget)->setText(font.family () + " " + QString::number(font.pointSize ()));
}
}
-void FontsPage::readSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.beginGroup("Fonts");
- loadFont(&settings, m_ui->generalFontLabel, "general");
- loadFont(&settings, m_ui->fixedFontLabel, "fixed");
- settings.endGroup();
+void FontsPage::readSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Fonts");
+ loadFont(&settings, m_ui->generalFontLabel, "general");
+ loadFont(&settings, m_ui->fixedFontLabel, "fixed");
+ settings.endGroup();
}
-void FontsPage::loadFont(QSettings *settings, QLabel *label, const QString &key)
-{
- QFont font = settings->value(key, QApplication::font()).value<QFont>();
- label->setText(font.family () + " " + QString::number(font.pointSize ()));
- label->setFont(font);
+void FontsPage::loadFont(QSettings *settings, QLabel *label, const QString &key){
+ QFont font = settings->value(key, QApplication::font()).value<QFont>();
+ label->setText(font.family () + " " + QString::number(font.pointSize ()));
+ label->setFont(font);
}
-void FontsPage::on_createFontsConfButton_clicked()
-{
- FontConfigDialog d(this);
- d.exec();
+void FontsPage::on_createFontsConfButton_clicked(){
+ FontConfigDialog d(this);
+ d.exec();
}
-void FontsPage::on_removeFontsConfButton_clicked()
-{
- QString path = QDir::homePath() + "/.config/fontconfig/fonts.conf";
-
-
- if(QFile::exists(path))
- {
- if(QMessageBox::question(this, tr("Remove Font Configuration"),
- tr("Are you sure you want to delete <i>%1</i>?").arg(path),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::No)
- {
- return;
- }
-
- QFile::remove(path + ".back");
- QFile::copy(path, path + ".back");
- QFile::remove(path);
+void FontsPage::on_removeFontsConfButton_clicked(){
+ QString path = QDir::homePath() + "/.config/fontconfig/fonts.conf";
+ if(QFile::exists(path)){
+ if(QMessageBox::question(this, tr("Remove Font Configuration"), tr("Are you sure you want to delete <i>%1</i>?").arg(path), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No){
+ return;
}
+ QFile::remove(path + ".back");
+ QFile::copy(path, path + ".back");
+ QFile::remove(path);
+ }
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.h
index a9c5f1f6..2b522fee 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/fontspage.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef FONTSPAGE_H
#define FONTSPAGE_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp
index ca9a3388..cfe002aa 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QSettings>
#include <QFileInfo>
#include <QFileInfoList>
@@ -37,178 +9,136 @@
#include "iconthemepage.h"
#include "ui_iconthemepage.h"
-IconThemePage::IconThemePage(QWidget *parent) :
- TabPage(parent),
- m_ui(new Ui::IconThemePage)
-{
- m_ui->setupUi(this);
- loadThemes();
- readSettings();
+IconThemePage::IconThemePage(QWidget *parent) : TabPage(parent), m_ui(new Ui::IconThemePage){
+ m_ui->setupUi(this);
+ loadThemes();
+ readSettings();
}
-IconThemePage::~IconThemePage()
-{
- delete m_ui;
+IconThemePage::~IconThemePage(){
+ delete m_ui;
}
-void IconThemePage::writeSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- QTreeWidgetItem *item = m_ui->treeWidget->currentItem();
- if(item)
- settings.setValue("Appearance/icon_theme", item->data(3, Qt::UserRole));
+void IconThemePage::writeSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ QTreeWidgetItem *item = m_ui->treeWidget->currentItem();
+ if(item)
+ settings.setValue("Appearance/icon_theme", item->data(3, Qt::UserRole));
}
-void IconThemePage::readSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- QString name = settings.value("Appearance/icon_theme").toString();
-
- if(name.isEmpty())
- return;
-
- for(int i = 0; i < m_ui->treeWidget->topLevelItemCount(); ++i)
- {
- QTreeWidgetItem *item = m_ui->treeWidget->topLevelItem(i);
- if(item->data(3, Qt::UserRole).toString() == name)
- {
- m_ui->treeWidget->setCurrentItem(item);
- break;
+void IconThemePage::readSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ QString name = settings.value("Appearance/icon_theme").toString();
+ if(name.isEmpty())
+ return;
+ for(int i = 0; i < m_ui->treeWidget->topLevelItemCount(); ++i){
+ QTreeWidgetItem *item = m_ui->treeWidget->topLevelItem(i);
+ if(item->data(3, Qt::UserRole).toString() == name){
+ m_ui->treeWidget->setCurrentItem(item);
+ break;
}
- }
+ }
}
-void IconThemePage::loadThemes()
-{
- QFileInfoList themeFileList;
- foreach(QString path, lthemeengine::iconPaths())
- {
- QDir dir(path);
- dir.setFilter(QDir::Dirs | QDir::NoDotDot | QDir::NoDot);
- foreach (QFileInfo info, dir.entryInfoList())
- {
- QDir themeDir(info.absoluteFilePath());
- themeDir.setFilter(QDir::Files);
- themeFileList << themeDir.entryInfoList(QStringList() << "index.theme");
- }
+void IconThemePage::loadThemes(){
+ QFileInfoList themeFileList;
+ foreach(QString path, lthemeengine::iconPaths()){
+ QDir dir(path);
+ dir.setFilter(QDir::Dirs | QDir::NoDotDot | QDir::NoDot);
+ foreach (QFileInfo info, dir.entryInfoList()){
+ QDir themeDir(info.absoluteFilePath());
+ themeDir.setFilter(QDir::Files);
+ themeFileList << themeDir.entryInfoList(QStringList() << "index.theme");
+ }
}
-
- foreach(QFileInfo info, themeFileList)
- {
- loadTheme(info.canonicalFilePath());
+ foreach(QFileInfo info, themeFileList){
+ loadTheme(info.canonicalFilePath());
}
}
-void IconThemePage::loadTheme(const QString &path)
-{
- QSettings config(path, QSettings::IniFormat);
- config.setIniCodec("UTF-8");
-
- config.beginGroup("Icon Theme");
- QStringList dirs = config.value("Directories").toStringList();
- if(dirs.isEmpty() || config.value("Hidden", false).toBool())
- return;
-
+void IconThemePage::loadTheme(const QString &path){
+ QSettings config(path, QSettings::IniFormat);
+ config.setIniCodec("UTF-8");
+ config.beginGroup("Icon Theme");
+ QStringList dirs = config.value("Directories").toStringList();
+ if(dirs.isEmpty() || config.value("Hidden", false).toBool())
+ return;
QString name, comment;
QString lang = QLocale::system().name();
-
name = config.value(QString("Name[%1]").arg(lang)).toString();
comment = config.value(QString("Comment[%1]").arg(lang)).toString();
-
if(lang.contains("_"))
- lang = lang.split("_").first();
-
- if(name.isEmpty())
+ lang = lang.split("_").first();
+ if(name.isEmpty())
name = config.value(QString("Name[%1]").arg(lang)).toString();
-
- if(comment.isEmpty())
- comment = config.value(QString("Comment[%1]").arg(lang)).toString();
-
- if(name.isEmpty())
- name = config.value("Name").toString();
-
- if(comment.isEmpty())
- comment = config.value("Comment").toString();
-
- config.endGroup();
-
- QIcon icon1 = findIcon(path, 24, "document-save");
- QIcon icon2 = findIcon(path, 24, "document-print");
- QIcon icon3 = findIcon(path, 24, "media-playback-stop");
-
- QTreeWidgetItem *item = new QTreeWidgetItem();
- item->setIcon(0, icon1);
- item->setIcon(1, icon2);
- item->setIcon(2, icon3);
- item->setText(3, name);
- item->setData(3, Qt::UserRole, QFileInfo(path).path().section("/", -1));
- item->setToolTip(3, comment);
- item->setSizeHint(0, QSize(24,24));
- m_ui->treeWidget->addTopLevelItem(item);
-
- m_ui->treeWidget->resizeColumnToContents(0);
- m_ui->treeWidget->resizeColumnToContents(1);
- m_ui->treeWidget->resizeColumnToContents(2);
- m_ui->treeWidget->resizeColumnToContents(3);
+ if(comment.isEmpty())
+ comment = config.value(QString("Comment[%1]").arg(lang)).toString();
+ if(name.isEmpty())
+ name = config.value("Name").toString();
+ if(comment.isEmpty())
+ comment = config.value("Comment").toString();
+ config.endGroup();
+ QIcon icon1 = findIcon(path, 24, "document-save");
+ QIcon icon2 = findIcon(path, 24, "document-print");
+ QIcon icon3 = findIcon(path, 24, "media-playback-stop");
+ QTreeWidgetItem *item = new QTreeWidgetItem();
+ item->setIcon(0, icon1);
+ item->setIcon(1, icon2);
+ item->setIcon(2, icon3);
+ item->setText(3, name);
+ item->setData(3, Qt::UserRole, QFileInfo(path).path().section("/", -1));
+ item->setToolTip(3, comment);
+ item->setSizeHint(0, QSize(24,24));
+ m_ui->treeWidget->addTopLevelItem(item);
+ m_ui->treeWidget->resizeColumnToContents(0);
+ m_ui->treeWidget->resizeColumnToContents(1);
+ m_ui->treeWidget->resizeColumnToContents(2);
+ m_ui->treeWidget->resizeColumnToContents(3);
}
-QIcon IconThemePage::findIcon(const QString &themePath, int size, const QString &name)
-{
- QSettings config(themePath, QSettings::IniFormat);
- config.beginGroup("Icon Theme");
- QStringList dirs = config.value("Directories").toStringList();
- QStringList parents = config.value("Inherits").toStringList();
- bool haveInherits = config.contains("Inherits");
- config.endGroup();
-
- foreach (QString dir, dirs)
- {
- config.beginGroup(dir);
- if(config.value("Size").toInt() == size)
- {
- QDir iconDir = QFileInfo(themePath).path() + "/" + dir;
- iconDir.setFilter(QDir::Files);
- iconDir.setNameFilters(QStringList () << name + ".*");
- if(iconDir.entryInfoList().isEmpty())
- continue;
- return QIcon(iconDir.entryInfoList().first().absoluteFilePath());
- }
- config.endGroup();
+QIcon IconThemePage::findIcon(const QString &themePath, int size, const QString &name){
+ QSettings config(themePath, QSettings::IniFormat);
+ config.beginGroup("Icon Theme");
+ QStringList dirs = config.value("Directories").toStringList();
+ QStringList parents = config.value("Inherits").toStringList();
+ bool haveInherits = config.contains("Inherits");
+ config.endGroup();
+ foreach (QString dir, dirs){
+ config.beginGroup(dir);
+ if(config.value("Size").toInt() == size){
+ QDir iconDir = QFileInfo(themePath).path() + "/" + dir;
+ iconDir.setFilter(QDir::Files);
+ iconDir.setNameFilters(QStringList () << name + ".*");
+ if(iconDir.entryInfoList().isEmpty())
+ continue;
+ return QIcon(iconDir.entryInfoList().first().absoluteFilePath());
+ }
+ config.endGroup();
}
-
- foreach (QString dir, dirs)
- {
- config.beginGroup(dir);
- if(abs(config.value("Size").toInt() - size) < 4)
- {
- QDir iconDir = QFileInfo(themePath).path() + "/" + dir;
- iconDir.setFilter(QDir::Files);
- iconDir.setNameFilters(QStringList () << name + ".*");
- if(iconDir.entryInfoList().isEmpty())
- continue;
- return QIcon(iconDir.entryInfoList().first().absoluteFilePath());
- }
- config.endGroup();
+ foreach (QString dir, dirs){
+ config.beginGroup(dir);
+ if(abs(config.value("Size").toInt() - size) < 4){
+ QDir iconDir = QFileInfo(themePath).path() + "/" + dir;
+ iconDir.setFilter(QDir::Files);
+ iconDir.setNameFilters(QStringList () << name + ".*");
+ if(iconDir.entryInfoList().isEmpty())
+ continue;
+ return QIcon(iconDir.entryInfoList().first().absoluteFilePath());
}
-
- if (!haveInherits)
- return QIcon();
-
+ config.endGroup();
+ }
+ if (!haveInherits)
+ return QIcon();
parents.append("hicolor"); //add fallback themes
parents.append("gnome");
parents.removeDuplicates();
-
- foreach (QString parent, parents)
- {
- QString parentThemePath = QDir(QFileInfo(themePath).path() + "/../" + parent).canonicalPath() + "/index.theme";
-
- if(!QFile::exists(parentThemePath) || parentThemePath == themePath)
- continue;
-
+ foreach (QString parent, parents){
+ QString parentThemePath = QDir(QFileInfo(themePath).path() + "/../" + parent).canonicalPath() + "/index.theme";
+ if(!QFile::exists(parentThemePath) || parentThemePath == themePath)
+ continue;
QIcon icon = findIcon(parentThemePath, size, name);
if(!icon.isNull())
- return icon;
- }
-
+ return icon;
+ }
return QIcon();
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.h
index 0ccd64e0..8a6635ef 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/iconthemepage.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef ICONTHEMEPAGE_H
#define ICONTHEMEPAGE_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.cpp
index a9f40080..a44e75e4 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QSettings>
#include <QApplication>
#include <QDialogButtonBox>
@@ -33,108 +5,84 @@
#include "interfacepage.h"
#include "ui_interfacepage.h"
-InterfacePage::InterfacePage(QWidget *parent) :
- TabPage(parent),
- m_ui(new Ui::InterfacePage)
-{
- m_ui->setupUi(this);
-
- m_ui->buttonLayoutComboBox->addItem("Windows", QDialogButtonBox::WinLayout);
- m_ui->buttonLayoutComboBox->addItem("Mac OS X", QDialogButtonBox::MacLayout);
- m_ui->buttonLayoutComboBox->addItem("KDE", QDialogButtonBox::KdeLayout);
- m_ui->buttonLayoutComboBox->addItem("GNOME", QDialogButtonBox::GnomeLayout);
-
- m_ui->toolButtonStyleComboBox->addItem(tr("Only display the icon"), Qt::ToolButtonIconOnly);
- m_ui->toolButtonStyleComboBox->addItem(tr("Only display the text"), Qt::ToolButtonTextOnly);
- m_ui->toolButtonStyleComboBox->addItem(tr("The text appears beside the icon"), Qt::ToolButtonTextBesideIcon);
- m_ui->toolButtonStyleComboBox->addItem(tr("The text appears under the icon"), Qt::ToolButtonTextUnderIcon);
- m_ui->toolButtonStyleComboBox->addItem(tr("Follow the application style"), Qt::ToolButtonFollowStyle);
-
- readSettings();
+InterfacePage::InterfacePage(QWidget *parent) : TabPage(parent), m_ui(new Ui::InterfacePage){
+ m_ui->setupUi(this);
+
+ m_ui->buttonLayoutComboBox->addItem("Windows", QDialogButtonBox::WinLayout);
+ m_ui->buttonLayoutComboBox->addItem("Mac OS X", QDialogButtonBox::MacLayout);
+ m_ui->buttonLayoutComboBox->addItem("KDE", QDialogButtonBox::KdeLayout);
+ m_ui->buttonLayoutComboBox->addItem("GNOME", QDialogButtonBox::GnomeLayout);
+ m_ui->toolButtonStyleComboBox->addItem(tr("Only display the icon"), Qt::ToolButtonIconOnly);
+ m_ui->toolButtonStyleComboBox->addItem(tr("Only display the text"), Qt::ToolButtonTextOnly);
+ m_ui->toolButtonStyleComboBox->addItem(tr("The text appears beside the icon"), Qt::ToolButtonTextBesideIcon);
+ m_ui->toolButtonStyleComboBox->addItem(tr("The text appears under the icon"), Qt::ToolButtonTextUnderIcon);
+ m_ui->toolButtonStyleComboBox->addItem(tr("Follow the application style"), Qt::ToolButtonFollowStyle);
+ readSettings();
}
-InterfacePage::~InterfacePage()
-{
- delete m_ui;
+InterfacePage::~InterfacePage(){
+ delete m_ui;
}
-void InterfacePage::writeSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.beginGroup("Interface");
- settings.setValue("double_click_interval", m_ui->doubleClickIntervalSpinBox->value());
- settings.setValue("cursor_flash_time", m_ui->cursorFlashTimeSpinBox->value());
- settings.setValue("buttonbox_layout", m_ui->buttonLayoutComboBox->currentData());
- settings.setValue("menus_have_icons", m_ui->menuIconsCheckBox->isChecked());
- settings.setValue("activate_item_on_single_click", m_ui->singleClickCheckBox->checkState());
- settings.setValue("dialog_buttons_have_icons", m_ui->dialogIconsCheckBox->checkState());
- settings.setValue("toolbutton_style", m_ui->toolButtonStyleComboBox->currentData());
- settings.setValue("wheel_scroll_lines", m_ui->wheelScrollLinesSpinBox->value());
-
- QStringList effects;
- if(m_ui->guiEffectsCheckBox->isChecked())
- effects << "General";
-
+void InterfacePage::writeSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Interface");
+ settings.setValue("double_click_interval", m_ui->doubleClickIntervalSpinBox->value());
+ settings.setValue("cursor_flash_time", m_ui->cursorFlashTimeSpinBox->value());
+ settings.setValue("buttonbox_layout", m_ui->buttonLayoutComboBox->currentData());
+ settings.setValue("menus_have_icons", m_ui->menuIconsCheckBox->isChecked());
+ settings.setValue("activate_item_on_single_click", m_ui->singleClickCheckBox->checkState());
+ settings.setValue("dialog_buttons_have_icons", m_ui->dialogIconsCheckBox->checkState());
+ settings.setValue("toolbutton_style", m_ui->toolButtonStyleComboBox->currentData());
+ settings.setValue("wheel_scroll_lines", m_ui->wheelScrollLinesSpinBox->value());
+ QStringList effects;
+ if(m_ui->guiEffectsCheckBox->isChecked())
+ effects << "General";
if(m_ui->menuEffectComboBox->currentIndex() == 1)
- effects << "AnimateMenu";
+ effects << "AnimateMenu";
else if(m_ui->menuEffectComboBox->currentIndex() == 2)
- effects << "FadeMenu";
-
- if(m_ui->comboBoxEffectComboBox->currentIndex() == 1)
+ effects << "FadeMenu";
+ if(m_ui->comboBoxEffectComboBox->currentIndex() == 1)
effects << "AnimateCombo";
-
- if(m_ui->toolTipEffectComboBox->currentIndex() == 1)
- effects << "AnimateTooltip";
- else if(m_ui->toolTipEffectComboBox->currentIndex() == 2)
- effects << "FadeTooltip";
-
- if(m_ui->toolBoxEffectComboBox->currentIndex() == 1)
- effects << "AnimateToolBox";
-
- settings.setValue("gui_effects", effects);
- settings.endGroup();
+ if(m_ui->toolTipEffectComboBox->currentIndex() == 1)
+ effects << "AnimateTooltip";
+ else if(m_ui->toolTipEffectComboBox->currentIndex() == 2)
+ effects << "FadeTooltip";
+ if(m_ui->toolBoxEffectComboBox->currentIndex() == 1)
+ effects << "AnimateToolBox";
+ settings.setValue("gui_effects", effects);
+ settings.endGroup();
}
-void InterfacePage::readSettings()
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.beginGroup("Interface");
- m_ui->doubleClickIntervalSpinBox->setValue(qApp->doubleClickInterval());
- m_ui->cursorFlashTimeSpinBox->setValue(qApp->cursorFlashTime());
-
- m_ui->guiEffectsCheckBox->setChecked(qApp->isEffectEnabled(Qt::UI_General));
-
- int layout = settings.value("buttonbox_layout", style()->styleHint(QStyle::SH_DialogButtonLayout)).toInt();
- int index = m_ui->buttonLayoutComboBox->findData(layout);
- if(index >= 0)
- m_ui->buttonLayoutComboBox->setCurrentIndex(index);
-
+void InterfacePage::readSettings(){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Interface");
+ m_ui->doubleClickIntervalSpinBox->setValue(qApp->doubleClickInterval());
+ m_ui->cursorFlashTimeSpinBox->setValue(qApp->cursorFlashTime());
+ m_ui->guiEffectsCheckBox->setChecked(qApp->isEffectEnabled(Qt::UI_General));
+ int layout = settings.value("buttonbox_layout", style()->styleHint(QStyle::SH_DialogButtonLayout)).toInt();
+ int index = m_ui->buttonLayoutComboBox->findData(layout);
+ if(index >= 0)
+ m_ui->buttonLayoutComboBox->setCurrentIndex(index);
if(qApp->isEffectEnabled(Qt::UI_AnimateMenu))
- m_ui->menuEffectComboBox->setCurrentIndex(1);
+ m_ui->menuEffectComboBox->setCurrentIndex(1);
else if(qApp->isEffectEnabled(Qt::UI_FadeMenu))
- m_ui->menuEffectComboBox->setCurrentIndex(2);
-
+ m_ui->menuEffectComboBox->setCurrentIndex(2);
if(qApp->isEffectEnabled(Qt::UI_AnimateCombo))
- m_ui->comboBoxEffectComboBox->setCurrentIndex(1);
-
- if(qApp->isEffectEnabled(Qt::UI_AnimateTooltip))
+ m_ui->comboBoxEffectComboBox->setCurrentIndex(1);
+ if(qApp->isEffectEnabled(Qt::UI_AnimateTooltip))
m_ui->toolTipEffectComboBox->setCurrentIndex(1);
- else if(qApp->isEffectEnabled(Qt::UI_FadeTooltip))
+ else if(qApp->isEffectEnabled(Qt::UI_FadeTooltip))
m_ui->toolTipEffectComboBox->setCurrentIndex(2);
-
- if(qApp->isEffectEnabled(Qt::UI_AnimateToolBox))
- m_ui->toolBoxEffectComboBox->setCurrentIndex(1);
-
- m_ui->singleClickCheckBox->setCheckState((Qt::CheckState)settings.value("activate_item_on_single_click", Qt::PartiallyChecked).toInt());
- m_ui->dialogIconsCheckBox->setCheckState((Qt::CheckState)settings.value("dialog_buttons_have_icons", Qt::PartiallyChecked).toInt());
- m_ui->menuIconsCheckBox->setChecked(!qApp->testAttribute(Qt::AA_DontShowIconsInMenus));
-
- int toolbarStyle = settings.value("toolbutton_style", Qt::ToolButtonFollowStyle).toInt();
- index = m_ui->toolButtonStyleComboBox->findData(toolbarStyle);
- if(index >= 0)
- m_ui->toolButtonStyleComboBox->setCurrentIndex(index);
-
- m_ui->wheelScrollLinesSpinBox->setValue(settings.value("wheel_scroll_lines", 3).toInt());
-
- settings.endGroup();
+ if(qApp->isEffectEnabled(Qt::UI_AnimateToolBox))
+ m_ui->toolBoxEffectComboBox->setCurrentIndex(1);
+ m_ui->singleClickCheckBox->setCheckState((Qt::CheckState)settings.value("activate_item_on_single_click", Qt::PartiallyChecked).toInt());
+ m_ui->dialogIconsCheckBox->setCheckState((Qt::CheckState)settings.value("dialog_buttons_have_icons", Qt::PartiallyChecked).toInt());
+ m_ui->menuIconsCheckBox->setChecked(!qApp->testAttribute(Qt::AA_DontShowIconsInMenus));
+ int toolbarStyle = settings.value("toolbutton_style", Qt::ToolButtonFollowStyle).toInt();
+ index = m_ui->toolButtonStyleComboBox->findData(toolbarStyle);
+ if(index >= 0)
+ m_ui->toolButtonStyleComboBox->setCurrentIndex(index);
+ m_ui->wheelScrollLinesSpinBox->setValue(settings.value("wheel_scroll_lines", 3).toInt());
+ settings.endGroup();
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.h
index 637b6bf1..7946e599 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/interfacepage.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef INTERFACEPAGE_H
#define INTERFACEPAGE_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp
index 65328963..979c8c43 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QDir>
#include <QLocale>
#include "lthemeengine.h"
@@ -35,98 +7,83 @@
#endif
-QString lthemeengine::configPath()
-{
- return QDir::homePath() + "/.config/lthemeengine/";
+QString lthemeengine::configPath(){
+ return QDir::homePath() + "/.config/lthemeengine/";
}
-QString lthemeengine::configFile()
-{
- return configPath() + "lthemeengine.conf";
+QString lthemeengine::configFile(){
+ return configPath() + "lthemeengine.conf";
}
-QStringList lthemeengine::iconPaths()
-{
- QString xdgDataDirs = qgetenv("XDG_DATA_DIRS");
- QString xdgDataHome = qgetenv("XDG_DATA_HOME");
-
- QStringList paths;
- paths << QDir::homePath() + "/.icons/";
-
- if(xdgDataDirs.isEmpty())
- {
- paths << "/usr/share/icons";
- paths << "/usr/local/share/icons";
+QStringList lthemeengine::iconPaths(){
+ QString xdgDataDirs = qgetenv("XDG_DATA_DIRS");
+ QString xdgDataHome = qgetenv("XDG_DATA_HOME");
+ QStringList paths;
+ paths << QDir::homePath() + "/.icons/";
+ if(xdgDataDirs.isEmpty()){
+ paths << "/usr/share/icons";
+ paths << "/usr/local/share/icons";
}
- else
- {
- foreach (QString p, xdgDataDirs.split(":"))
- paths << QDir(p + "/icons/").absolutePath();
+ else{
+ foreach (QString p, xdgDataDirs.split(":"))
+ paths << QDir(p + "/icons/").absolutePath();
}
-
- if(xdgDataHome.isEmpty())
- xdgDataHome = QDir::homePath() + "/.local/share";
-
+ if(xdgDataHome.isEmpty())
+ xdgDataHome = QDir::homePath() + "/.local/share";
paths << "/usr/share/pixmaps";
paths << xdgDataHome + "/icons";
paths.removeDuplicates();
-
//remove invalid
- foreach (QString p, paths)
- {
- if(!QDir(p).exists())
- paths.removeAll(p);
- }
- return paths;
+ foreach (QString p, paths){
+ if(!QDir(p).exists())
+ paths.removeAll(p);
+ }
+ return paths;
}
-QString lthemeengine::userStyleSheetPath()
-{
- return configPath() + "qss/";
+QString lthemeengine::userStyleSheetPath(){
+ return configPath() + "qss/";
}
-QStringList lthemeengine::sharedStyleSheetPath()
- {
- QStringList dirs;
- dirs << QString(getenv("XDG_CONFIG_HOME"));
- dirs << QString(getenv("XDG_CONFIG_DIRS")).split(":");
- for(int i=0; i<dirs.length(); i++){
- dirs[i].append("/lthemeengine/colors/");
+QStringList lthemeengine::sharedStyleSheetPath(){
+ QStringList dirs;
+ dirs << QString(getenv("XDG_CONFIG_HOME"));
+ dirs << QString(getenv("XDG_CONFIG_DIRS")).split(":");
+ for(int i=0; i<dirs.length(); i++){
+ dirs[i].append("/lthemeengine/colors/");
}
- if(dirs.isEmpty()){
- dirs << LTHEMEENGINE_DATADIR"/lthemeengine/qss/"; //no XDG settings - use the hardcoded path
+ if(dirs.isEmpty()){
+ dirs << LTHEMEENGINE_DATADIR"/lthemeengine/qss/"; //no XDG settings - use the hardcoded path
}
- return dirs;
+ return dirs;
}
- QString lthemeengine::userColorSchemePath(){
- return configPath() + "colors/";
- }
+QString lthemeengine::userColorSchemePath(){
+ return configPath() + "colors/";
+}
-QStringList lthemeengine::sharedColorSchemePath()
- {
- QStringList dirs;
- dirs << QString(getenv("XDG_CONFIG_HOME"));
- dirs << QString(getenv("XDG_CONFIG_DIRS")).split(":");
- for(int i=0; i<dirs.length(); i++){
- dirs[i].append("/lthemeengine/colors/");
+QStringList lthemeengine::sharedColorSchemePath(){
+ QStringList dirs;
+ dirs << QString(getenv("XDG_CONFIG_HOME"));
+ dirs << QString(getenv("XDG_CONFIG_DIRS")).split(":");
+ for(int i=0; i<dirs.length(); i++){
+ dirs[i].append("/lthemeengine/colors/");
}
- if(dirs.isEmpty()){
- dirs << LTHEMEENGINE_DATADIR"/lthemeengine/colors/"; //no XDG settings - use the hardcoded path
+ if(dirs.isEmpty()){
+ dirs << LTHEMEENGINE_DATADIR"/lthemeengine/colors/"; //no XDG settings - use the hardcoded path
}
- return dirs;
- }
+ return dirs;
+}
-QString lthemeengine::systemLanguageID()
-{
+QString lthemeengine::systemLanguageID(){
#ifdef Q_OS_UNIX
- QByteArray v = qgetenv ("LC_ALL");
- if (v.isEmpty())
- v = qgetenv ("LC_MESSAGES");
+ QByteArray v = qgetenv ("LC_ALL");
+ if (v.isEmpty())
+ v = qgetenv ("LC_MESSAGES");
if (v.isEmpty())
- v = qgetenv ("LANG");
- if (!v.isEmpty())
+ v = qgetenv ("LANG");
+ if (!v.isEmpty())
return QLocale (v).name();
#endif
- return QLocale::system().name();
+ return QLocale::system().name();
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h
index 171f720a..93a1d433 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/lthemeengine.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef LTHEMEENGINE_H
#define LTHEMEENGINE_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp
index 1961d17d..55d0fc36 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/main.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QApplication>
#include <QLibraryInfo>
#include <QLocale>
@@ -36,49 +8,34 @@
#include <QStyleFactory>
#include "mainwindow.h"
-int main(int argc, char **argv)
-{
- QApplication app(argc, argv);
- QTranslator translator;
- QString locale = lthemeengine::systemLanguageID();
- translator.load(QString(":/lthemeengine_") + locale);
- app.installTranslator(&translator);
-
- QTranslator qt_translator;
- qt_translator.load(QLibraryInfo::location (QLibraryInfo::TranslationsPath) + "/qtbase_" + locale);
- app.installTranslator(&qt_translator);
-
- qDebug("Configuration path: %s", qPrintable(lthemeengine::configPath()));
- qDebug("Shared QSS path: %s", qPrintable(lthemeengine::sharedStyleSheetPath().join(", ")));
-
- //checking environment
- QStringList errorMessages;
- QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
-
- if(env.contains("QT_STYLE_OVERRIDE"))
- {
- errorMessages << app.translate("main", "Please remove the <b>QT_STYLE_OVERRIDE</b> environment variable");
+int main(int argc, char **argv){
+ QApplication app(argc, argv);
+ QTranslator translator;
+ QString locale = lthemeengine::systemLanguageID();
+ translator.load(QString(":/lthemeengine_") + locale);
+ app.installTranslator(&translator);
+ QTranslator qt_translator;
+ qt_translator.load(QLibraryInfo::location (QLibraryInfo::TranslationsPath) + "/qtbase_" + locale);
+ app.installTranslator(&qt_translator);
+ qDebug("Configuration path: %s", qPrintable(lthemeengine::configPath()));
+ qDebug("Shared QSS path: %s", qPrintable(lthemeengine::sharedStyleSheetPath().join(", ")));
+ //checking environment
+ QStringList errorMessages;
+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+ if(env.contains("QT_STYLE_OVERRIDE")){
+ errorMessages << app.translate("main", "Please remove the <b>QT_STYLE_OVERRIDE</b> environment variable");
}
-
- if(env.value("QT_QPA_PLATFORMTHEME") != "lthemeengine")
- {
- errorMessages << app.translate("main", "The <b>QT_QPA_PLATFORMTHEME</b> environment "
- "variable is not set correctly");
+ if(env.value("QT_QPA_PLATFORMTHEME") != "lthemeengine"){
+ errorMessages << app.translate("main", "The <b>QT_QPA_PLATFORMTHEME</b> environment variable is not set correctly");
}
-
- if(!QStyleFactory::keys().contains("lthemeengine-style"))
- {
- errorMessages << app.translate("main", "Unable to find <b>liblthemeengine-style.so</b>");
+ if(!QStyleFactory::keys().contains("lthemeengine-style")){
+ errorMessages << app.translate("main", "Unable to find <b>liblthemeengine-style.so</b>");
}
-
- if(!errorMessages.isEmpty())
- {
- QMessageBox::critical(0, app.translate("main", "Error"), errorMessages.join("<br><br>"));
- return 0;
+ if(!errorMessages.isEmpty()){
+ QMessageBox::critical(0, app.translate("main", "Error"), errorMessages.join("<br><br>"));
+ return 0;
}
-
- MainWindow w;
- w.show();
-
- return app.exec();
+ MainWindow w;
+ w.show();
+ return app.exec();
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp
index ed658e2e..c93b1052 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QApplication>
#include <QSettings>
#include "lthemeengine.h"
@@ -37,54 +9,41 @@
#include "qsspage.h"
#include "ui_mainwindow.h"
-MainWindow::MainWindow(QWidget *parent) :
- QWidget(parent),
- m_ui(new Ui::MainWindow)
-{
- m_ui->setupUi(this);
- m_ui->tabWidget->addTab(new AppearancePage(this), tr("Appearance"));
- m_ui->tabWidget->addTab(new FontsPage(this), tr("Fonts"));
- m_ui->tabWidget->addTab(new IconThemePage(this), tr("Icon Theme"));
- m_ui->tabWidget->addTab(new InterfacePage(this), tr("Interface"));
+MainWindow::MainWindow(QWidget *parent) : QWidget(parent), m_ui(new Ui::MainWindow){
+ m_ui->setupUi(this);
+ m_ui->tabWidget->addTab(new AppearancePage(this), tr("Appearance"));
+ m_ui->tabWidget->addTab(new FontsPage(this), tr("Fonts"));
+ m_ui->tabWidget->addTab(new IconThemePage(this), tr("Icon Theme"));
+ m_ui->tabWidget->addTab(new InterfacePage(this), tr("Interface"));
#ifdef USE_WIDGETS
- m_ui->tabWidget->addTab(new QSSPage(this), tr("Style Sheets"));
+ m_ui->tabWidget->addTab(new QSSPage(this), tr("Style Sheets"));
#endif
-
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- restoreGeometry(settings.value("SettingsWindow/geometry").toByteArray());
-
- setWindowIcon(QIcon::fromTheme("preferences-desktop-theme"));
-
- m_ui->versionLabel->setText(tr("Version: %1").arg(LTHEMEENGINE_VERSION_STR));
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ restoreGeometry(settings.value("SettingsWindow/geometry").toByteArray());
+ setWindowIcon(QIcon::fromTheme("preferences-desktop-theme"));
+ m_ui->versionLabel->setText(tr("Version: %1").arg(LTHEMEENGINE_VERSION_STR));
}
-MainWindow::~MainWindow()
-{
- delete m_ui;
+MainWindow::~MainWindow(){
+ delete m_ui;
}
-void MainWindow::closeEvent(QCloseEvent *)
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.setValue("SettingsWindow/geometry", saveGeometry());
+void MainWindow::closeEvent(QCloseEvent *){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.setValue("SettingsWindow/geometry", saveGeometry());
}
-void MainWindow::on_buttonBox_clicked(QAbstractButton *button)
-{
- int id = m_ui->buttonBox->standardButton(button);
- if(id == QDialogButtonBox::Ok || id == QDialogButtonBox::Apply)
- {
- for(int i = 0; i < m_ui->tabWidget->count(); ++i)
- {
- TabPage *p = qobject_cast<TabPage*>(m_ui->tabWidget->widget(i));
- if(p)
- p->writeSettings();
+void MainWindow::on_buttonBox_clicked(QAbstractButton *button){
+ int id = m_ui->buttonBox->standardButton(button);
+ if(id == QDialogButtonBox::Ok || id == QDialogButtonBox::Apply){
+ for(int i = 0; i < m_ui->tabWidget->count(); ++i){
+ TabPage *p = qobject_cast<TabPage*>(m_ui->tabWidget->widget(i));
+ if(p)
+ p->writeSettings();
}
}
-
- if(id == QDialogButtonBox::Ok || id == QDialogButtonBox::Cancel)
- {
- close();
- qApp->quit();
+ if(id == QDialogButtonBox::Ok || id == QDialogButtonBox::Cancel){
+ close();
+ qApp->quit();
}
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h
index f532141c..749949a6 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/mainwindow.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.cpp
index 0f8fcf66..8a8e86d0 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QPalette>
#include <QColorDialog>
#include <QSettings>
@@ -33,114 +5,91 @@
#include "paletteeditdialog.h"
#include "ui_paletteeditdialog.h"
-PaletteEditDialog::PaletteEditDialog(const QPalette &palette, QStyle *currentStyle, QWidget *parent) :
- QDialog(parent),
- m_ui(new Ui::PaletteEditDialog)
-{
- m_currentStyle = currentStyle;
- m_ui->setupUi(this);
- m_ui->tableWidget->setColumnCount(3);
- m_ui->tableWidget->setRowCount(QPalette::NColorRoles);
- m_ui->tableWidget->verticalHeader()->setDefaultSectionSize(fontMetrics().lineSpacing() + 10);
- m_ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
- m_ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
-
- QStringList labels;
- labels << tr("Active") << tr("Inactive") << tr("Disabled");
- m_ui->tableWidget->setHorizontalHeaderLabels(labels);
- setPalette(palette);
-
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- restoreGeometry(settings.value("PaletteEditor/geometry").toByteArray());
+PaletteEditDialog::PaletteEditDialog(const QPalette &palette, QStyle *currentStyle, QWidget *parent) : QDialog(parent), m_ui(new Ui::PaletteEditDialog){
+ m_currentStyle = currentStyle;
+ m_ui->setupUi(this);
+ m_ui->tableWidget->setColumnCount(3);
+ m_ui->tableWidget->setRowCount(QPalette::NColorRoles);
+ m_ui->tableWidget->verticalHeader()->setDefaultSectionSize(fontMetrics().lineSpacing() + 10);
+ m_ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
+ m_ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+ QStringList labels;
+ labels << tr("Active") << tr("Inactive") << tr("Disabled");
+ m_ui->tableWidget->setHorizontalHeaderLabels(labels);
+ setPalette(palette);
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ restoreGeometry(settings.value("PaletteEditor/geometry").toByteArray());
}
-PaletteEditDialog::~PaletteEditDialog()
-{
- delete m_ui;
+PaletteEditDialog::~PaletteEditDialog(){
+ delete m_ui;
}
-QPalette PaletteEditDialog::selectedPalette() const
-{
- QPalette palette;
- for(int i = 0; i < QPalette::NColorRoles; i++)
- {
- palette.setBrush(QPalette::Active, QPalette::ColorRole(i), m_ui->tableWidget->item(i,0)->backgroundColor());
- palette.setBrush(QPalette::Inactive, QPalette::ColorRole(i), m_ui->tableWidget->item(i,1)->backgroundColor());
- palette.setBrush(QPalette::Disabled, QPalette::ColorRole(i), m_ui->tableWidget->item(i,2)->backgroundColor());
+QPalette PaletteEditDialog::selectedPalette() const{
+ QPalette palette;
+ for(int i = 0; i < QPalette::NColorRoles; i++){
+ palette.setBrush(QPalette::Active, QPalette::ColorRole(i), m_ui->tableWidget->item(i,0)->backgroundColor());
+ palette.setBrush(QPalette::Inactive, QPalette::ColorRole(i), m_ui->tableWidget->item(i,1)->backgroundColor());
+ palette.setBrush(QPalette::Disabled, QPalette::ColorRole(i), m_ui->tableWidget->item(i,2)->backgroundColor());
}
- return palette;
+ return palette;
}
-void PaletteEditDialog::setPalette(const QPalette &palette)
-{
- for(int i = 0; i < QPalette::NColorRoles; i++)
- {
- if(!m_ui->tableWidget->item(i,0))
- m_ui->tableWidget->setItem(i, 0, new QTableWidgetItem());
- if(!m_ui->tableWidget->item(i,1))
- m_ui->tableWidget->setItem(i, 1, new QTableWidgetItem());
+void PaletteEditDialog::setPalette(const QPalette &palette){
+ for(int i = 0; i < QPalette::NColorRoles; i++){
+ if(!m_ui->tableWidget->item(i,0))
+ m_ui->tableWidget->setItem(i, 0, new QTableWidgetItem());
+ if(!m_ui->tableWidget->item(i,1))
+ m_ui->tableWidget->setItem(i, 1, new QTableWidgetItem());
if(!m_ui->tableWidget->item(i,2))
- m_ui->tableWidget->setItem(i, 2, new QTableWidgetItem());
-
- m_ui->tableWidget->item(i,0)->setBackgroundColor(palette.color(QPalette::Active, QPalette::ColorRole(i)));
- m_ui->tableWidget->item(i,1)->setBackgroundColor(palette.color(QPalette::Inactive, QPalette::ColorRole(i)));
- m_ui->tableWidget->item(i,2)->setBackgroundColor(palette.color(QPalette::Disabled, QPalette::ColorRole(i)));
+ m_ui->tableWidget->setItem(i, 2, new QTableWidgetItem());
+ m_ui->tableWidget->item(i,0)->setBackgroundColor(palette.color(QPalette::Active, QPalette::ColorRole(i)));
+ m_ui->tableWidget->item(i,1)->setBackgroundColor(palette.color(QPalette::Inactive, QPalette::ColorRole(i)));
+ m_ui->tableWidget->item(i,2)->setBackgroundColor(palette.color(QPalette::Disabled, QPalette::ColorRole(i)));
}
-
- QStringList labels;
- labels << tr("Window text") << tr("Button background") << tr("Bright") << tr("Less bright") << tr("Dark") << tr("Less dark")
- << tr("Normal text") << tr("Bright text") << tr("Button text") << tr("Normal background") << tr("Window") << tr("Shadow")
- << tr("Highlight") << tr("Highlighted text") << tr("Link") << tr("Visited link")
- << tr("Alternate background") << tr("Default") << tr("Tooltip background") << tr("Tooltip text");
- m_ui->tableWidget->setVerticalHeaderLabels(labels);
+ QStringList labels;
+ labels << tr("Window text") << tr("Button background") << tr("Bright") << tr("Less bright") << tr("Dark") << tr("Less dark") << tr("Normal text") << tr("Bright text") << tr("Button text") << tr("Normal background") << tr("Window") << tr("Shadow") << tr("Highlight") << tr("Highlighted text") << tr("Link") << tr("Visited link") << tr("Alternate background") << tr("Default") << tr("Tooltip background") << tr("Tooltip text");
+ m_ui->tableWidget->setVerticalHeaderLabels(labels);
}
-void PaletteEditDialog::hideEvent(QHideEvent *)
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.setValue("PaletteEditor/geometry", saveGeometry());
+void PaletteEditDialog::hideEvent(QHideEvent *){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.setValue("PaletteEditor/geometry", saveGeometry());
}
-void PaletteEditDialog::on_tableWidget_itemClicked(QTableWidgetItem *item)
-{
- QColor color = QColorDialog::getColor(item->backgroundColor(), this, tr("Select Color"));
- if(color.isValid())
- {
- item->setBackgroundColor(color);
- emit paletteChanged(selectedPalette());
+void PaletteEditDialog::on_tableWidget_itemClicked(QTableWidgetItem *item){
+ QColor color = QColorDialog::getColor(item->backgroundColor(), this, tr("Select Color"));
+ if(color.isValid()){
+ item->setBackgroundColor(color);
+ emit paletteChanged(selectedPalette());
}
}
-void PaletteEditDialog::on_resetPaletteButton_clicked()
-{
- setPalette(m_currentStyle->standardPalette());
- emit paletteChanged(selectedPalette());
+void PaletteEditDialog::on_resetPaletteButton_clicked(){
+ setPalette(m_currentStyle->standardPalette());
+ emit paletteChanged(selectedPalette());
}
-void PaletteEditDialog::on_buildInactiveButton_clicked()
-{
- QPalette palette = selectedPalette();
- for(int i = 0; i < QPalette::NColorRoles; i++)
- {
- palette.setColor(QPalette::Inactive, QPalette::ColorRole(i),
- palette.color(QPalette::Active, QPalette::ColorRole(i)));
+void PaletteEditDialog::on_buildInactiveButton_clicked(){
+ QPalette palette = selectedPalette();
+ for(int i = 0; i < QPalette::NColorRoles; i++){
+ palette.setColor(QPalette::Inactive, QPalette::ColorRole(i),
+ palette.color(QPalette::Active, QPalette::ColorRole(i)));
}
- setPalette(palette);
- emit paletteChanged(selectedPalette());
+ setPalette(palette);
+ emit paletteChanged(selectedPalette());
}
-void PaletteEditDialog::on_buildDisabledButton_clicked()
-{
- QPalette palette = selectedPalette();
- for(int i = 0; i < QPalette::NColorRoles; i++)
- {
- palette.setColor(QPalette::Disabled, QPalette::ColorRole(i),
- palette.color(QPalette::Active, QPalette::ColorRole(i)));
+void PaletteEditDialog::on_buildDisabledButton_clicked(){
+ QPalette palette = selectedPalette();
+ for(int i = 0; i < QPalette::NColorRoles; i++){
+ palette.setColor(QPalette::Disabled, QPalette::ColorRole(i),
+ palette.color(QPalette::Active, QPalette::ColorRole(i)));
}
- palette.setColor(QPalette::Disabled, QPalette::ButtonText, Qt::darkGray);
- palette.setColor(QPalette::Disabled, QPalette::WindowText, Qt::darkGray);
- palette.setColor(QPalette::Disabled, QPalette::Text, Qt::darkGray);
- palette.setColor(QPalette::Disabled, QPalette::HighlightedText, Qt::darkGray);
- setPalette(palette);
- emit paletteChanged(selectedPalette());
+ palette.setColor(QPalette::Disabled, QPalette::ButtonText, Qt::darkGray);
+ palette.setColor(QPalette::Disabled, QPalette::WindowText, Qt::darkGray);
+ palette.setColor(QPalette::Disabled, QPalette::Text, Qt::darkGray);
+ palette.setColor(QPalette::Disabled, QPalette::HighlightedText, Qt::darkGray);
+ setPalette(palette);
+ emit paletteChanged(selectedPalette());
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.h
index c8691a3c..040692f6 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/paletteeditdialog.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef PALETTEEDITDIALOG_H
#define PALETTEEDITDIALOG_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp
index b92b5619..aa4bb810 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.cpp
@@ -1,85 +1,45 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QFile>
#include <QSettings>
#include "lthemeengine.h"
#include "qsseditordialog.h"
#include "ui_qsseditordialog.h"
-QSSEditorDialog::QSSEditorDialog(const QString &filePath, QWidget *parent) :
- QDialog(parent),
- m_ui(new Ui::QSSEditorDialog)
-{
- m_ui->setupUi(this);
- m_filePath = filePath;
-
- QFile file(filePath);
- file.open(QIODevice::ReadOnly);
- m_ui->textEdit->setPlainText(QString::fromUtf8(file.readAll()));
- setWindowTitle(tr("%1 - Style Sheet Editor").arg(file.fileName()));
-
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- restoreGeometry(settings.value("QSSEditor/geometry").toByteArray());
+QSSEditorDialog::QSSEditorDialog(const QString &filePath, QWidget *parent) : QDialog(parent), m_ui(new Ui::QSSEditorDialog){
+ m_ui->setupUi(this);
+ m_filePath = filePath;
+ QFile file(filePath);
+ file.open(QIODevice::ReadOnly);
+ m_ui->textEdit->setPlainText(QString::fromUtf8(file.readAll()));
+ setWindowTitle(tr("%1 - Style Sheet Editor").arg(file.fileName()));
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ restoreGeometry(settings.value("QSSEditor/geometry").toByteArray());
}
-QSSEditorDialog::~QSSEditorDialog()
-{
- delete m_ui;
+QSSEditorDialog::~QSSEditorDialog(){
+ delete m_ui;
}
-void QSSEditorDialog::save()
-{
- QFile file(m_filePath);
- file.open(QIODevice::WriteOnly);
- file.write(m_ui->textEdit->toPlainText().toUtf8());
+void QSSEditorDialog::save(){
+ QFile file(m_filePath);
+ file.open(QIODevice::WriteOnly);
+ file.write(m_ui->textEdit->toPlainText().toUtf8());
}
-void QSSEditorDialog::hideEvent(QHideEvent *)
-{
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- settings.setValue("QSSEditor/geometry", saveGeometry());
+void QSSEditorDialog::hideEvent(QHideEvent *){
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.setValue("QSSEditor/geometry", saveGeometry());
}
-void QSSEditorDialog::on_buttonBox_clicked(QAbstractButton *button)
-{
- QDialogButtonBox::StandardButton id = m_ui->buttonBox->standardButton(button);
- if(id == QDialogButtonBox::Ok)
- {
- save();
- accept();
- }
- else if(id == QDialogButtonBox::Save)
- {
- save();
+void QSSEditorDialog::on_buttonBox_clicked(QAbstractButton *button){
+ QDialogButtonBox::StandardButton id = m_ui->buttonBox->standardButton(button);
+ if(id == QDialogButtonBox::Ok){
+ save();
+ accept();
}
- else
- {
- reject();
+ else if(id == QDialogButtonBox::Save){
+ save();
}
+ else{
+ reject();
+ }
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h
index e2a6c773..ea615e81 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsseditordialog.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef QSSEDITORDIALOG_H
#define QSSEDITORDIALOG_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp
index 10f21f48..c9bfc14a 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QSettings>
#include <QDir>
#include <QInputDialog>
@@ -40,193 +12,145 @@
#define QSS_FULL_PATH_ROLE (Qt::ItemDataRole(Qt::UserRole))
#define QSS_WRITABLE_ROLE (Qt::ItemDataRole(Qt::UserRole + 1))
-QSSPage::QSSPage(QWidget *parent) :
- TabPage(parent),
- m_ui(new Ui::QSSPage)
-{
- m_ui->setupUi(this);
- QDir("/").mkpath(lthemeengine::userStyleSheetPath());
-
- m_menu = new QMenu(this);
- m_menu->addAction(QIcon::fromTheme("accessories-text-editor"), tr("Edit"), this, SLOT(on_editButton_clicked()));
- m_menu->addAction(tr("Rename"), this, SLOT(on_renameButton_clicked()));
- m_menu->addSeparator();
- m_menu->addAction(QIcon::fromTheme("edit-delete"), tr("Remove"), this, SLOT(on_removeButton_clicked()));
-
- readSettings();
-
- //icons
- m_ui->createButton->setIcon(QIcon::fromTheme("document-new"));
- m_ui->editButton->setIcon(QIcon::fromTheme("accessories-text-editor"));
- m_ui->removeButton->setIcon(QIcon::fromTheme("edit-delete"));
+QSSPage::QSSPage(QWidget *parent) : TabPage(parent), m_ui(new Ui::QSSPage){
+ m_ui->setupUi(this);
+ QDir("/").mkpath(lthemeengine::userStyleSheetPath());
+ m_menu = new QMenu(this);
+ m_menu->addAction(QIcon::fromTheme("accessories-text-editor"), tr("Edit"), this, SLOT(on_editButton_clicked()));
+ m_menu->addAction(tr("Rename"), this, SLOT(on_renameButton_clicked()));
+ m_menu->addSeparator();
+ m_menu->addAction(QIcon::fromTheme("edit-delete"), tr("Remove"), this, SLOT(on_removeButton_clicked()));
+ readSettings();
+ //icons
+ m_ui->createButton->setIcon(QIcon::fromTheme("document-new"));
+ m_ui->editButton->setIcon(QIcon::fromTheme("accessories-text-editor"));
+ m_ui->removeButton->setIcon(QIcon::fromTheme("edit-delete"));
}
-QSSPage::~QSSPage()
-{
- delete m_ui;
+QSSPage::~QSSPage(){
+ delete m_ui;
}
-void QSSPage::writeSettings()
-{
- QStringList styleSheets;
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
-
- for(int i = 0; i < m_ui->qssListWidget->count(); ++i)
- {
- QListWidgetItem *item = m_ui->qssListWidget->item(i);
- if(item->checkState() == Qt::Checked)
- styleSheets << item->data(QSS_FULL_PATH_ROLE).toString();
+void QSSPage::writeSettings(){
+ QStringList styleSheets;
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ for(int i = 0; i < m_ui->qssListWidget->count(); ++i){
+ QListWidgetItem *item = m_ui->qssListWidget->item(i);
+ if(item->checkState() == Qt::Checked)
+ styleSheets << item->data(QSS_FULL_PATH_ROLE).toString();
}
-
- settings.setValue("Interface/stylesheets", styleSheets);
+ settings.setValue("Interface/stylesheets", styleSheets);
}
-void QSSPage::on_qssListWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *)
-{
- if(current)
- {
- m_ui->editButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool());
- m_ui->removeButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool());
- m_ui->renameButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool());
+void QSSPage::on_qssListWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *){
+ if(current){
+ m_ui->editButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool());
+ m_ui->removeButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool());
+ m_ui->renameButton->setEnabled(current->data(QSS_WRITABLE_ROLE).toBool());
}
- else
- {
- m_ui->editButton->setEnabled(false);
- m_ui->removeButton->setEnabled(false);
- m_ui->renameButton->setEnabled(false);
+ else{
+ m_ui->editButton->setEnabled(false);
+ m_ui->removeButton->setEnabled(false);
+ m_ui->renameButton->setEnabled(false);
}
}
-void QSSPage::on_createButton_clicked()
-{
- QString name = QInputDialog::getText(this, tr("Enter Style Sheet Name"), tr("File name:"));
- if(name.isEmpty())
- return;
-
+void QSSPage::on_createButton_clicked(){
+ QString name = QInputDialog::getText(this, tr("Enter Style Sheet Name"), tr("File name:"));
+ if(name.isEmpty())
+ return;
if(!name.endsWith(".qss", Qt::CaseInsensitive))
- name.append(".qss");
-
- QString filePath = lthemeengine::userStyleSheetPath() + name;
-
- if(QFile::exists(filePath))
- {
+ name.append(".qss");
+ QString filePath = lthemeengine::userStyleSheetPath() + name;
+ if(QFile::exists(filePath)){
QMessageBox::warning(this, tr("Error"), tr("The file \"%1\" already exists").arg(filePath));
return;
- }
-
- //creating empty file
- QFile file(filePath);
- file.open(QIODevice::WriteOnly);
- file.close();
-
- //creating item
- QFileInfo info(filePath);
- QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget);
- item->setToolTip(info.filePath());
- item->setData(QSS_FULL_PATH_ROLE, info.filePath());
- item->setData(QSS_WRITABLE_ROLE, info.isWritable());
- item->setCheckState(Qt::Unchecked);
+ }
+ //creating empty file
+ QFile file(filePath);
+ file.open(QIODevice::WriteOnly);
+ file.close();
+ //creating item
+ QFileInfo info(filePath);
+ QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget);
+ item->setToolTip(info.filePath());
+ item->setData(QSS_FULL_PATH_ROLE, info.filePath());
+ item->setData(QSS_WRITABLE_ROLE, info.isWritable());
+ item->setCheckState(Qt::Unchecked);
}
-void QSSPage::on_editButton_clicked()
-{
- QListWidgetItem *item = m_ui->qssListWidget->currentItem();
- if(item)
- {
- QSSEditorDialog dialog(item->data(QSS_FULL_PATH_ROLE).toString(), this);
- dialog.exec();
+void QSSPage::on_editButton_clicked(){
+ QListWidgetItem *item = m_ui->qssListWidget->currentItem();
+ if(item){
+ QSSEditorDialog dialog(item->data(QSS_FULL_PATH_ROLE).toString(), this);
+ dialog.exec();
}
}
-void QSSPage::on_removeButton_clicked()
-{
- QListWidgetItem *item = m_ui->qssListWidget->currentItem();
- if(!item)
- return;
-
- int button = QMessageBox::question(this, tr("Confirm Remove"),
- tr("Are you sure you want to remove style sheet \"%1\"?")
- .arg(item->text()),
- QMessageBox::Yes | QMessageBox::No);
- if(button == QMessageBox::Yes)
- {
- QFile::remove(item->data(QSS_FULL_PATH_ROLE).toString());
- delete item;
- }
+void QSSPage::on_removeButton_clicked(){
+ QListWidgetItem *item = m_ui->qssListWidget->currentItem();
+ if(!item)
+ return;
+ int button = QMessageBox::question(this, tr("Confirm Remove"),tr("Are you sure you want to remove style sheet \"%1\"?").arg(item->text()), QMessageBox::Yes | QMessageBox::No);
+ if(button == QMessageBox::Yes){
+ QFile::remove(item->data(QSS_FULL_PATH_ROLE).toString());
+ delete item;
+ }
}
-void QSSPage::readSettings()
-{
- //load stylesheets
- m_ui->qssListWidget->clear();
- findStyleSheets(lthemeengine::userStyleSheetPath());
- findStyleSheets(lthemeengine::sharedStyleSheetPath().join(", "));
-
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
- QStringList styleSheets = settings.value("Interface/stylesheets").toStringList();
- for(int i = 0; i < m_ui->qssListWidget->count(); ++i)
- {
- QListWidgetItem *item = m_ui->qssListWidget->item(i);
- if(styleSheets.contains(item->data(QSS_FULL_PATH_ROLE).toString()))
- item->setCheckState(Qt::Checked);
- else
- item->setCheckState(Qt::Unchecked);
+void QSSPage::readSettings(){
+ //load stylesheets
+ m_ui->qssListWidget->clear();
+ findStyleSheets(lthemeengine::userStyleSheetPath());
+ findStyleSheets(lthemeengine::sharedStyleSheetPath().join(", "));
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ QStringList styleSheets = settings.value("Interface/stylesheets").toStringList();
+ for(int i = 0; i < m_ui->qssListWidget->count(); ++i){
+ QListWidgetItem *item = m_ui->qssListWidget->item(i);
+ if(styleSheets.contains(item->data(QSS_FULL_PATH_ROLE).toString()))
+ item->setCheckState(Qt::Checked);
+ else
+ item->setCheckState(Qt::Unchecked);
}
}
-void QSSPage::findStyleSheets(const QString &path)
-{
- QDir dir(path);
- dir.setFilter(QDir::Files);
- dir.setNameFilters(QStringList() << "*.qss");
-
- foreach (QFileInfo info, dir.entryInfoList())
- {
- QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget);
- item->setToolTip(info.filePath());
- item->setData(QSS_FULL_PATH_ROLE, info.filePath());
- item->setData(QSS_WRITABLE_ROLE, info.isWritable());
+void QSSPage::findStyleSheets(const QString &path){
+ QDir dir(path);
+ dir.setFilter(QDir::Files);
+ dir.setNameFilters(QStringList() << "*.qss");
+ foreach (QFileInfo info, dir.entryInfoList()){
+ QListWidgetItem *item = new QListWidgetItem(info.fileName(), m_ui->qssListWidget);
+ item->setToolTip(info.filePath());
+ item->setData(QSS_FULL_PATH_ROLE, info.filePath());
+ item->setData(QSS_WRITABLE_ROLE, info.isWritable());
}
}
-void QSSPage::on_renameButton_clicked()
-{
- QListWidgetItem *item = m_ui->qssListWidget->currentItem();
- if(!item)
- return;
-
- QString name = QInputDialog::getText(this, tr("Rename Style Sheet"), tr("Style sheet name:"),
- QLineEdit::Normal, item->text(), 0);
+void QSSPage::on_renameButton_clicked(){
+ QListWidgetItem *item = m_ui->qssListWidget->currentItem();
+ if(!item)
+ return;
+ QString name = QInputDialog::getText(this, tr("Rename Style Sheet"), tr("Style sheet name:"), QLineEdit::Normal, item->text(), 0);
if(name.isEmpty())
- return;
-
- if(!m_ui->qssListWidget->findItems(name, Qt::MatchExactly).isEmpty())
- {
- QMessageBox::warning(this, tr("Error"), tr("The style sheet \"%1\" already exists").arg(name));
- return;
- }
-
- if(!name.endsWith(".qss", Qt::CaseInsensitive))
- name.append(".qss");
-
- QString newPath = lthemeengine::userStyleSheetPath() + name;
-
- if(!QFile::rename(item->data(QSS_FULL_PATH_ROLE).toString(), newPath))
- {
+ return;
+ if(!m_ui->qssListWidget->findItems(name, Qt::MatchExactly).isEmpty()){
+ QMessageBox::warning(this, tr("Error"), tr("The style sheet \"%1\" already exists").arg(name));
+ return;
+ }
+ if(!name.endsWith(".qss", Qt::CaseInsensitive)) name.append(".qss");
+ QString newPath = lthemeengine::userStyleSheetPath() + name;
+ if(!QFile::rename(item->data(QSS_FULL_PATH_ROLE).toString(), newPath)){
QMessageBox::warning(this, tr("Error"), tr("Unable to rename file"));
- return;
- }
-
- item->setText(name);
- item->setData(QSS_FULL_PATH_ROLE, newPath);
- item->setToolTip(newPath);
+ return;
+ }
+ item->setText(name);
+ item->setData(QSS_FULL_PATH_ROLE, newPath);
+ item->setToolTip(newPath);
}
-void QSSPage::on_qssListWidget_customContextMenuRequested(const QPoint &pos)
-{
- QListWidgetItem *item = m_ui->qssListWidget->currentItem();
- if(item && item->data(QSS_WRITABLE_ROLE).toBool())
- {
- m_menu->exec(m_ui->qssListWidget->viewport()->mapToGlobal(pos));
- }
+void QSSPage::on_qssListWidget_customContextMenuRequested(const QPoint &pos){
+ QListWidgetItem *item = m_ui->qssListWidget->currentItem();
+ if(item && item->data(QSS_WRITABLE_ROLE).toBool()){
+ m_menu->exec(m_ui->qssListWidget->viewport()->mapToGlobal(pos));
+ }
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h
index 665f68c0..1fe0ed73 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/qsspage.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef QSSPAGE_H
#define QSSPAGE_H
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.cpp
index 251ce024..a8f4b959 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.cpp
@@ -1,33 +1,4 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include "tabpage.h"
-TabPage::TabPage(QWidget *parent) : QWidget(parent)
-{
+TabPage::TabPage(QWidget *parent) : QWidget(parent){
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.h
index ac285054..b4dd57d1 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine/tabpage.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef TABPAGE_H
#define TABPAGE_H
bgstack15