//=========================================== // 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->setPopupMode(QToolButton::DelayedPopup); //make sure it runs the update routine first 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); button->setMenu(menu); QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes } LUserButtonPlugin::~LUserButtonPlugin(){ } void LUserButtonPlugin::updateButtonVisuals(){ button->setToolTip(tr("Quickly launch applications or open files")); button->setText( SYSTEM::user() ); if( QFile::exists(QDir::homePath()+"/.loginIcon.png") ){ button->setIcon( QIcon(QDir::homePath()+"/.loginIcon.png") ); }else{ button->setIcon( LXDG::findIcon("user-identity", ":/images/default-user.png") ); //force icon refresh } } // ======================== // PRIVATE FUNCTIONS // ======================== void LUserButtonPlugin::openMenu(){ usermenu->UpdateMenu(); button->showMenu(); } void LUserButtonPlugin::closeMenu(){ menu->hide(); }