diff options
author | Ken Moore <moorekou@gmail.com> | 2016-04-25 13:08:12 -0400 |
---|---|---|
committer | Ken Moore <moorekou@gmail.com> | 2016-04-25 13:08:12 -0400 |
commit | ed5ecf7ea7a482b4649e66ecb35fbc60af680684 (patch) | |
tree | acc0fa17d228259e847f55c678db9fb0a9b50f0c /src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h | |
parent | Merge branch 'master' of github.com:pcbsd/lumina (diff) | |
download | lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.gz lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.bz2 lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.zip |
Rearrange the Lumina source tree quite a bit:
Now the utilites are arranged by category (core, core-utils, desktop-utils), so all the -utils may be excluded by a package system (or turned into separate packages) as needed.
Diffstat (limited to 'src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h')
-rw-r--r-- | src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h new file mode 100644 index 00000000..f549b8d2 --- /dev/null +++ b/src-qt5/core/lumina-desktop/panel-plugins/systemstart/LStartButton.h @@ -0,0 +1,111 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2015, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This panel plugin is the main button that allow the user to run +// applications or logout of the desktop +//=========================================== +#ifndef _LUMINA_DESKTOP_START_MENU_PLUGIN_H +#define _LUMINA_DESKTOP_START_MENU_PLUGIN_H + +// Qt includes +#include <QMenu> +#include <QWidgetAction> +#include <QToolButton> +#include <QString> +#include <QWidget> +#include <QMenu> + +// Lumina-desktop includes +//#include "../../Globals.h" +#include "../LPPlugin.h" //main plugin widget + +// libLumina includes +#include <LuminaXDG.h> +#include <LuminaUtils.h> + +#include "StartMenu.h" + +//Simple Tool Button For QuickLaunch Items +class LQuickLaunchButton : public QToolButton{ + Q_OBJECT +signals: + void Launch(QString); + void Remove(QString); + +private slots: + void rmentry(){ + emit Remove(this->whatsThis()); + } + void launchentry(){ + emit Launch(this->whatsThis()); + } + +public: + LQuickLaunchButton(QString path, QWidget* parent = 0) : QToolButton(parent){ + this->setWhatsThis(path); + this->setMenu(new QMenu(this)); + this->setContextMenuPolicy(Qt::CustomContextMenu); + this->menu()->addAction( LXDG::findIcon("edit-delete",""), tr("Remove from Quicklaunch"), this, SLOT(rmentry()) ); + connect(this, SIGNAL(clicked()), this, SLOT(launchentry()) ); + connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showMenu()) ); + } + ~LQuickLaunchButton(){} + +}; + +// PANEL PLUGIN BUTTON +class LStartButtonPlugin : public LPPlugin{ + Q_OBJECT + +public: + LStartButtonPlugin(QWidget *parent = 0, QString id = "systemstart", bool horizontal=true); + ~LStartButtonPlugin(); + +private: + ResizeMenu *menu; + //QWidgetAction *mact; + StartMenu *startmenu; + QToolButton *button; + QList<LQuickLaunchButton*> QUICKL; + +private slots: + void openMenu(); + void closeMenu(); + + void updateButtonVisuals(); + + void updateQuickLaunch(QStringList); + void LaunchQuick(QString); + void RemoveQuick(QString); + void SaveMenuSize(QSize); + +public slots: + void OrientationChange(){ + if(this->layout()->direction()==QBoxLayout::LeftToRight){ + this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); + button->setIconSize( QSize(this->height(), this->height()) ); + for(int i=0; i<QUICKL.length(); i++){ QUICKL[i]->setIconSize(QSize(this->height(), this->height())); } + }else{ + this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); + button->setIconSize( QSize(this->width(), this->width()) ); + for(int i=0; i<QUICKL.length(); i++){ QUICKL[i]->setIconSize(QSize(this->width(), this->width())); } + } + this->layout()->update(); + updateButtonVisuals(); + } + + void LocaleChange(){ + updateButtonVisuals(); + startmenu->UpdateAll(); + } + + void ThemeChange(){ + updateButtonVisuals(); + startmenu->UpdateAll(); + } +}; + +#endif
\ No newline at end of file |