aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/desktop-plugins
diff options
context:
space:
mode:
authorKen Moore <moorekou@gmail.com>2015-10-08 09:16:34 -0400
committerKen Moore <moorekou@gmail.com>2015-10-08 09:16:34 -0400
commitf2e7539354da61ff2fd03ccfb58acae8b89aa097 (patch)
treed42fabdf0bd5a1ca0f3c5b30ffff63aa32739c76 /lumina-desktop/desktop-plugins
parentGet rid of an extra empty grid space between desktop items. (diff)
downloadlumina-f2e7539354da61ff2fd03ccfb58acae8b89aa097.tar.gz
lumina-f2e7539354da61ff2fd03ccfb58acae8b89aa097.tar.bz2
lumina-f2e7539354da61ff2fd03ccfb58acae8b89aa097.zip
Commit a couple fixes:
1) Make sure the calendar desktop plugin updates the date occasionally. 2) Add the framework for a custom-painted Toolbutton for the applauncher plugin. This will be used to ensure font outlines in the near future. 3) Another small adjustment for new window geometries - run the overall adjustment first - then re-check and see if the window is off the top of the screen before trying the fallback movement routine.
Diffstat (limited to 'lumina-desktop/desktop-plugins')
-rw-r--r--lumina-desktop/desktop-plugins/LDPlugin.h2
-rw-r--r--lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp3
-rw-r--r--lumina-desktop/desktop-plugins/applauncher/OutlineToolButton.h58
-rw-r--r--lumina-desktop/desktop-plugins/calendar/CalendarPlugin.h24
4 files changed, 82 insertions, 5 deletions
diff --git a/lumina-desktop/desktop-plugins/LDPlugin.h b/lumina-desktop/desktop-plugins/LDPlugin.h
index 6c34ab9c..f9e5a12b 100644
--- a/lumina-desktop/desktop-plugins/LDPlugin.h
+++ b/lumina-desktop/desktop-plugins/LDPlugin.h
@@ -1,6 +1,6 @@
//===========================================
// Lumina-DE source code
-// Copyright (c) 2014, Ken Moore
+// Copyright (c) 2014-2015, Ken Moore
// Available under the 3-clause BSD license
// See the LICENSE file for full details
//===========================================
diff --git a/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp b/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp
index 3acb83fb..0335b650 100644
--- a/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp
+++ b/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp
@@ -1,11 +1,12 @@
#include "AppLauncherPlugin.h"
#include "../../LSession.h"
+#include "OutlineToolButton.h"
AppLauncherPlugin::AppLauncherPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){
QVBoxLayout *lay = new QVBoxLayout();
this->setLayout(lay);
lay->setContentsMargins(0,0,0,0);
- button = new QToolButton(this);
+ button = new OutlineToolButton(this);
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setAutoRaise(true);
button->setText("...\n..."); //Need to set something here so that initial sizing works properly
diff --git a/lumina-desktop/desktop-plugins/applauncher/OutlineToolButton.h b/lumina-desktop/desktop-plugins/applauncher/OutlineToolButton.h
new file mode 100644
index 00000000..1e71658d
--- /dev/null
+++ b/lumina-desktop/desktop-plugins/applauncher/OutlineToolButton.h
@@ -0,0 +1,58 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2015, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+// This is a simple subclass for a QToolButton with black/white text (for transparent backgrounds)
+//===========================================
+#ifndef _LUMINA_DESKTOP_PLUGIN_APPLAUNCHER_OUTLINE_TOOLBUTTON_H
+#define _LUMINA_DESKTOP_PLUGIN_APPLAUNCHER_OUTLINE_TOOLBUTTON_H
+
+#include <QToolButton>
+#include <QPainter>
+#include <QPainterPath>
+#include <QPen>
+#include <QStyle>
+#include <QStyleOption>
+#include <QStylePainter>
+#include <QFont>
+
+class OutlineToolButton : public QToolButton{
+ Q_OBJECT
+public:
+ OutlineToolButton(QWidget *parent=0) : QToolButton(parent){
+ QFont font = this->font();
+ font.setStyleStrategy(QFont::ForceOutline);// | QFont::PreferQuality);
+ this->setFont(font);
+ }
+ ~OutlineToolButton(){}
+
+protected:
+ void paintEvent(QPaintEvent*){
+
+ //QPainter painter(this);
+ //QPainterPath path;
+ //QPen pen;
+ //pen.setWidth(2);
+ //pen.setColor(Qt::red);
+ //painter.setFont(this->font());
+ //painter.setPen(pen);
+ //path.addText(10 , 60, this->font(), this->text()); //Adjust the position
+ //painter.drawPath(path);
+ QFont font = this->font();
+ font.setStyleStrategy(QFont::ForceOutline);// | QFont::PreferQuality);
+ //This is what a QToolButton performs
+ QStylePainter p(this);
+ //p.setPen(pen);
+ QStyleOptionToolButton opt;
+ initStyleOption(&opt);
+ opt.font = font; //Use the font which forces outlines
+ //p.style()->drawControl(QStyle::CE_ToolButtonLabel, &opt, &p, this); //this does the outline underneath
+ p.drawComplexControl(QStyle::CC_ToolButton, opt); //This does the normal painting on top
+ //Now do the normal paint event over the top
+ //QToolButton::paintEvent(ev);
+ }
+
+};
+#endif
diff --git a/lumina-desktop/desktop-plugins/calendar/CalendarPlugin.h b/lumina-desktop/desktop-plugins/calendar/CalendarPlugin.h
index 796bc42d..e9652e17 100644
--- a/lumina-desktop/desktop-plugins/calendar/CalendarPlugin.h
+++ b/lumina-desktop/desktop-plugins/calendar/CalendarPlugin.h
@@ -11,22 +11,40 @@
#include <QCalendarWidget>
#include <QVBoxLayout>
+#include <QDate>
+#include <QTimer>
#include "../LDPlugin.h"
class CalendarPlugin : public LDPlugin{
Q_OBJECT
+private:
+ QCalendarWidget *cal;
+ QTimer *timer;
+
public:
CalendarPlugin(QWidget* parent, QString ID) : LDPlugin(parent, ID){
this->setLayout( new QVBoxLayout());
this->layout()->setContentsMargins(0,0,0,0);
cal = new QCalendarWidget(this);
+ cal->setSelectionMode(QCalendarWidget::NoSelection);
this->layout()->addWidget(cal);
this->setInitialSize( cal->sizeHint().width(), cal->sizeHint().height() );
+ timer = new QTimer(this);
+ timer->setInterval(1800000); //30 minute refresh timer
+ timer->start();
+ QTimer::singleShot(0,this, SLOT(updateDate()) );
}
- ~CalendarPlugin(){}
+ ~CalendarPlugin(){ timer->stop(); }
-private:
- QCalendarWidget *cal;
+private slots:
+ void updateDate(){
+ if(cal->selectedDate() != QDate::currentDate()){
+ cal->setSelectedDate(QDate::currentDate());
+ cal->showSelectedDate();
+ }
+ }
+
+
};
#endif
bgstack15