aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/panel-plugins/userbutton/LUserButton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lumina-desktop/panel-plugins/userbutton/LUserButton.cpp')
-rw-r--r--lumina-desktop/panel-plugins/userbutton/LUserButton.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/lumina-desktop/panel-plugins/userbutton/LUserButton.cpp b/lumina-desktop/panel-plugins/userbutton/LUserButton.cpp
new file mode 100644
index 00000000..74509920
--- /dev/null
+++ b/lumina-desktop/panel-plugins/userbutton/LUserButton.cpp
@@ -0,0 +1,45 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2014, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#include "LUserButton.h"
+#include "../../LSession.h"
+
+LUserButtonPlugin::LUserButtonPlugin(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){
+ button = new QToolButton(this);
+ button->setAutoRaise(true);
+ button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ button->setToolTip(QString("Quickly launch applications or open files"));
+ button->setText( SYSTEM::user() );
+ connect(button, SIGNAL(clicked()), this, SLOT(openMenu()));
+ this->layout()->setContentsMargins(0,0,0,0);
+ this->layout()->addWidget(button);
+ menu = new QMenu(this);
+ menu->setContentsMargins(1,1,1,1);
+ usermenu = new UserWidget(this);
+ connect(usermenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) );
+ mact = new QWidgetAction(this);
+ mact->setDefaultWidget(usermenu);
+ menu->addAction(mact);
+
+ QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes
+}
+
+LUserButtonPlugin::~LUserButtonPlugin(){
+
+}
+
+// ========================
+// PRIVATE FUNCTIONS
+// ========================
+void LUserButtonPlugin::openMenu(){
+ usermenu->UpdateMenu();
+ menu->popup(this->mapToGlobal(QPoint(0,0)));
+}
+
+void LUserButtonPlugin::closeMenu(){
+ menu->hide();
+}
+
bgstack15