Cherry-picking upstream release 0.11.0 (Closes: #821382).

* Removed some build dependencies:
  - cmake
  - libqt5xdg-dev
  - libqt5xdgiconloader-dev
  - pkg-config
  - qttools5-dev
  - qttools5-dev-tools
* Bumped some build dependencies:
  - liblxqt0-dev (>= 0.11.1)
  - liblxqt-globalkeys0-dev (>= 0.11.1)
  - liblxqt-globalkeys-ui0-dev (>= 0.11.1)
  - libsysstat-qt5-0-dev (>= 0.3.3)
* Fixed VCS-Git, pointing to the right branch
* Bumped years in d/copyright
ubuntu/bionic debian/0.11.1-1
Alf Gaida 7 years ago
parent 7c5b13d1f4
commit 612ee246bf

4
.gitignore vendored

@ -1,4 +0,0 @@
build
*.kdev4
CMakeLists.txt.user
*/translations/lxqt-panel

@ -1,7 +1,28 @@
lxqt-panel-0.11.0 / 2016-09-24 lxqt-panel-0.11.1 / 2017-01-01
============================== ==============================
* Show Auto-Hiding Panels with Delay (#387)
* Enabling testing on weston (#380)
* Update *da.desktop files
* plugin-showdesktop: Cleanup left behind XCB artifacts
* plugin-kbindicator: Use FindXCB CMake module
* plugin-tray: Use the FindXCB CMake module
* Use the new lxqt-build-tools CMake modules (FindMenuCache)
* plugin-desktopswitch: Add LABEL_TYPE_NONE
* Add/Update Portugese translations
* taskbar: Add "cycle on wheel" configuration
* taskbar: Forward wheelEvent
* Add/Update french desktop entries
* taskbar: Set toolButtonStyle for popup correctly
* Fix faulty link in README.md
* Remove arbitrary limit of taskbar button width
* Remove cpack (#371)
0.11.0 / 2016-09-24
===================
* Release 0.11.0: Add changelog
* Update README.md: Reflect changes introduced in 1c22479 * Update README.md: Reflect changes introduced in 1c22479
* CMakeLists: Fail for unmet dependencies * CMakeLists: Fail for unmet dependencies
* mainmenu: Remove setting base style in StyleChange * mainmenu: Remove setting base style in StyleChange

@ -266,13 +266,3 @@ endforeach()
message(STATUS "*********************************************************************") message(STATUS "*********************************************************************")
add_subdirectory(panel) add_subdirectory(panel)
# building tarball with CPack -------------------------------------------------
include(InstallRequiredSystemLibraries)
set(CPACK_PACKAGE_VERSION_MAJOR ${LXQT_MAJOR_VERSION})
set(CPACK_PACKAGE_VERSION_MINOR ${LXQT_MINOR_VERSION})
set(CPACK_PACKAGE_VERSION_PATCH ${LXQT_PATCH_VERSION})
set(CPACK_GENERATOR TBZ2)
set(CPACK_SOURCE_GENERATOR TBZ2)
set(CPACK_SOURCE_IGNORE_FILES /build/;.gitignore;.*~;.git;.kdev4;temp)
include(CPack)

@ -5,7 +5,7 @@
`lxqt-panel` represents the taskbar of LXQt. `lxqt-panel` represents the taskbar of LXQt.
The elements available in lxqt-panel are called "plugin" technically. This applies e. g. to the source code where they reside in directories `./plugin-<plugin>` like `plugin-mainmenu`. In contrast to this they are called "widgets" by the configuration GUI so far. Also, a more descriptive term is used to refer to distinct plugins within the GUI. E. g. the aforementioned `plugin-mainmenu` is called "Application menu" that way. The elements available in lxqt-panel are called "plugin" technically. This applies e. g. to the source code where they reside in directories `./plugin-<plugin>` like `plugin-mainmenu`. In contrast to this they are called "widgets" by the configuration GUI so far. Also, a more descriptive term is used to refer to distinct plugins within the GUI. E. g. the aforementioned `plugin-mainmenu` is called "Application menu" that way.
Configuration dialogue "Add Plugins", see [below](https://github.com/pmattern/lxqt-panel/tree/readme#customizing), is listing all available plugins plus a short description and hence provides an overview of the available ones. Configuration dialogue "Add Plugins", see [below](https://github.com/lxde/lxqt-panel#customizing), is listing all available plugins plus a short description and hence provides an overview of the available ones.
Notes on some of the plugins, sorted by terms used within the GUI in alphabetical order, technical term in parenthesis: Notes on some of the plugins, sorted by terms used within the GUI in alphabetical order, technical term in parenthesis:
#### Date & time (plugin-clock) / World clock (plugin-worldclock) #### Date & time (plugin-clock) / World clock (plugin-worldclock)

20
debian/changelog vendored

@ -1,3 +1,23 @@
lxqt-panel (0.11.1-1) unstable; urgency=medium
* Cherry-picking upstream release 0.11.0 (Closes: #821382).
* Removed some build dependencies:
- cmake
- libqt5xdg-dev
- libqt5xdgiconloader-dev
- pkg-config
- qttools5-dev
- qttools5-dev-tools
* Bumped some build dependencies:
- liblxqt0-dev (>= 0.11.1)
- liblxqt-globalkeys0-dev (>= 0.11.1)
- liblxqt-globalkeys-ui0-dev (>= 0.11.1)
- libsysstat-qt5-0-dev (>= 0.3.3)
* Fixed VCS-Git, pointing to the right branch
* Bumped years in d/copyright
-- Alf Gaida <agaida@siduction.org> Mon, 02 Jan 2017 18:12:54 +0100
lxqt-panel (0.11.0-2) unstable; urgency=medium lxqt-panel (0.11.0-2) unstable; urgency=medium
* Cherry-picking upstream release 0.11.0. * Cherry-picking upstream release 0.11.0.

18
debian/control vendored

@ -6,25 +6,22 @@ Uploaders: Alf Gaida <agaida@siduction.org>,
Section: x11 Section: x11
Priority: optional Priority: optional
Build-Depends: debhelper (>= 10), Build-Depends: debhelper (>= 10),
cmake (>= 3.0.2),
libasound2-dev, libasound2-dev,
libdbusmenu-qt5-dev, libdbusmenu-qt5-dev,
libglib2.0-dev, libglib2.0-dev,
libicu-dev, libicu-dev,
libkf5windowsystem-dev, libkf5windowsystem-dev,
libkf5solid-dev, libkf5solid-dev,
liblxqt0-dev (>= 0.11.0), liblxqt0-dev (>= 0.11.1),
liblxqt-globalkeys0-dev (>= 0.11.0), liblxqt-globalkeys0-dev (>= 0.11.1),
liblxqt-globalkeys-ui0-dev (>= 0.11.0), liblxqt-globalkeys-ui0-dev (>= 0.11.1),
libmenu-cache-dev, libmenu-cache-dev,
libpulse-dev, libpulse-dev,
libqt5svg5-dev, libqt5svg5-dev,
libqt5x11extras5-dev, libqt5x11extras5-dev,
libqt5xdg-dev (>= 2.0.0),
libqt5xdgiconloader-dev (>= 2.0.0),
libsensors4-dev [!hurd-any], libsensors4-dev [!hurd-any],
libstatgrab-dev [linux-any], libstatgrab-dev [linux-any],
libsysstat-qt5-0-dev (>= 0.3.2), libsysstat-qt5-0-dev (>= 0.3.3),
libx11-dev, libx11-dev,
libxcomposite-dev, libxcomposite-dev,
libxcb-util0-dev, libxcb-util0-dev,
@ -33,13 +30,10 @@ Build-Depends: debhelper (>= 10),
libxdamage-dev, libxdamage-dev,
libxkbcommon-dev, libxkbcommon-dev,
libxkbcommon-x11-dev, libxkbcommon-x11-dev,
libxrender-dev, libxrender-dev
pkg-config,
qttools5-dev,
qttools5-dev-tools
Standards-Version: 3.9.8 Standards-Version: 3.9.8
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-lxqt/lxqt-panel.git/?h=debian/sid Vcs-Browser: https://anonscm.debian.org/cgit/pkg-lxqt/lxqt-panel.git/?h=debian/sid
Vcs-Git: https://anonscm.debian.org/git/pkg-lxqt/lxqt-panel.git Vcs-Git: https://anonscm.debian.org/git/pkg-lxqt/lxqt-panel.git -b debian/sid
Homepage: https://github.com/lxde/lxqt-panel Homepage: https://github.com/lxde/lxqt-panel
Package: lxqt-panel Package: lxqt-panel

4
debian/copyright vendored

@ -3,12 +3,12 @@ Upstream-Name: lxqt-panel
Source: https://github.com/lxde/lxqt-panel Source: https://github.com/lxde/lxqt-panel
Files: * Files: *
Copyright: 2012-2016 LXQt team Copyright: 2012-2017 LXQt team
2010-2012 Razor team 2010-2012 Razor team
License: LGPL-2.1+ License: LGPL-2.1+
Files: debian/* Files: debian/*
Copyright: 2014-2016 Alf Gaida <agaida@siduction.org> Copyright: 2014-2017 Alf Gaida <agaida@siduction.org>
2015 Andrew Lee (李健秋) <ajqlee@debian.org> 2015 Andrew Lee (李健秋) <ajqlee@debian.org>
License: LGPL-2.1+ License: LGPL-2.1+

8
debian/rules vendored

@ -20,8 +20,8 @@ endif
override_dh_auto_configure: override_dh_auto_configure:
dh_auto_configure --\ dh_auto_configure --\
-DPULL_TRANSLATIONS=OFF\ -DPULL_TRANSLATIONS=OFF \
-DUPDATE_TRANSLATIONS=OFF\ -DUPDATE_TRANSLATIONS=OFF \
-DDOM_PLUGIN=YES\ -DDOM_PLUGIN=YES \
-DCMAKE_BUILD_TYPE=RelWithDebInfo\ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$(NOT_LINUX) $(NOT_LINUX)

@ -76,6 +76,7 @@ ConfigPanelWidget::ConfigPanelWidget(LXQtPanel *panel, QWidget *parent) :
mOldHidable = mPanel->hidable(); mOldHidable = mPanel->hidable();
mOldAnimation = mPanel->animationTime(); mOldAnimation = mPanel->animationTime();
mOldShowDelay = mPanel->showDelay();
ui->spinBox_panelSize->setMinimum(PANEL_MINIMUM_SIZE); ui->spinBox_panelSize->setMinimum(PANEL_MINIMUM_SIZE);
ui->spinBox_panelSize->setMaximum(PANEL_MAXIMUM_SIZE); ui->spinBox_panelSize->setMaximum(PANEL_MAXIMUM_SIZE);
@ -101,6 +102,7 @@ ConfigPanelWidget::ConfigPanelWidget(LXQtPanel *panel, QWidget *parent) :
connect(ui->comboBox_position, SIGNAL(activated(int)), this, SLOT(positionChanged())); connect(ui->comboBox_position, SIGNAL(activated(int)), this, SLOT(positionChanged()));
connect(ui->checkBox_hidable, SIGNAL(toggled(bool)), this, SLOT(editChanged())); connect(ui->checkBox_hidable, SIGNAL(toggled(bool)), this, SLOT(editChanged()));
connect(ui->spinBox_animation, SIGNAL(valueChanged(int)), this, SLOT(editChanged())); connect(ui->spinBox_animation, SIGNAL(valueChanged(int)), this, SLOT(editChanged()));
connect(ui->spinBox_delay, SIGNAL(valueChanged(int)), this, SLOT(editChanged()));
connect(ui->checkBox_customFontColor, SIGNAL(toggled(bool)), this, SLOT(editChanged())); connect(ui->checkBox_customFontColor, SIGNAL(toggled(bool)), this, SLOT(editChanged()));
connect(ui->pushButton_customFontColor, SIGNAL(clicked(bool)), this, SLOT(pickFontColor())); connect(ui->pushButton_customFontColor, SIGNAL(clicked(bool)), this, SLOT(pickFontColor()));
@ -127,6 +129,7 @@ void ConfigPanelWidget::reset()
ui->checkBox_hidable->setChecked(mOldHidable); ui->checkBox_hidable->setChecked(mOldHidable);
ui->spinBox_animation->setValue(mOldAnimation); ui->spinBox_animation->setValue(mOldAnimation);
ui->spinBox_delay->setValue(mOldShowDelay);
fillComboBox_alignment(); fillComboBox_alignment();
ui->comboBox_alignment->setCurrentIndex(mOldAlignment + 1); ui->comboBox_alignment->setCurrentIndex(mOldAlignment + 1);
@ -261,6 +264,7 @@ void ConfigPanelWidget::editChanged()
mPanel->setPosition(mScreenNum, mPosition, true); mPanel->setPosition(mScreenNum, mPosition, true);
mPanel->setHidable(ui->checkBox_hidable->isChecked(), true); mPanel->setHidable(ui->checkBox_hidable->isChecked(), true);
mPanel->setAnimationTime(ui->spinBox_animation->value(), true); mPanel->setAnimationTime(ui->spinBox_animation->value(), true);
mPanel->setShowDelay(ui->spinBox_delay->value(), true);
mPanel->setFontColor(ui->checkBox_customFontColor->isChecked() ? mFontColor : QColor(), true); mPanel->setFontColor(ui->checkBox_customFontColor->isChecked() ? mFontColor : QColor(), true);
if (ui->checkBox_customBgColor->isChecked()) if (ui->checkBox_customBgColor->isChecked())

@ -90,6 +90,7 @@ private:
ILXQtPanel::Position mOldPosition; ILXQtPanel::Position mOldPosition;
bool mOldHidable; bool mOldHidable;
int mOldAnimation; int mOldAnimation;
int mOldShowDelay;
int mOldScreenNum; int mOldScreenNum;
QColor mOldFontColor; QColor mOldFontColor;
QColor mOldBackgroundColor; QColor mOldBackgroundColor;

@ -201,59 +201,7 @@
<property name="title"> <property name="title">
<string>Alignment &amp;&amp; position</string> <string>Alignment &amp;&amp; position</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QFormLayout" name="formLayout">
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_hidable">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Auto-hide</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QSpinBox" name="spinBox_animation">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Zero means no animation</string>
</property>
<property name="suffix">
<string> ms</string>
</property>
<property name="maximum">
<number>500</number>
</property>
<property name="singleStep">
<number>50</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_position">
<property name="text">
<string>Position:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_animation">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Zero means no animation</string>
</property>
<property name="text">
<string>Animation duration:</string>
</property>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_alignment"> <widget class="QLabel" name="label_alignment">
<property name="text"> <property name="text">
@ -261,20 +209,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="0" column="1">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>5</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1" colspan="3">
<widget class="QComboBox" name="comboBox_alignment"> <widget class="QComboBox" name="comboBox_alignment">
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>1</number>
@ -296,9 +231,99 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="2" column="1" colspan="3"> <item row="1" column="0">
<widget class="QLabel" name="label_position">
<property name="text">
<string>Position:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox_position"/> <widget class="QComboBox" name="comboBox_position"/>
</item> </item>
<item row="2" column="0" colspan="2">
<widget class="QGroupBox" name="checkBox_hidable">
<property name="enabled">
<bool>true</bool>
</property>
<property name="title">
<string>A&amp;uto-hide</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_animation">
<property name="toolTip">
<string>Zero means no animation</string>
</property>
<property name="text">
<string>Animation duration:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>102</width>
<height>5</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QSpinBox" name="spinBox_animation">
<property name="toolTip">
<string>Zero means no animation</string>
</property>
<property name="suffix">
<string> ms</string>
</property>
<property name="maximum">
<number>500</number>
</property>
<property name="singleStep">
<number>50</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_delay">
<property name="toolTip">
<string>Zero means no delay</string>
</property>
<property name="text">
<string>Show with delay:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSpinBox" name="spinBox_delay">
<property name="toolTip">
<string>Zero means no delay</string>
</property>
<property name="suffix">
<string> ms</string>
</property>
<property name="maximum">
<number>2000</number>
</property>
<property name="singleStep">
<number>50</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -636,37 +661,5 @@
</hint> </hint>
</hints> </hints>
</connection> </connection>
<connection>
<sender>checkBox_hidable</sender>
<signal>toggled(bool)</signal>
<receiver>label_animation</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>59</x>
<y>198</y>
</hint>
<hint type="destinationlabel">
<x>211</x>
<y>198</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_hidable</sender>
<signal>toggled(bool)</signal>
<receiver>spinBox_animation</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>59</x>
<y>198</y>
</hint>
<hint type="destinationlabel">
<x>319</x>
<y>198</y>
</hint>
</hints>
</connection>
</connections> </connections>
</ui> </ui>

@ -46,6 +46,7 @@
#include <QDesktopWidget> #include <QDesktopWidget>
#include <QMenu> #include <QMenu>
#include <QMessageBox> #include <QMessageBox>
#include <QDropEvent>
#include <XdgIcon> #include <XdgIcon>
#include <XdgDirs> #include <XdgDirs>
@ -74,6 +75,7 @@
#define CFG_KEY_PLUGINS "plugins" #define CFG_KEY_PLUGINS "plugins"
#define CFG_KEY_HIDABLE "hidable" #define CFG_KEY_HIDABLE "hidable"
#define CFG_KEY_ANIMATION "animation-duration" #define CFG_KEY_ANIMATION "animation-duration"
#define CFG_KEY_SHOW_DELAY "show-delay"
#define CFG_KEY_LOCKPANEL "lockPanel" #define CFG_KEY_LOCKPANEL "lockPanel"
/************************************************ /************************************************
@ -189,6 +191,10 @@ LXQtPanel::LXQtPanel(const QString &configGroup, LXQt::Settings *settings, QWidg
mHideTimer.setInterval(PANEL_HIDE_DELAY); mHideTimer.setInterval(PANEL_HIDE_DELAY);
connect(&mHideTimer, SIGNAL(timeout()), this, SLOT(hidePanelWork())); connect(&mHideTimer, SIGNAL(timeout()), this, SLOT(hidePanelWork()));
mShowDelayTimer.setSingleShot(true);
mShowDelayTimer.setInterval(PANEL_SHOW_DELAY);
connect(&mShowDelayTimer, &QTimer::timeout, [this] { showPanel(mAnimationTime > 0); });
connect(QApplication::desktop(), &QDesktopWidget::resized, this, &LXQtPanel::ensureVisible); connect(QApplication::desktop(), &QDesktopWidget::resized, this, &LXQtPanel::ensureVisible);
connect(QApplication::desktop(), &QDesktopWidget::screenCountChanged, this, &LXQtPanel::ensureVisible); connect(QApplication::desktop(), &QDesktopWidget::screenCountChanged, this, &LXQtPanel::ensureVisible);
@ -234,6 +240,7 @@ void LXQtPanel::readSettings()
mHidden = mHidable; mHidden = mHidable;
mAnimationTime = mSettings->value(CFG_KEY_ANIMATION, mAnimationTime).toInt(); mAnimationTime = mSettings->value(CFG_KEY_ANIMATION, mAnimationTime).toInt();
mShowDelayTimer.setInterval(mSettings->value(CFG_KEY_SHOW_DELAY, mShowDelayTimer.interval()).toInt());
// By default we are using size & count from theme. // By default we are using size & count from theme.
setPanelSize(mSettings->value(CFG_KEY_PANELSIZE, PANEL_DEFAULT_SIZE).toInt(), false); setPanelSize(mSettings->value(CFG_KEY_PANELSIZE, PANEL_DEFAULT_SIZE).toInt(), false);
@ -306,6 +313,7 @@ void LXQtPanel::saveSettings(bool later)
mSettings->setValue(CFG_KEY_HIDABLE, mHidable); mSettings->setValue(CFG_KEY_HIDABLE, mHidable);
mSettings->setValue(CFG_KEY_ANIMATION, mAnimationTime); mSettings->setValue(CFG_KEY_ANIMATION, mAnimationTime);
mSettings->setValue(CFG_KEY_SHOW_DELAY, mShowDelayTimer.interval());
mSettings->setValue(CFG_KEY_LOCKPANEL, mLockPanel); mSettings->setValue(CFG_KEY_LOCKPANEL, mLockPanel);
@ -984,14 +992,16 @@ bool LXQtPanel::event(QEvent *event)
break; break;
} }
case QEvent::DragEnter: case QEvent::DragEnter:
event->ignore(); dynamic_cast<QDropEvent *>(event)->setDropAction(Qt::IgnoreAction);
event->accept();
//no break intentionally //no break intentionally
case QEvent::Enter: case QEvent::Enter:
showPanel(mAnimationTime > 0); mShowDelayTimer.start();
break; break;
case QEvent::Leave: case QEvent::Leave:
case QEvent::DragLeave: case QEvent::DragLeave:
mShowDelayTimer.stop();
hidePanel(); hidePanel();
break; break;
@ -1286,6 +1296,17 @@ void LXQtPanel::setAnimationTime(int animationTime, bool save)
saveSettings(true); saveSettings(true);
} }
void LXQtPanel::setShowDelay(int showDelay, bool save)
{
if (mShowDelayTimer.interval() == showDelay)
return;
mShowDelayTimer.setInterval(showDelay);
if (save)
saveSettings(true);
}
bool LXQtPanel::isPluginSingletonAndRunnig(QString const & pluginId) const bool LXQtPanel::isPluginSingletonAndRunnig(QString const & pluginId) const
{ {
Plugin const * plugin = mPlugins->pluginByID(pluginId); Plugin const * plugin = mPlugins->pluginByID(pluginId);

@ -220,6 +220,7 @@ public:
int opacity() const { return mOpacity; } int opacity() const { return mOpacity; }
bool hidable() const { return mHidable; } bool hidable() const { return mHidable; }
int animationTime() const { return mAnimationTime; } int animationTime() const { return mAnimationTime; }
int showDelay() const { return mShowDelayTimer.interval(); }
/*! /*!
* \brief Checks if a given Plugin is running and has the * \brief Checks if a given Plugin is running and has the
@ -295,6 +296,7 @@ public slots:
void setOpacity(int opacity, bool save); //!< \sa setPanelSize() void setOpacity(int opacity, bool save); //!< \sa setPanelSize()
void setHidable(bool hidable, bool save); //!< \sa setPanelSize() void setHidable(bool hidable, bool save); //!< \sa setPanelSize()
void setAnimationTime(int animationTime, bool save); //!< \sa setPanelSize() void setAnimationTime(int animationTime, bool save); //!< \sa setPanelSize()
void setShowDelay(int showDelay, bool save); //!< \sa setPanelSize()
/** /**
* @brief Saves the current configuration, i.e. writes the current * @brief Saves the current configuration, i.e. writes the current
@ -619,6 +621,12 @@ private:
* \sa mHidden, mHideTimer, showPanel(), hidePanel(), hidePanelWork() * \sa mHidden, mHideTimer, showPanel(), hidePanel(), hidePanelWork()
*/ */
int mAnimationTime; int mAnimationTime;
/**
* @brief The timer used for showing an auto-hiding panel wih delay.
*
* \sa showPanel()
*/
QTimer mShowDelayTimer;
QColor mFontColor; //!< Font color that is used in the style sheet. QColor mFontColor; //!< Font color that is used in the style sheet.
QColor mBackgroundColor; //!< Background color that is used in the style sheet. QColor mBackgroundColor; //!< Background color that is used in the style sheet.

@ -41,5 +41,7 @@
#define PANEL_HIDE_DELAY 500 #define PANEL_HIDE_DELAY 500
#define PANEL_HIDE_FIRST_TIME (5000 - PANEL_HIDE_DELAY) #define PANEL_HIDE_FIRST_TIME (5000 - PANEL_HIDE_DELAY)
#define PANEL_SHOW_DELAY 0
#define SETTINGS_SAVE_DELAY 3000 #define SETTINGS_SAVE_DELAY 3000
#endif // LXQTPANELLIMITS_H #endif // LXQTPANELLIMITS_H

@ -259,7 +259,7 @@ bool Plugin::loadLib(ILXQtPanelPluginLibrary const * pluginLib)
mPlugin = pluginLib->instance(startupInfo); mPlugin = pluginLib->instance(startupInfo);
if (!mPlugin) if (!mPlugin)
{ {
qWarning() << QString("Can't load plugin \"%1\". Plugin can't build ILXQtPanelPlugin.").arg(mPluginLoader->fileName()); qWarning() << QString("Can't load plugin \"%1\". Plugin can't build ILXQtPanelPlugin.").arg(mDesktopFile.id());
return false; return false;
} }

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Date & time Name=Date & time
Comment=Displays the current time. Comes with a calendar. Comment=Displays the current time. Comes with a calendar.
Icon=preferences-system-time
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Ur og kalender Name[da]=Dato og klokkeslæt
Name[da]=Ur Comment[da]=Viser den aktuelle tid. Der følger en kalender med.

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Date & time
Comment=Displays the current time. Comes with a calendar.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Ur og kalender
Name[da_DK]=Ur

@ -0,0 +1,3 @@
# Translations
Comment[fr]=Horloge et calendrier
Name[fr]=Horloge

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Date & time
Comment=Displays the current time. Comes with a calendar.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Horloge et calendrier
Name[fr_FR]=Horloge

@ -3,8 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Color picker Name=Color picker
Comment=Get the color under the cursor. For web developers. Comment=Get the color under the cursor. For web developers.
Icon=color-picker
#TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Find farven under musemarkøren. For webudviklere.
Name[da]=Farvevælger Name[da]=Farvevælger
Comment[da]=Få farven under markøren. Til webudviklere.

@ -1,10 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Color picker
Comment=Get the color under the cursor. For web developers.
# Translations
Comment[da_DK]=Find farven under musemarkøren. For webudviklere.
Name[da_DK]=Farvevælger

@ -0,0 +1,2 @@
Name[fr]=Sélecteur de couleur
Comment[fr]=Sélectionne la couleur existant sous le curseur.

@ -1,13 +1,12 @@
[Desktop Entry] [Desktop Entry]
Type=Service Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Cpu monitor Name=Cpu monitor
Comment=Displays the current CPU load. Comment=Displays the current CPU load.
Icon=cpu
#TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=CPU Overvågning Name[da]=CPU-overvågning
Name[da]=CPU-belastning Comment[da]=Viser det aktuelle CPU-forbrug.

@ -1,14 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Cpu monitor
Comment=Displays the current CPU load.
# Translations
Comment[da_DK]=CPU Overvågning
Name[da_DK]=CPU Belastning

@ -0,0 +1,2 @@
Name[fr]=Charge du processeur
Comment[fr]=Affichage de la charge du processeur

@ -51,6 +51,12 @@ void DesktopSwitchButton::update(int index, LabelType labelType, const QString &
setText(title); setText(title);
break; break;
// A blank space was used in NONE Label Type as it uses less space
// for each desktop button at the panel
case LABEL_TYPE_NONE:
setText(QStringLiteral(" "));
break;
default: // LABEL_TYPE_NUMBER default: // LABEL_TYPE_NUMBER
setText(QString::number(index + 1)); setText(QString::number(index + 1));
} }

@ -44,7 +44,8 @@ class DesktopSwitchButton : public QToolButton
public: public:
enum LabelType { // Must match with combobox indexes enum LabelType { // Must match with combobox indexes
LABEL_TYPE_NUMBER = 0, LABEL_TYPE_NUMBER = 0,
LABEL_TYPE_NAME = 1 LABEL_TYPE_NAME = 1,
LABEL_TYPE_NONE = 2
}; };
DesktopSwitchButton(QWidget * parent, int index, LabelType labelType, const QString &title=QString()); DesktopSwitchButton(QWidget * parent, int index, LabelType labelType, const QString &title=QString());

@ -59,6 +59,11 @@
<string>Names</string> <string>Names</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>None</string>
</property>
</item>
</widget> </widget>
</item> </item>
</layout> </layout>

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Desktop switcher Name=Desktop switcher
Comment=Allows easy switching between virtual desktops. Comment=Allows easy switching between virtual desktops.
Icon=user-desktop
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Tillader skift imellem virtuelle skriveborde
Name[da]=Skrivebordsskifter Name[da]=Skrivebordsskifter
Comment[da]=Giver mulighed for nemt at skifte imellem virtuelle skriveborde.

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Desktop switcher
Comment=Allows easy switching between virtual desktops.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Skift imellem virtuelle skriveborde
Name[da_DK]=Skrivebords Skifter

@ -0,0 +1,3 @@
# Translations
Comment[fr]=permettre un basculement aisé entre les bureaux virtuels
Name[fr]=Changeur de bureau

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Desktop switcher
Comment=Allows easy switching between virtual desktops.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Autoriser à basculer entre les bureaux virtuels
Name[fr_FR]=Changeur de bureau

@ -0,0 +1,12 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Directory Menu
Comment=Displays a menu showing the contents of a directory
Icon=folder
#TRANSLATIONS_DIR=../translations
# Translations
Name[da]=Mappemenu
Comment[da]=Viser en menu med indholdet af en mappe

@ -0,0 +1,2 @@
Name[fr]=Menu de répertoire
Comment[fr]=Affiche un menu avec le contenu d'un répertoire

@ -0,0 +1,3 @@
[Desktop Entry]
Name[pt]=Menu de diretórios
Comment[pt]=Mostra um menu com o conteúdo do diretório

@ -0,0 +1,12 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Panel DOM tree
Comment=Show a DOM tree of the LXQt panel.
Icon=view-web-browser-dom-tree
#TRANSLATIONS_DIR=../translations
# Translations
Name[da]=Panel DOM-træ
Comment[da]=Vis et DOM-træ af LXQt-panelet.

@ -0,0 +1,2 @@
Name[fr]=Arborescence DOM dans le tableau de bord
Comment[fr]=Affiche une arborescence DOM dans le tableau de bord.

@ -29,38 +29,27 @@ set(UIS
set(LIBRARIES set(LIBRARIES
) )
find_package(PkgConfig REQUIRED) find_package(XCB REQUIRED COMPONENTS xkbcommon-x11 xkbcommon xcb xcb-xkb)
pkg_check_modules(XKB_COMMON REQUIRED xkbcommon) find_package(Qt5 REQUIRED COMPONENTS X11Extras Xml)
pkg_check_modules(XKB_COMMON_X11 QUIET xkbcommon-x11)
if(XKB_COMMON_X11_FOUND) include_directories(${XCB_INCLUDE_DIRS})
message(STATUS "XkbCommon X11 was found")
include_directories(${XKB_COMMON_X11_INCLUDE_DIRS})
find_package(Qt5 COMPONENTS X11Extras Xml)
pkg_check_modules(XCB xcb)
pkg_check_modules(XCB_XKB xcb-xkb)
set(HEADERS set(HEADERS
${HEADERS} ${HEADERS}
src/x11/kbdlayout.h src/x11/kbdlayout.h
) )
set(SOURCES set(SOURCES
${SOURCES} ${SOURCES}
src/x11/kbdlayout.cpp src/x11/kbdlayout.cpp
) )
set(LIBRARIES set(LIBRARIES
${LIBRARIES} ${LIBRARIES}
${XKB_COMMON_X11_LIBRARIES} ${XCB_LIBRARIES}
${XCB_LIBRARIES} Qt5::Xml
${XCB_XKB_LIBRARIES} )
Qt5::Xml
)
add_definitions(-DX11_ENABLED) add_definitions(-DX11_ENABLED)
else()
message(FATAL_ERROR "No XkbCommon backend(X11) found!")
endif()
BUILD_LXQT_PLUGIN(${PLUGIN}) BUILD_LXQT_PLUGIN(${PLUGIN})

@ -24,7 +24,9 @@
* *
* END_COMMON_COPYRIGHT_HEADER */ * END_COMMON_COPYRIGHT_HEADER */
#include <QDebug>
#include <QObject> #include <QObject>
#include <QX11Info>
#include "src/kbdstate.h" #include "src/kbdstate.h"
#include "../panel/ilxqtpanelplugin.h" #include "../panel/ilxqtpanelplugin.h"
@ -38,7 +40,14 @@ public:
{} {}
virtual ILXQtPanelPlugin *instance(const ILXQtPanelPluginStartupInfo &startupInfo) const virtual ILXQtPanelPlugin *instance(const ILXQtPanelPluginStartupInfo &startupInfo) const
{ return new KbdState(startupInfo); } {
// Currently only X11 supported
if (!QX11Info::connection()) {
qWarning() << "Currently kbindicator plugin supports X11 only. Skipping.";
return nullptr;
}
return new KbdState(startupInfo);
}
}; };
#include "kbindicator-plugin.moc" #include "kbindicator-plugin.moc"

@ -0,0 +1,12 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Keyboard state indicator
Comment=Keyboard state indicator and switcher plugin.
Icon=input-keyboard
#TRANSLATIONS_DIR=../translations
# Translations
Name[da]=Tastaturtilstand-indikator
Comment[da]=Tastaturtilstand-indikator og -skifter-plugin.

@ -0,0 +1,2 @@
Name[fr]=Indicateurs de l'état du clavier
Comment[fr]=Greffon pour l'affichage de l'état du clavier et pour le basculement entre les dispositions.

@ -18,28 +18,28 @@ set(UIS
lxqtmainmenuconfiguration.ui lxqtmainmenuconfiguration.ui
) )
# optionally use libmenu-cache to generate the application menu # optionally use libmenu-cache to generate the application menu
find_package(PkgConfig)
if(NOT WITHOUT_MENU_CACHE) if(NOT WITHOUT_MENU_CACHE)
pkg_check_modules(MENU_CACHE find_package(MenuCache "0.3.3")
libmenu-cache>=0.3.3
)
endif() endif()
if(MENU_CACHE_FOUND) set(LIBRARIES
lxqt
lxqt-globalkeys
lxqt-globalkeys-ui
)
if(MENUCACHE_FOUND)
list(APPEND SOURCES xdgcachedmenu.cpp) list(APPEND SOURCES xdgcachedmenu.cpp)
list(APPEND MOCS xdgcachedmenu.h) list(APPEND MOCS xdgcachedmenu.h)
include_directories(${MENU_CACHE_INCLUDE_DIRS}) include_directories(${MENUCACHE_INCLUDE_DIRS})
list(APPEND LIBRARIES ${MENUCACHE_LIBRARIES})
add_definitions(-DHAVE_MENU_CACHE=1) add_definitions(-DHAVE_MENU_CACHE=1)
endif() endif()
set(LIBRARIES
lxqt
lxqt-globalkeys
lxqt-globalkeys-ui
${MENU_CACHE_LIBRARIES}
)
set(QT_USE_QTXML 1) set(QT_USE_QTXML 1)
set(QT_USE_QTDBUS 1) set(QT_USE_QTDBUS 1)

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Application menu Name=Application menu
Comment=A menu of all your applications. Comment=A menu of all your applications.
Icon=start-here-lxqt
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Menubaseret programstarter
Name[da]=Programmenu Name[da]=Programmenu
Comment[da]=En menu med alle dine programmer.

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Application menu
Comment=A menu of all your applications.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Menubaseret programstarter
Name[da_DK]=Program menu

@ -0,0 +1,3 @@
# Translations
Comment[fr]=Lanceur d'application sous forme de menu
Name[fr]=Menu d'application

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Application menu
Comment=A menu of all your applications.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Lanceur d'application sous forme de menu
Name[fr_FR]=Menu d'application

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Removable media Name=Removable media
Comment=Easy mounting and unmounting of USB and optical drives. Comment=Easy mounting and unmounting of USB and optical drives.
Icon=drive-removable-media
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Håndtering af flytbare enheder og medier (USB, CD, DVD, ...) Name[da]=Flytbare medier
Name[da]=Flytbare enheder Comment[da]=Nem montering og afmontering af USB og optiske drev.

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Removable media
Comment=Easy mounting and unmounting of USB and optical drives.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Håndtering af flytbare enheder (USB, CD, DVD, ...)
Name[da_DK]=Flytbare enheder

@ -0,0 +1,3 @@
# Translations
Comment[fr]=Gestionnaire de médias amovibles (USB, CD, DVD, ...)
Name[fr]=Média amovible

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Removable media
Comment=Easy mounting and unmounting of USB and optical drives.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Gestionnaire de médias amovibles (USB, CD, DVD, ...)
Name[fr_FR]=Média amovible

@ -1,13 +1,13 @@
[Desktop Entry] [Desktop Entry]
Type=Service Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Network monitor Name=Network monitor
Comment=Displays network status and activity. Comment=Displays network status and activity.
#Icon=network-transmit-receive
Icon=network-wired
#TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Netværksovervågning
Name[da]=Netværksovervågning Name[da]=Netværksovervågning
Comment[da]=Netværksovervågning

@ -1,3 +1,3 @@
# Translations # Translations
Name[fr_FR]=Moniteur Réseau Name[fr]=Moniteur Réseau
Comment[fr_FR]=Affiche le statut et l'activité du réseau Comment[fr]=Affiche le statut et l'activité du réseau

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Quick launch Name=Quick launch
Comment=Easy access to your favourite applications. Comment=Easy access to your favourite applications.
Icon=quickopen
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Start dine favoritprogrammer Name[da]=Hurtigstart
Name[da]=Quicklaunch Comment[da]=Nem adgang til dine favoritprogrammer.

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Quick launch
Comment=Easy access to your favourite applications.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Start dine ynglingsprogrammer
Name[da_DK]=Hurtigstart

@ -0,0 +1,3 @@
# Translations
Comment[fr]=Lancer votre application favorite
Name[fr]=Lancement rapide

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Quick launch
Comment=Easy access to your favourite applications.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Lancer votre application favorite
Name[fr_FR]=Lancement rapide

@ -5,6 +5,8 @@ Name=Sensors
Comment=View readings from hardware sensors. Comment=View readings from hardware sensors.
#TRANSLATIONS_DIR=../translations
# Translations # Translations
Name[da]=Sensorer Name[da]=Sensorer
Comment[da]=Vis målinger fra hardware-sensorer (I øjeblikket lm_sensors) Comment[da]=Vis målinger fra hardware-sensorer

@ -1,10 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Sensors
Comment=View readings from hardware sensors.
# Translations
Name[da_DK]=Sensorer
Comment[da_DK]=Vis målinger fra hardware-sensorer (I øjeblikket lm_sensors)

@ -0,0 +1,3 @@
# Translations
Name[fr]=Capteurs
Comment[fr]=Voir les mesures effectuées par les capteurs

@ -1,10 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Sensors
Comment=View readings from hardware sensors.
# Translations
Name[fr_FR]=Capteurs
Comment[fr_FR]=Voir les mesures effectuées par les capteurs (actuellement lm_sensors)

@ -12,7 +12,6 @@ set(LIBRARIES
${LIBRARIES} ${LIBRARIES}
lxqt-globalkeys lxqt-globalkeys
Qt5Xdg Qt5Xdg
${XCB_LIBRARIES}
) )
BUILD_LXQT_PLUGIN(${PLUGIN}) BUILD_LXQT_PLUGIN(${PLUGIN})

@ -35,10 +35,6 @@
#include "showdesktop.h" #include "showdesktop.h"
#include "../panel/pluginsettings.h" #include "../panel/pluginsettings.h"
// Still needed for lxde/lxqt#338
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#define DEFAULT_SHORTCUT "Control+Alt+D" #define DEFAULT_SHORTCUT "Control+Alt+D"
ShowDesktop::ShowDesktop(const ILXQtPanelPluginStartupInfo &startupInfo) : ShowDesktop::ShowDesktop(const ILXQtPanelPluginStartupInfo &startupInfo) :

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Show desktop Name=Show desktop
Comment=Minimize all windows and show the desktop Comment=Minimize all windows and show the desktop
Icon=user-desktop
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Minimerer alle programmer og viser skrivebord Name[da]=Vis skrivebord
Name[da]=Vis Skrivebord Comment[da]=Minimer alle vinduer og vis skrivebordet

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Show desktop
Comment=Minimize all windows and show the desktop
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Minimer alle vinduer og vis skrivebord
Name[da_DK]=Vis Skrivebord

@ -0,0 +1,3 @@
# Translations
Comment[fr]=Minimiser toutes les fenêtres et montrer le bureau
Name[fr]=Montrer le bureau

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Show desktop
Comment=Minimize all windows and show the desktop
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Minimiser toutes les fenêtres et montrer le bureau
Name[fr_FR]=Montrer le bureau

@ -0,0 +1,12 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Spacer
Comment=Space between widgets
Icon=bookmark-new
#TRANSLATIONS_DIR=../translations
# Translations
Name[da]=Mellemrum
Comment[da]=Mellemrum imellem widgets

@ -0,0 +1,2 @@
Name[fr]=Espaceur
Comment[fr]=Fixe un espacement entre les widgets

@ -0,0 +1,3 @@
[Desktop Entry]
Name[pt]=Espaçamento
Comment[pt]=Espaço entre os widgets

@ -0,0 +1,10 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Status Notifier Plugin
Comment=Status Notifier Plugin
Icon=go-bottom
# Translations
Name[da]=Statusnotifikator-plugin
Comment[da]=Statusnotifikator-plugin

@ -0,0 +1,2 @@
Name[fr]=Information du statut
Comment[fr]=Greffon d'information du statut

@ -0,0 +1,3 @@
[Desktop Entry]
Name[pt]=Plugin Status Notifier
Comment[pt]=Um plugin para notificar sobre o estado

@ -0,0 +1,12 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=System Statistics
Comment=System Statistics plugin.
Icon=utilities-system-monitor
#TRANSLATIONS_DIR=../translations
# Translations
Name[da]=Systemstatistik
Comment[da]=Systemstatistik-plugin.

@ -0,0 +1,2 @@
Name[fr]=Statistiques du système
Comment[fr]=Greffon d'affichage des statistiques du système

@ -64,6 +64,7 @@ LXQtTaskBar::LXQtTaskBar(ILXQtPanelPlugin *plugin, QWidget *parent) :
mAutoRotate(true), mAutoRotate(true),
mShowGroupOnHover(true), mShowGroupOnHover(true),
mIconByClass(false), mIconByClass(false),
mCycleOnWheelScroll(true),
mPlugin(plugin), mPlugin(plugin),
mPlaceHolder(new QWidget(this)), mPlaceHolder(new QWidget(this)),
mStyle(new LeftAlignedTextStyle()) mStyle(new LeftAlignedTextStyle())
@ -456,6 +457,7 @@ void LXQtTaskBar::settingsChanged()
mGroupingEnabled = mPlugin->settings()->value("groupingEnabled",true).toBool(); mGroupingEnabled = mPlugin->settings()->value("groupingEnabled",true).toBool();
mShowGroupOnHover = mPlugin->settings()->value("showGroupOnHover",true).toBool(); mShowGroupOnHover = mPlugin->settings()->value("showGroupOnHover",true).toBool();
mIconByClass = mPlugin->settings()->value("iconByClass", false).toBool(); mIconByClass = mPlugin->settings()->value("iconByClass", false).toBool();
mCycleOnWheelScroll = mPlugin->settings()->value("cycleOnWheelScroll", true).toBool();
// Delete all groups if grouping feature toggled and start over // Delete all groups if grouping feature toggled and start over
if (groupingEnabledOld != mGroupingEnabled) if (groupingEnabledOld != mGroupingEnabled)
@ -546,10 +548,13 @@ void LXQtTaskBar::realign()
************************************************/ ************************************************/
void LXQtTaskBar::wheelEvent(QWheelEvent* event) void LXQtTaskBar::wheelEvent(QWheelEvent* event)
{ {
if (!mCycleOnWheelScroll)
return QFrame::wheelEvent(event);
static int threshold = 0; static int threshold = 0;
threshold += abs(event->delta()); threshold += abs(event->delta());
if (threshold < 300) if (threshold < 300)
return; return QFrame::wheelEvent(event);
else else
threshold = 0; threshold = 0;
@ -572,7 +577,7 @@ void LXQtTaskBar::wheelEvent(QWheelEvent* event)
} }
if (list.isEmpty()) if (list.isEmpty())
return; return QFrame::wheelEvent(event);
if (!group) if (!group)
group = list.at(0); group = list.at(0);
@ -588,6 +593,7 @@ void LXQtTaskBar::wheelEvent(QWheelEvent* event)
int idx = (list.indexOf(group) + delta + list.count()) % list.count(); int idx = (list.indexOf(group) + delta + list.count()) % list.count();
group = list.at(idx); group = list.at(idx);
} }
QFrame::wheelEvent(event);
} }
/************************************************ /************************************************

@ -129,6 +129,7 @@ private:
bool mGroupingEnabled; bool mGroupingEnabled;
bool mShowGroupOnHover; bool mShowGroupOnHover;
bool mIconByClass; bool mIconByClass;
bool mCycleOnWheelScroll; //!< flag for processing the wheelEvent
bool acceptWindow(WId window) const; bool acceptWindow(WId window) const;
void setButtonStyle(Qt::ToolButtonStyle buttonStyle); void setButtonStyle(Qt::ToolButtonStyle buttonStyle);

@ -70,6 +70,7 @@ LXQtTaskbarConfiguration::LXQtTaskbarConfiguration(PluginSettings *settings, QWi
connect(ui->groupingGB, SIGNAL(clicked()), this, SLOT(saveSettings())); connect(ui->groupingGB, SIGNAL(clicked()), this, SLOT(saveSettings()));
connect(ui->showGroupOnHoverCB, SIGNAL(clicked()), this, SLOT(saveSettings())); connect(ui->showGroupOnHoverCB, SIGNAL(clicked()), this, SLOT(saveSettings()));
connect(ui->iconByClassCB, &QCheckBox::clicked, this, &LXQtTaskbarConfiguration::saveSettings); connect(ui->iconByClassCB, &QCheckBox::clicked, this, &LXQtTaskbarConfiguration::saveSettings);
connect(ui->cycleOnWheelScroll, &QCheckBox::clicked, this, &LXQtTaskbarConfiguration::saveSettings);
} }
LXQtTaskbarConfiguration::~LXQtTaskbarConfiguration() LXQtTaskbarConfiguration::~LXQtTaskbarConfiguration()
@ -95,6 +96,7 @@ void LXQtTaskbarConfiguration::loadSettings()
ui->groupingGB->setChecked(settings().value("groupingEnabled",true).toBool()); ui->groupingGB->setChecked(settings().value("groupingEnabled",true).toBool());
ui->showGroupOnHoverCB->setChecked(settings().value("showGroupOnHover",true).toBool()); ui->showGroupOnHoverCB->setChecked(settings().value("showGroupOnHover",true).toBool());
ui->iconByClassCB->setChecked(settings().value("iconByClass", false).toBool()); ui->iconByClassCB->setChecked(settings().value("iconByClass", false).toBool());
ui->cycleOnWheelScroll->setChecked(settings().value("cycleOnWheelScroll", true).toBool());
} }
void LXQtTaskbarConfiguration::saveSettings() void LXQtTaskbarConfiguration::saveSettings()
@ -112,4 +114,5 @@ void LXQtTaskbarConfiguration::saveSettings()
settings().setValue("groupingEnabled",ui->groupingGB->isChecked()); settings().setValue("groupingEnabled",ui->groupingGB->isChecked());
settings().setValue("showGroupOnHover",ui->showGroupOnHoverCB->isChecked()); settings().setValue("showGroupOnHover",ui->showGroupOnHoverCB->isChecked());
settings().setValue("iconByClass",ui->iconByClassCB->isChecked()); settings().setValue("iconByClass",ui->iconByClassCB->isChecked());
settings().setValue("cycleOnWheelScroll",ui->cycleOnWheelScroll->isChecked());
} }

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>401</width> <width>401</width>
<height>484</height> <height>512</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -22,10 +22,19 @@
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<property name="margin"> <property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
<property name="spacing"> <property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
@ -68,6 +77,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="cycleOnWheelScroll">
<property name="text">
<string>Cycle windows on wheel scrolling</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -131,7 +147,7 @@
<number>1</number> <number>1</number>
</property> </property>
<property name="maximum"> <property name="maximum">
<number>500</number> <number>2147483647</number>
</property> </property>
</widget> </widget>
</item> </item>

@ -111,7 +111,7 @@ LXQtTaskButton * LXQtTaskGroup::addWindow(WId id)
return mButtonHash.value(id); return mButtonHash.value(id);
LXQtTaskButton *btn = new LXQtTaskButton(id, parentTaskBar(), mPopup); LXQtTaskButton *btn = new LXQtTaskButton(id, parentTaskBar(), mPopup);
btn->setToolButtonStyle(toolButtonStyle()); btn->setToolButtonStyle(popupButtonStyle());
if (btn->isApplicationActive()) if (btn->isApplicationActive())
{ {
@ -245,6 +245,17 @@ void LXQtTaskGroup::onChildButtonClicked()
setPopupVisible(false, true); setPopupVisible(false, true);
} }
/************************************************
************************************************/
Qt::ToolButtonStyle LXQtTaskGroup::popupButtonStyle() const
{
// do not set icons-only style in the buttons in the group,
// as they'll be indistinguishable
const Qt::ToolButtonStyle style = toolButtonStyle();
return style == Qt::ToolButtonIconOnly ? Qt::ToolButtonTextBesideIcon : style;
}
/************************************************ /************************************************
************************************************/ ************************************************/
@ -252,11 +263,7 @@ void LXQtTaskGroup::setToolButtonsStyle(Qt::ToolButtonStyle style)
{ {
setToolButtonStyle(style); setToolButtonStyle(style);
// do not set icons-only style in the buttons in the group, const Qt::ToolButtonStyle styleInPopup = popupButtonStyle();
// as they'll be indistinguishable
Qt::ToolButtonStyle styleInPopup = style;
if (style == Qt::ToolButtonIconOnly)
styleInPopup = Qt::ToolButtonTextBesideIcon;
for (auto & button : mButtonHash) for (auto & button : mButtonHash)
{ {
button->setToolButtonStyle(styleInPopup); button->setToolButtonStyle(styleInPopup);

@ -66,6 +66,7 @@ public:
bool onWindowChanged(WId window, NET::Properties prop, NET::Properties2 prop2); bool onWindowChanged(WId window, NET::Properties prop, NET::Properties2 prop2);
void setAutoRotation(bool value, ILXQtPanel::Position position); void setAutoRotation(bool value, ILXQtPanel::Position position);
Qt::ToolButtonStyle popupButtonStyle() const;
void setToolButtonsStyle(Qt::ToolButtonStyle style); void setToolButtonsStyle(Qt::ToolButtonStyle style);
void setPopupVisible(bool visible = true, bool fast = false); void setPopupVisible(bool visible = true, bool fast = false);

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Task manager Name=Task manager
Comment=Switch between running applications Comment=Switch between running applications
Icon=window-duplicate
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Skifter imellem kørende programmer Name[da]=Opgavehåndtering
Name[da]=Programadministrator Comment[da]=Skift imellem kørende programmer

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Task manager
Comment=Switch between running applications
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Skift imellem kørende programmer
Name[da_DK]=Jobliste

@ -0,0 +1,3 @@
# Translations
Comment[fr]=Basculer entre des applications actives
Name[fr]=Gestionnaire des tâches

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Task manager
Comment=Switch between running applications
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Basculer entre des applications actives
Name[fr_FR]=Gestionnaire des tâches

@ -2,10 +2,8 @@ set(PLUGIN "tray")
include(CheckLibraryExists) include(CheckLibraryExists)
find_package(XCB REQUIRED COMPONENTS xcb xcb-util xcb-damage)
find_package(PkgConfig) find_package(PkgConfig)
pkg_check_modules(XCB REQUIRED xcb)
pkg_check_modules(XCB_UTIL REQUIRED xcb-util)
pkg_check_modules(XCB_DAMAGE REQUIRED xcb-damage)
find_package(X11 REQUIRED) find_package(X11 REQUIRED)
pkg_check_modules(XCOMPOSITE REQUIRED xcomposite) pkg_check_modules(XCOMPOSITE REQUIRED xcomposite)
@ -32,7 +30,6 @@ set(LIBRARIES
${XDAMAGE_LIBRARIES} ${XDAMAGE_LIBRARIES}
${XRENDER_LIBRARIES} ${XRENDER_LIBRARIES}
${XCB_LIBRARIES} ${XCB_LIBRARIES}
${XCB_DAMAGE_LIBRARIES}
) )
BUILD_LXQT_PLUGIN(${PLUGIN}) BUILD_LXQT_PLUGIN(${PLUGIN})

@ -30,7 +30,9 @@
#define LXQTTRAYPLUGIN_H #define LXQTTRAYPLUGIN_H
#include "../panel/ilxqtpanelplugin.h" #include "../panel/ilxqtpanelplugin.h"
#include <QDebug>
#include <QObject> #include <QObject>
#include <QX11Info>
class LXQtTray; class LXQtTray;
class LXQtTrayPlugin : public QObject, public ILXQtPanelPlugin class LXQtTrayPlugin : public QObject, public ILXQtPanelPlugin
@ -60,6 +62,11 @@ class LXQtTrayPluginLibrary: public QObject, public ILXQtPanelPluginLibrary
public: public:
ILXQtPanelPlugin *instance(const ILXQtPanelPluginStartupInfo &startupInfo) const ILXQtPanelPlugin *instance(const ILXQtPanelPluginStartupInfo &startupInfo) const
{ {
// Currently only X11 supported
if (!QX11Info::connection()) {
qWarning() << "Currently tray plugin supports X11 only. Skipping.";
return nullptr;
}
return new LXQtTrayPlugin(startupInfo); return new LXQtTrayPlugin(startupInfo);
} }
}; };

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=System tray Name=System tray
Comment=Display applications minimized to the system tray. Comment=Display applications minimized to the system tray.
Icon=go-bottom
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Adgang til skjulte programmer der er minimeret til systembakken
Name[da]=Systembakke Name[da]=Systembakke
Comment[da]=Vis programmer minimeret til systembakken.

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=System tray
Comment=Display applications minimized to the system tray.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Giver adgang til skjulte programmer, minimeret til systembakken
Name[da_DK]=Systembakke

@ -0,0 +1,3 @@
# Translations
Comment[fr]=Accéder aux applications cachées minimisées dans la zone de notification
Name[fr]=Zone de notification

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=System tray
Comment=Display applications minimized to the system tray.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[fr_FR]=Accéder aux applications cachées minimisées dans la zone de notification
Name[fr_FR]=Zone de notification

@ -3,10 +3,10 @@ Type=Service
ServiceTypes=LXQtPanel/Plugin ServiceTypes=LXQtPanel/Plugin
Name=Volume control Name=Volume control
Comment=Control the system's volume and launch your preferred mixer. Comment=Control the system's volume and launch your preferred mixer.
Icon=multimedia-volume-control
#TRANSLATIONS_DIR=../translations #TRANSLATIONS_DIR=../translations
# Translations # Translations
Comment[da]=Kontroller systemets lydstyrke og start din foretrukne mixer.
Name[da]=Lydstyrkekontrol Name[da]=Lydstyrkekontrol
Comment[da]=Juster systemets lydstyrke og start din foretrukne mikser.

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Volume control
Comment=Control the system's volume and launch your preferred mixer.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[da_DK]=Kontroller systemets lydstyrke og start din foretrukne mixer.
Name[da_DK]=Lydstyrkekontrol

@ -0,0 +1,2 @@
Name[fr]=Volume audio
Comment[fr]=Réglage du volume audio du système et démarrage du mixeur.

@ -1,11 +1,3 @@
[Desktop Entry] [Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Volume control
Comment=Control the system's volume and launch your preferred mixer.
#TRANSLATIONS_DIR=../translations
# Translations
Name[pt]=Controlo de volume Name[pt]=Controlo de volume
Comment[pt]=Controlar o volume do sistema e abrir o gestor de som Comment[pt]=Controlar o volume do sistema e abrir o gestor de som

@ -0,0 +1,12 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=World clock
Comment=World clock plugin.
Icon=clock
#TRANSLATIONS_DIR=../translations
# Translations
Name[da]=Verdensur
Comment[da]=Verdensur-plugin.

@ -0,0 +1,2 @@
Name[fr]=Horloge universelle
Comment[fr]=Horloge universelle
Loading…
Cancel
Save