diff options
Diffstat (limited to 'lumina-desktop/panel-plugins/systemdashboard')
5 files changed, 716 insertions, 0 deletions
diff --git a/lumina-desktop/panel-plugins/systemdashboard/LSysDashboard.cpp b/lumina-desktop/panel-plugins/systemdashboard/LSysDashboard.cpp new file mode 100644 index 00000000..4e5b3139 --- /dev/null +++ b/lumina-desktop/panel-plugins/systemdashboard/LSysDashboard.cpp @@ -0,0 +1,88 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "LSysDashboard.h" + +LSysDashboard::LSysDashboard(QWidget *parent, QString id, bool horizontal) : LPPlugin(parent, id, horizontal){ + upTimer = new QTimer(this); + upTimer->setInterval(10000); //10 second update ping + connect(upTimer, SIGNAL(timeout()), this, SLOT(updateIcon())); + button = new QToolButton(this); + button->setAutoRaise(true); + button->setToolButtonStyle(Qt::ToolButtonIconOnly); + button->setToolTip(QString("System Dashboard")); + connect(button, SIGNAL(clicked()), this, SLOT(openMenu())); + this->layout()->setContentsMargins(0,0,0,0); + this->layout()->addWidget(button); + menu = new QMenu(this); + sysmenu = new LSysMenuQuick(this); + connect(sysmenu, SIGNAL(CloseMenu()), this, SLOT(closeMenu()) ); + mact = new QWidgetAction(this); + mact->setDefaultWidget(sysmenu); + menu->addAction(mact); + + QTimer::singleShot(0,this, SLOT(OrientationChange())); //Update icons/sizes +} + +LSysDashboard::~LSysDashboard(){ + +} + +// ======================== +// PRIVATE FUNCTIONS +// ======================== +void LSysDashboard::updateIcon(bool force){ + //For the visual, show battery state only if important + static bool batcharging = false; + QPixmap pix; + if(LOS::hasBattery()){ + int bat = LOS::batteryCharge(); + bool charging = LOS::batteryIsCharging(); + //Set the icon as necessary + if(charging && !batcharging){ + //Charging and just plugged in + if(bat < 15){ button->setIcon( LXDG::findIcon("battery-charging-low","") ); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(bat < 30){ button->setIcon( LXDG::findIcon("battery-charging-caution","") ); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(force || button->icon().isNull()){ resetIcon(); } + }else if(!charging){ + //Not charging (critical level or just unplugged) + if(bat<1){ button->setIcon( LXDG::findIcon("battery-missing","") ); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(bat < 15){ button->setIcon( LXDG::findIcon("battery-low","") ); QTimer::singleShot(5000, this, SLOT(resetIcon())); } + else if(bat < 30){ button->setIcon( LXDG::findIcon("battery-caution","") ); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(bat < 50 && batcharging){ button->setIcon( LXDG::findIcon("battery-040","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(bat < 70 && batcharging){ button->setIcon( LXDG::findIcon("battery-060","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(bat < 90 && batcharging){ button->setIcon( LXDG::findIcon("battery-080","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(batcharging){ button->setIcon( LXDG::findIcon("battery-100","")); QTimer::singleShot(5000, this, SLOT(resetIcon()));} + else if(force || button->icon().isNull()){ resetIcon(); } + }else if(force || button->icon().isNull()){ + //Otherwise just use the default icon + resetIcon(); + } + //Save the values for comparison later + batcharging = charging; + if( !upTimer->isActive() ){ upTimer->start(); } //only use the timer if a battery is present + + // No battery - just use/set the normal icon + }else if(force || button->icon().isNull()){ + resetIcon(); + if(upTimer->isActive() ){ upTimer->stop(); } //no battery available - no refresh timer needed + } + +} + +void LSysDashboard::resetIcon(){ + button->setIcon( LXDG::findIcon("dashboard-show","")); +} + +void LSysDashboard::openMenu(){ + sysmenu->UpdateMenu(); + menu->popup(this->mapToGlobal(QPoint(0,0))); +} + +void LSysDashboard::closeMenu(){ + menu->hide(); +} + diff --git a/lumina-desktop/panel-plugins/systemdashboard/LSysDashboard.h b/lumina-desktop/panel-plugins/systemdashboard/LSysDashboard.h new file mode 100644 index 00000000..9f1c5d18 --- /dev/null +++ b/lumina-desktop/panel-plugins/systemdashboard/LSysDashboard.h @@ -0,0 +1,66 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This panel plugin allows the user to control different system settings +// For example: screen brightness, audio volume, workspace, and battery +//=========================================== +#ifndef _LUMINA_DESKTOP_SYSTEM_DASHBOARD_H +#define _LUMINA_DESKTOP_SYSTEM_DASHBOARD_H + +//Qt includes + +#include <QHBoxLayout> +#include <QDebug> +#include <QCoreApplication> +#include <QPainter> +#include <QPixmap> +#include <QWidgetAction> +#include <QMenu> +#include <QTimer> +#include <QToolButton> + +//libLumina includes +#include <LuminaOS.h> +#include <LuminaXDG.h> + +//Local includes +#include "../LPPlugin.h" +#include "SysMenuQuick.h" + +class LSysDashboard : public LPPlugin{ + Q_OBJECT +public: + LSysDashboard(QWidget *parent = 0, QString id="systemdashboard", bool horizontal=true); + ~LSysDashboard(); + +private: + QMenu *menu; + QWidgetAction *mact; + LSysMenuQuick *sysmenu; + QToolButton *button; + QTimer *upTimer; + +private slots: + void updateIcon(bool force = false); + void resetIcon(); + void openMenu(); + void closeMenu(); + +public slots: + void OrientationChange(){ + if(this->layout()->direction()==QBoxLayout::LeftToRight){ + this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); + button->setIconSize( QSize(this->height(), this->height()) ); + }else{ + this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); + button->setIconSize( QSize(this->width(), this->width()) ); + } + updateIcon(true); //force icon refresh + this->layout()->update(); + } +}; + +#endif diff --git a/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.cpp b/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.cpp new file mode 100644 index 00000000..550dbeac --- /dev/null +++ b/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.cpp @@ -0,0 +1,162 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "SysMenuQuick.h" +#include "ui_SysMenuQuick.h" + +#include "../../LSession.h" +#include <LuminaX11.h> + +LSysMenuQuick::LSysMenuQuick(QWidget *parent) : QWidget(parent), ui(new Ui::LSysMenuQuick){ + ui->setupUi(this); + settings = new QSettings("panel-plugins","systemdashboard"); + //Now reset the initial saved settings (if any) + LOS::setScreenBrightness( settings->value("screenbrightness",100).toInt() ); //default to 100% + LOS::setAudioVolume( settings->value("audiovolume", 100).toInt() ); //default to 100% + //Now setup the connections + connect(ui->slider_volume, SIGNAL(valueChanged(int)), this, SLOT(volSliderChanged()) ); + connect(ui->slider_brightness, SIGNAL(valueChanged(int)), this, SLOT(brightSliderChanged()) ); + connect(ui->tool_wk_prev, SIGNAL(clicked()), this, SLOT(prevWorkspace()) ); + connect(ui->tool_wk_next, SIGNAL(clicked()), this, SLOT(nextWorkspace()) ); + connect(ui->tool_logout, SIGNAL(clicked()), this, SLOT(startLogout()) ); + connect(ui->tool_vol_mixer, SIGNAL(clicked()), this, SLOT(startMixer()) ); + //And setup the default icons + ui->label_bright_icon->setPixmap( LXDG::findIcon("preferences-system-power-management","").pixmap(ui->label_bright_icon->maximumSize()) ); + ui->tool_wk_prev->setIcon( LXDG::findIcon("go-previous-view","")); + ui->tool_wk_next->setIcon( LXDG::findIcon("go-next-view","") ); + ui->tool_logout->setIcon( LXDG::findIcon("system-log-out","") ); +} + +LSysMenuQuick::~LSysMenuQuick(){ + +} + +void LSysMenuQuick::UpdateMenu(){ + //Audio Volume + int val = LOS::audioVolume(); + QIcon ico; + if(val > 66){ ico= LXDG::findIcon("audio-volume-high",""); } + else if(val > 33){ ico= LXDG::findIcon("audio-volume-medium",""); } + else if(val > 0){ ico= LXDG::findIcon("audio-volume-low",""); } + else{ ico= LXDG::findIcon("audio-volume-muted",""); } + bool hasMixer = LOS::hasMixerUtility(); + ui->label_vol_icon->setVisible(!hasMixer); + ui->tool_vol_mixer->setVisible(hasMixer); + if(!hasMixer){ ui->label_vol_icon->setPixmap( ico.pixmap(ui->label_vol_icon->maximumSize()) ); } + else{ ui->tool_vol_mixer->setIcon(ico); } + QString txt = QString::number(val)+"%"; + if(val<100){ txt.prepend(" "); } //make sure no widget resizing + ui->label_vol_text->setText(txt); + if(ui->slider_volume->value()!= val){ ui->slider_volume->setValue(val); } + //Screen Brightness + val = LOS::ScreenBrightness(); + txt = QString::number(val)+"%"; + if(val<100){ txt.prepend(" "); } //make sure no widget resizing + ui->label_bright_text->setText(txt); + if(ui->slider_brightness->value()!=val){ ui->slider_brightness->setValue(val); } + //Battery Status + if(LOS::hasBattery()){ + ui->group_battery->setVisible(true); + val = LOS::batteryCharge(); + if(LOS::batteryIsCharging()){ + if(val < 15){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-low","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 30){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-caution","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 50){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-040","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 70){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-060","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 90){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging-080","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else{ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-charging","").pixmap(ui->label_bat_icon->maximumSize()) ); } + ui->label_bat_text->setText( QString("%1%\n(%2)").arg(QString::number(val), tr("charging")) ); + }else{ + if(val < 1){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-missing","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 15){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-low","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 30){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-caution","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 50){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-040","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 70){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-060","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else if(val < 90){ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-080","").pixmap(ui->label_bat_icon->maximumSize()) ); } + else{ ui->label_bat_icon->setPixmap( LXDG::findIcon("battery-100","").pixmap(ui->label_bat_icon->maximumSize()) ); } + ui->label_bat_text->setText( QString("%1%\n(%2)").arg(QString::number(val), getRemainingTime()) ); + } + }else{ + ui->group_battery->setVisible(false); + } + //Workspace + val = LX11::GetCurrentDesktop(); + int tot = LX11::GetNumberOfDesktops(); + ui->group_workspace->setVisible(val>=0 && tot>1); + ui->label_wk_text->setText( QString(tr("%1 of %2")).arg(QString::number(val+1), QString::number(tot)) ); +} + +void LSysMenuQuick::volSliderChanged(){ + int val = ui->slider_volume->value(); + LOS::setAudioVolume(val); + settings->setValue("audiovolume",val); + QString txt = QString::number(val)+"%"; + if(val<100){ txt.prepend(" "); } //make sure no widget resizing + ui->label_vol_text->setText( txt ); + if(val > 66){ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-high","").pixmap(ui->label_vol_icon->maximumSize()) ); } + else if(val > 33){ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-medium","").pixmap(ui->label_vol_icon->maximumSize()) ); } + else if(val > 0){ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-low","").pixmap(ui->label_vol_icon->maximumSize()) ); } + else{ ui->label_vol_icon->setPixmap( LXDG::findIcon("audio-volume-muted","").pixmap(ui->label_vol_icon->maximumSize()) ); } +} + +void LSysMenuQuick::startMixer(){ + emit CloseMenu(); + LOS::startMixerUtility(); +} + +void LSysMenuQuick::brightSliderChanged(){ + int val = ui->slider_brightness->value(); + LOS::setScreenBrightness(val); + settings->setValue("screenbrightness",val); + QString txt = QString::number(val)+"%"; + if(val<100){ txt.prepend(" "); } //make sure no widget resizing + ui->label_bright_text->setText( txt ); +} + +void LSysMenuQuick::nextWorkspace(){ + int cur = LX11::GetCurrentDesktop(); + int tot = LX11::GetNumberOfDesktops(); + cur++; + if(cur>=tot){ cur = 0; } //back to beginning + LX11::SetCurrentDesktop(cur); +ui->label_wk_text->setText( QString(tr("%1 of %2")).arg(QString::number(cur+1), QString::number(tot)) ); +} + +void LSysMenuQuick::prevWorkspace(){ + int cur = LX11::GetCurrentDesktop(); + int tot = LX11::GetNumberOfDesktops(); + cur--; + if(cur<0){ cur = tot-1; } //back to last + LX11::SetCurrentDesktop(cur); + ui->label_wk_text->setText( QString(tr("%1 of %2")).arg(QString::number(cur+1), QString::number(tot)) ); +} + +QString LSysMenuQuick::getRemainingTime(){ + int secs = LOS::batterySecondsLeft(); + if(secs < 0){ return "??"; } + QString rem; //remaining + if(secs > 3600){ + int hours = secs/3600; + rem.append( QString::number(hours)+"h "); + secs = secs - (hours*3600); + } + if(secs > 60){ + int min = secs/60; + rem.append( QString::number(min)+"m "); + secs = secs - (min*60); + } + if(secs > 0){ + rem.append( QString::number(secs)+"s"); + }else{ + rem.append( "0s" ); + } + return rem; +} + +void LSysMenuQuick::startLogout(){ + emit CloseMenu(); + LSession::systemWindow(); +}
\ No newline at end of file diff --git a/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.h b/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.h new file mode 100644 index 00000000..7b3c2d09 --- /dev/null +++ b/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.h @@ -0,0 +1,52 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This panel plugin allows the user to control different system settings +// For example: screen brightness, audio volume, workspace, and battery +//=========================================== +#ifndef _LUMINA_PANEL_QUICK_SYSTEM_MENU_H +#define _LUMINA_PANEL_QUICK_SYSTEM_MENU_H + +#include <QWidget> +#include <QSettings> +#include <QString> + +#include <LuminaOS.h> +#include <LuminaXDG.h> + +namespace Ui{ + class LSysMenuQuick; +}; + +class LSysMenuQuick : public QWidget{ + Q_OBJECT +public: + LSysMenuQuick(QWidget *parent=0); + ~LSysMenuQuick(); + + void UpdateMenu(); + +private: + Ui::LSysMenuQuick *ui; + QSettings *settings; + + QString getRemainingTime(); //battery time left + +private slots: + void volSliderChanged(); + void brightSliderChanged(); + void startMixer(); + void nextWorkspace(); + void prevWorkspace(); + void startLogout(); + + +signals: + void CloseMenu(); + +}; + +#endif
\ No newline at end of file diff --git a/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.ui b/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.ui new file mode 100644 index 00000000..37cac2d4 --- /dev/null +++ b/lumina-desktop/panel-plugins/systemdashboard/SysMenuQuick.ui @@ -0,0 +1,348 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>LSysMenuQuick</class> + <widget class="QWidget" name="LSysMenuQuick"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>169</width> + <height>240</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <property name="styleSheet"> + <string notr="true">QGroupBox{ +border-radius: 5px; +border: 1px solid grey; +margin-top: 1ex; +} +QGroupBox::title{ +subcontrol-origin: margin; +subcontrol-position: top center; +padding: 0 3px; +background-color: rgba(255,255,255,255); +border-radius: 5px; +font-weight: bold; +}</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>1</number> + </property> + <item> + <widget class="QGroupBox" name="group_volume"> + <property name="title"> + <string>System Volume</string> + </property> + <property name="flat"> + <bool>false</bool> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <widget class="QLabel" name="label_vol_icon"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="text"> + <string notr="true"/> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_vol_mixer"> + <property name="minimumSize"> + <size> + <width>30</width> + <height>30</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="toolTip"> + <string>Launch Audio Mixer</string> + </property> + <property name="text"> + <string/> + </property> + <property name="iconSize"> + <size> + <width>30</width> + <height>30</height> + </size> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="slider_volume"> + <property name="maximum"> + <number>100</number> + </property> + <property name="value"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_vol_text"> + <property name="text"> + <string notr="true">100%</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="group_brightness"> + <property name="title"> + <string>Screen Brightness</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <widget class="QLabel" name="label_bright_icon"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="text"> + <string notr="true"/> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="slider_brightness"> + <property name="maximum"> + <number>100</number> + </property> + <property name="value"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_bright_text"> + <property name="text"> + <string notr="true">100%</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="group_battery"> + <property name="title"> + <string>Battery Status</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <widget class="QLabel" name="label_bat_icon"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="text"> + <string notr="true"/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_bat_text"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string notr="true">100% (Plugged in)</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="group_workspace"> + <property name="title"> + <string>Workspace</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <widget class="QToolButton" name="tool_wk_prev"> + <property name="text"> + <string notr="true">prev</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_wk_text"> + <property name="text"> + <string notr="true">1 of 2</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_wk_next"> + <property name="text"> + <string notr="true">next</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="styleSheet"> + <string notr="true">QGroupBox{ border: none; }</string> + </property> + <property name="title"> + <string/> + </property> + <property name="flat"> + <bool>true</bool> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <property name="leftMargin"> + <number>1</number> + </property> + <property name="topMargin"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>1</number> + </property> + <property name="bottomMargin"> + <number>2</number> + </property> + <item> + <widget class="QToolButton" name="tool_logout"> + <property name="font"> + <font> + <pointsize>9</pointsize> + </font> + </property> + <property name="text"> + <string>Log Out</string> + </property> + <property name="iconSize"> + <size> + <width>22</width> + <height>22</height> + </size> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + <property name="autoRaise"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> |