diff options
author | Ken Moore <moorekou@gmail.com> | 2015-10-07 12:50:20 -0400 |
---|---|---|
committer | Ken Moore <moorekou@gmail.com> | 2015-10-07 12:50:20 -0400 |
commit | 6b310daff4fbd1ba9080ea340b3e9cea72770f06 (patch) | |
tree | 76b67cf201d1796af4ae845961a4e1ce666e22d7 /lumina-desktop | |
parent | Commit the 3rd iteration of the desktop plugin container system. (diff) | |
download | lumina-6b310daff4fbd1ba9080ea340b3e9cea72770f06.tar.gz lumina-6b310daff4fbd1ba9080ea340b3e9cea72770f06.tar.bz2 lumina-6b310daff4fbd1ba9080ea340b3e9cea72770f06.zip |
Couple more updates for lumina-desktop:
1) Implement the file dropping on the desktop
2) Fix the panel painting routine to ensure the proper "fake" transparency is applied.
3) Add a missing include line in the panel "applauncher" plugin.
4) Fix the initial desktop icon size setting.
Diffstat (limited to 'lumina-desktop')
-rw-r--r-- | lumina-desktop/LDesktop.cpp | 2 | ||||
-rw-r--r-- | lumina-desktop/LDesktopPluginSpace.cpp | 2 | ||||
-rw-r--r-- | lumina-desktop/LDesktopPluginSpace.h | 12 | ||||
-rw-r--r-- | lumina-desktop/LPanel.cpp | 16 | ||||
-rw-r--r-- | lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp | 1 |
5 files changed, 21 insertions, 12 deletions
diff --git a/lumina-desktop/LDesktop.cpp b/lumina-desktop/LDesktop.cpp index a1aaac67..8204de29 100644 --- a/lumina-desktop/LDesktop.cpp +++ b/lumina-desktop/LDesktop.cpp @@ -224,7 +224,7 @@ void LDesktop::InitDesktop(){ connect(bgWindow, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowMenu(const QPoint&)) ); if(DEBUG){ qDebug() << "Create bgDesktop"; } bgDesktop = new LDesktopPluginSpace(bgWindow); //new QMdiArea(bgWindow); - bgDesktop->SetIconSize(qRound(bgDesktop->height()/14.0)); // (For 1600x900 screens - this comes out to 64 pixel icons) + bgDesktop->SetIconSize(qRound(bgWindow->height()/14.0)); // (For 1600x900 screens - this comes out to 64 pixel icons) connect(bgDesktop, SIGNAL(PluginRemovedByUser(QString)), this, SLOT(RemoveDeskPlugin(QString)) ); if(DEBUG){ qDebug() << " - Desktop Init Done:" << desktopnumber; } //Start the update processes diff --git a/lumina-desktop/LDesktopPluginSpace.cpp b/lumina-desktop/LDesktopPluginSpace.cpp index 116c4207..21ed3f46 100644 --- a/lumina-desktop/LDesktopPluginSpace.cpp +++ b/lumina-desktop/LDesktopPluginSpace.cpp @@ -193,7 +193,7 @@ void LDesktopPluginSpace::reloadPlugins(){ else if(ITEMS[i]->whatsThis().contains("---dlink") && items.contains(ITEMS[i]->whatsThis().section("---",0,0).section("::",1,50)) ){ //Account for the variation in the Plugin ID for desktop files items.removeAll(ITEMS[i]->whatsThis().section("---",0,0).section("::",1,50)); - }else{ ITEMS[i]->Cleanup(); delete ITEMS.takeAt(i); i--; } + }else{ ITEMS[i]->removeSettings(true); delete ITEMS.takeAt(i); i--; } //this is considered a permanent removal (cleans settings) } //Now create any new items diff --git a/lumina-desktop/LDesktopPluginSpace.h b/lumina-desktop/LDesktopPluginSpace.h index 353543d9..bf623b68 100644 --- a/lumina-desktop/LDesktopPluginSpace.h +++ b/lumina-desktop/LDesktopPluginSpace.h @@ -14,6 +14,8 @@ #include <QMimeData> #include <QSettings> #include <QDebug> +#include <QFile> +#include <QDir> #include "desktop-plugins/LDPlugin.h" @@ -217,7 +219,15 @@ protected: qDebug() << "Desktop Drop Event:" << urls; for(int i=0; i<urls.length(); i++){ //If this file is not in the desktop folder, move/copy it here - // -- TO-DO + if(urls[i].isLocalFile()){ + QFileInfo info(urls[i].toLocalFile()); + if(info.exists() && !QFile::exists(QDir::homePath()+"/Desktop/"+info.fileName())){ + //Make a link to the file here + QFile::link(info.absoluteFilePath(), QDir::homePath()+"/Desktop/"+info.fileName()); + }else{ + qWarning() << "Invalid desktop file drop (ignored):" << urls[i].toString(); + } + } } }else{ diff --git a/lumina-desktop/LPanel.cpp b/lumina-desktop/LPanel.cpp index 53eb1801..57eff210 100644 --- a/lumina-desktop/LPanel.cpp +++ b/lumina-desktop/LPanel.cpp @@ -299,7 +299,7 @@ void LPanel::UpdateTheme(){ void LPanel::checkPanelFocus(){ if( !this->geometry().contains(QCursor::pos()) ){ //Move the panel back to it's "hiding" spot - if(hidden){ this->move(hidepoint); } + if(hidden){ this->move(hidepoint); this->update(); } //Re-active the old window if(LSession::handle()->activeWindow()!=0){ LSession::handle()->XCB->ActivateWindow(LSession::handle()->activeWindow()); @@ -313,17 +313,14 @@ void LPanel::checkPanelFocus(){ //=========== void LPanel::paintEvent(QPaintEvent *event){ QPainter *painter = new QPainter(this); + qDebug() << "Paint Tray:"; //Make sure the base background of the event rectangle is the associated rectangle from the BGWindow - QRect rec(event->rect().x(), event->rect().y(), event->rect().width(), event->rect().height()); //already in global coords? (translating to bgWindow coords crashes Lumina) + QRect rec = this->geometry(); //start with the global geometry of the panel //Need to translate that rectangle to the background image coordinates - //qDebug() << "Rec:" << rec.x() << rec.y(); - //Need to change to global coords for the main window - if(hidden && (this->pos()==hidepoint) ){ rec.moveTo( this->mapToGlobal(rec.topLeft()-hidepoint+showpoint) ); } - else{ rec.moveTo( this->mapToGlobal(rec.topLeft()) ); } - //qDebug() << "Global Rec:" << rec.x() << rec.y() << screennum; + //qDebug() << " - Rec:" << rec << hidden << this->geometry(); rec.moveTo( rec.x()-LSession::handle()->screenGeom(screennum).x(), rec.y() ); - //qDebug() << "Adjusted Global Rec:" << rec.x() << rec.y(); - painter->drawPixmap(event->rect(), bgWindow->grab(rec) ); + //qDebug() << " - Adjusted Global Rec:" << rec; + painter->drawPixmap(QRect(0,0,this->width(), this->height()), bgWindow->grab(rec) ); QWidget::paintEvent(event); //now pass the event along to the normal painting event } @@ -332,6 +329,7 @@ void LPanel::enterEvent(QEvent *event){ if(hidden){ //Move the panel out so it is fully available this->move(showpoint); + this->update(); } this->activateWindow(); event->accept(); //just to quiet the compile warning diff --git a/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp b/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp index 5bd7fa96..321970ed 100644 --- a/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp +++ b/lumina-desktop/panel-plugins/applauncher/AppLaunchButton.cpp @@ -8,6 +8,7 @@ #include "../../LSession.h" #include <LuminaXDG.h> +#include <QInputDialog> AppLaunchButtonPlugin::AppLaunchButtonPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ button = new QToolButton(this); |