Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Feb 2017 15:55:49 +0000 (UTC)
From:      Matthew Rezny <rezny@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r434823 - in head/x11/kde4-workspace: . files
Message-ID:  <201702251555.v1PFtnrH017237@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rezny
Date: Sat Feb 25 15:55:49 2017
New Revision: 434823
URL: https://svnweb.freebsd.org/changeset/ports/434823

Log:
  Multiple enhancements to components of kde4-workspaces
  KInfoCenter:
  * obey user's unit preferences (IEC vs JEDEC) when displaying PCI info
  * correct the units, someone forgot about terabytes
  KSysGuard:
  * make plotter obey user's unit preferences (status bar was correct)
  * change tooltip to use same or adjacent unit scale as the plot
  * support a description different from the sensor name for use as the label
  * add an additional step to label widths so horizontal resize is smoother
  * change status bar elements from fixed layout to proportional layout
  * space permitting, show more detailed memory stats in the status bar
  * replace simplistic (app) memory & swap graph with a detailed graph
  Plasma Desktop:
  * hide the Desktop Toolbox (aka "the cashew") when widgets are locked
  
  NB: KSysGuard caches the layouts, delete ~/.kde4/share/apps/ksysguard/*
      when upgrading so the new layout (detailed memory graph) is used
  
  Reviewed by:	tcberner
  Approved by:	swills (mentor)
  Differential Revision:	https://reviews.freebsd.org/D9760

Added:
  head/x11/kde4-workspace/files/patch-kinfocenter_Modules_pci_kpci.cpp   (contents, props changed)
  head/x11/kde4-workspace/files/patch-ksysguard_gui_SensorDisplayLib_FancyPlotter.cpp   (contents, props changed)
  head/x11/kde4-workspace/files/patch-ksysguard_gui_SensorDisplayLib_FancyPlotter.h   (contents, props changed)
  head/x11/kde4-workspace/files/patch-ksysguard_gui_SystemLoad2.sgrd   (contents, props changed)
  head/x11/kde4-workspace/files/patch-ksysguard_gui_ksysguard.cpp   (contents, props changed)
  head/x11/kde4-workspace/files/patch-ksysguard_gui_ksysguard.h   (contents, props changed)
  head/x11/kde4-workspace/files/patch-plasma_desktop_toolboxes_desktoptoolbox.cpp   (contents, props changed)
  head/x11/kde4-workspace/files/patch-plasma_desktop_toolboxes_desktoptoolbox.h   (contents, props changed)
Modified:
  head/x11/kde4-workspace/Makefile
  head/x11/kde4-workspace/files/patch-CMakeLists.txt
  head/x11/kde4-workspace/files/patch-ConfigureChecks.cmake
  head/x11/kde4-workspace/files/patch-kdm-kfrontend-CMakeLists.txt
  head/x11/kde4-workspace/files/patch-kdm__backend__client.c
  head/x11/kde4-workspace/files/patch-kinfocenter
  head/x11/kde4-workspace/files/patch-kwin_opengltest_CMakeLists.txt
  head/x11/kde4-workspace/files/patch-powerdevil__daemon__backends__upower__xrandrbrightness.cpp
  head/x11/kde4-workspace/files/patch-startkde.cmake
  head/x11/kde4-workspace/files/patch-usbview

Modified: head/x11/kde4-workspace/Makefile
==============================================================================
--- head/x11/kde4-workspace/Makefile	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/Makefile	Sat Feb 25 15:55:49 2017	(r434823)
@@ -2,7 +2,7 @@
 
 PORTNAME=	kde-workspace
 PORTVERSION=	${KDE4_WORKSPACE_VERSION}
-PORTREVISION=	5
+PORTREVISION=	6
 CATEGORIES=	x11 kde
 MASTER_SITES=	KDE/${KDE4_APPLICATIONS_BRANCH}/applications/${KDE4_APPLICATIONS_VERSION}/src
 DIST_SUBDIR=	KDE/${PORTVERSION}

Modified: head/x11/kde4-workspace/files/patch-CMakeLists.txt
==============================================================================
--- head/x11/kde4-workspace/files/patch-CMakeLists.txt	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-CMakeLists.txt	Sat Feb 25 15:55:49 2017	(r434823)
@@ -1,6 +1,6 @@
---- ./CMakeLists.txt.orig	2011-07-19 23:37:36.000000000 +0200
-+++ ./CMakeLists.txt	2011-08-09 20:45:40.975563521 +0200
-@@ -90,7 +90,7 @@
+--- CMakeLists.txt.orig	2015-06-26 03:17:21 UTC
++++ CMakeLists.txt
+@@ -198,7 +198,7 @@ if(NOT WIN32)
    configure_file(config-unix.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-unix.h )
    configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h )
    if(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr")

Modified: head/x11/kde4-workspace/files/patch-ConfigureChecks.cmake
==============================================================================
--- head/x11/kde4-workspace/files/patch-ConfigureChecks.cmake	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-ConfigureChecks.cmake	Sat Feb 25 15:55:49 2017	(r434823)
@@ -1,6 +1,6 @@
---- ./ConfigureChecks.cmake.orig	2009-11-21 12:44:36.000000000 +0300
-+++ ./ConfigureChecks.cmake	2010-01-27 00:04:40.445046695 +0300
-@@ -16,16 +16,7 @@
+--- ConfigureChecks.cmake.orig	2015-06-26 03:17:21 UTC
++++ ConfigureChecks.cmake
+@@ -21,16 +21,7 @@ if (PAM_FOUND)
      endmacro(define_pam_service)
  
      macro(install_pam_service APP)

Modified: head/x11/kde4-workspace/files/patch-kdm-kfrontend-CMakeLists.txt
==============================================================================
--- head/x11/kde4-workspace/files/patch-kdm-kfrontend-CMakeLists.txt	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-kdm-kfrontend-CMakeLists.txt	Sat Feb 25 15:55:49 2017	(r434823)
@@ -1,6 +1,6 @@
---- ./kdm/kfrontend/CMakeLists.txt.orig	2008-07-30 17:02:54.000000000 +0300
-+++ ./kdm/kfrontend/CMakeLists.txt	2008-07-30 17:03:26.000000000 +0300
-@@ -113,6 +113,6 @@
+--- kdm/kfrontend/CMakeLists.txt.orig	2015-06-26 03:17:21 UTC
++++ kdm/kfrontend/CMakeLists.txt
+@@ -111,6 +111,6 @@ install(TARGETS kdmctl ${INSTALL_TARGETS
  
  
  # use 'GENKDMCONF_FLAGS=... make install' to add flags to the config generation (try genkdmconf -h)

Modified: head/x11/kde4-workspace/files/patch-kdm__backend__client.c
==============================================================================
--- head/x11/kde4-workspace/files/patch-kdm__backend__client.c	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-kdm__backend__client.c	Sat Feb 25 15:55:49 2017	(r434823)
@@ -1,6 +1,6 @@
---- kdm/backend/client.c.orig	2014-11-06 23:36:58.000000000 +0100
-+++ kdm/backend/client.c	2015-03-09 13:20:24.870430799 +0100
-@@ -1322,6 +1322,9 @@
+--- kdm/backend/client.c.orig	2015-06-26 03:17:21 UTC
++++ kdm/backend/client.c
+@@ -1322,6 +1322,9 @@ startClient(volatile int *pid)
      char ckDeviceBuf[20] = "";
      const char *ckDevice = ckDeviceBuf;
      dbus_bool_t isLocal;
@@ -10,7 +10,7 @@
  #endif
      char *failsafeArgv[2];
      char *buf, *buf2;
-@@ -1353,6 +1356,13 @@
+@@ -1353,6 +1356,13 @@ startClient(volatile int *pid)
  # ifdef HAVE_VTS
      if (td->serverVT > 0)
          sprintf(ckDeviceBuf, "/dev/tty%d", td->serverVT);
@@ -24,7 +24,7 @@
  # endif
      isLocal = ((td->displayType & d_location) == dLocal);
  # ifdef XDMCP
-@@ -1532,7 +1542,7 @@
+@@ -1532,7 +1542,7 @@ startClient(volatile int *pid)
      environ = pam_env;
  # endif
      removeCreds = True; /* set it first - i don't trust PAM's rollback */

Modified: head/x11/kde4-workspace/files/patch-kinfocenter
==============================================================================
--- head/x11/kde4-workspace/files/patch-kinfocenter	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-kinfocenter	Sat Feb 25 15:55:49 2017	(r434823)
@@ -5,7 +5,7 @@
  Improve GetInfo_ReadfromPipe function to use Qt types, pass program name
  and its parameters as separate arguments.
 
---- /dev/null
+--- cmake/modules/FindBSDDevinfo.cmake.orig	2016-12-13 11:26:31 UTC
 +++ cmake/modules/FindBSDDevinfo.cmake
 @@ -0,0 +1,15 @@
 +# Find FreeBSD devinfo library
@@ -23,7 +23,7 @@
 +find_package_handle_standard_args(BSDDEVINFO DEFAULT_MSG BSDDEVINFO_LIBRARY BSDDEVINFO_INCLUDE_DIR)
 +
 +mark_as_advanced(BSDDEVINFO_INCLUDE_DIR BSDDEVINFO_LIBRARY)
---- kinfocenter/Modules/base/CMakeLists.txt
+--- kinfocenter/Modules/base/CMakeLists.txt.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/base/CMakeLists.txt
 @@ -1,6 +1,7 @@
  # TODO: HAVE_LIBDEVINFO_H (for Solaris 7 and later)
@@ -34,8 +34,8 @@
 +macro_bool_to_01(BSDDEVINFO_FOUND HAVE_DEVINFO_H)
  
  configure_file (../base/config-infocenter.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-infocenter.h )
---- kinfocenter/Modules/base/info_fbsd.cpp.orig	2014-11-06 22:36:58.000000000 +0000
-+++ kinfocenter/Modules/base/info_fbsd.cpp	2015-02-20 22:40:53.380666149 +0000
+--- kinfocenter/Modules/base/info_fbsd.cpp.orig	2015-06-26 03:17:21 UTC
++++ kinfocenter/Modules/base/info_fbsd.cpp
 @@ -15,8 +15,6 @@
   */
  
@@ -45,7 +45,7 @@
  
  #ifdef HAVE_DEVINFO_H
  extern "C" {
-@@ -24,13 +22,16 @@
+@@ -24,13 +22,16 @@ extern "C" {
  }
  #endif
  
@@ -65,7 +65,7 @@
  void ProcessChildren(QString name);
  
  #ifdef HAVE_DEVINFO_H
-@@ -44,13 +45,12 @@
+@@ -44,13 +45,12 @@ extern "C" {
  
  bool GetInfo_IRQ(QTreeWidget* tree) {
  #ifdef HAVE_DEVINFO_H
@@ -84,7 +84,7 @@
  	devinfo_foreach_rman(print_irq, tree);
  	return true;
  #else
-@@ -60,9 +60,13 @@
+@@ -60,9 +60,13 @@ bool GetInfo_IRQ(QTreeWidget* tree) {
  
  bool GetInfo_DMA(QTreeWidget* tree) {
  #ifdef HAVE_DEVINFO_H
@@ -100,7 +100,7 @@
  	devinfo_foreach_rman(print_dma, tree);
  	return true;
  #else
-@@ -72,9 +76,12 @@
+@@ -72,9 +76,12 @@ bool GetInfo_DMA(QTreeWidget* tree) {
  
  bool GetInfo_IO_Ports(QTreeWidget* tree) {
  #ifdef HAVE_DEVINFO_H
@@ -115,7 +115,7 @@
  	devinfo_foreach_rman(print_ioports, tree);
  	return true;
  #else
-@@ -83,50 +90,28 @@
+@@ -83,50 +90,28 @@ bool GetInfo_IO_Ports(QTreeWidget* tree)
  }
  
  bool GetInfo_SCSI(QTreeWidget* tree) {
@@ -125,15 +125,15 @@
 -
  	if (!QFileInfo(QLatin1String("/sbin/camcontrol")).exists()) {
 -		s = i18n("SCSI subsystem could not be queried: /sbin/camcontrol could not be found");
- 		QStringList list;
+-		QStringList list;
 -		list << s;
-+		list << i18n("SCSI subsystem could not be queried: /sbin/camcontrol could not be found");
- 		new QTreeWidgetItem(tree, list);
+-		new QTreeWidgetItem(tree, list);
 -	} else if ((pipe = popen("/sbin/camcontrol devlist 2>&1", "r")) == NULL) {
 -		s = i18n("SCSI subsystem could not be queried: /sbin/camcontrol could not be executed");
--		QStringList list;
+ 		QStringList list;
 -		list << s;
--		new QTreeWidgetItem(tree, list);
++		list << i18n("SCSI subsystem could not be queried: /sbin/camcontrol could not be found");
+ 		new QTreeWidgetItem(tree, list);
 -	} else {
 -
 -		/* This prints out a list of all the scsi devies, perhaps eventually we could
@@ -180,13 +180,13 @@
  
  	const QStringList headers(i18nc("@title:column Column name for PCI information", "Information"));
  	tree->setHeaderLabels(headers);
-@@ -136,40 +121,11 @@
+@@ -136,40 +121,11 @@ bool GetInfo_PCI(QTreeWidget* tree) {
  		list << i18n("Could not find any programs with which to query your system's PCI information");
  		new QTreeWidgetItem(tree, list);
  		return true;
 -	} else {
 -		cmd = "/usr/sbin/pciconf -l -v 2>&1";
--	}
+ 	}
 -
 -	// TODO: GetInfo_ReadfromPipe should be improved so that we could pass the program name and its
 -	//       arguments to it and remove most of the code below.
@@ -208,7 +208,7 @@
 -		}
 -
 -		pclose(pipe);
- 	}
+-	}
 -
 -	if (!tree->topLevelItemCount()) {
 -		QString str = i18n("The PCI subsystem could not be queried, this may need root privileges.");
@@ -223,7 +223,7 @@
  }
  
  bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
-@@ -179,12 +135,7 @@
+@@ -179,12 +135,7 @@ bool GetInfo_XServer_and_Video(QTreeWidg
  #ifdef HAVE_DEVINFO_H
  
  int print_irq(struct devinfo_rman *rman, void *arg) {
@@ -236,7 +236,7 @@
  		devinfo_foreach_rman_resource(rman, print_resource, arg);
  	}
  	return 0;
-@@ -192,11 +143,7 @@
+@@ -192,11 +143,7 @@ int print_irq(struct devinfo_rman *rman,
  
  int print_dma(struct devinfo_rman *rman, void *arg)
  {
@@ -248,7 +248,7 @@
  		devinfo_foreach_rman_resource(rman, print_resource, arg);
  	}
  	return(0);
-@@ -230,29 +177,25 @@
+@@ -230,29 +177,25 @@ int print_resource(struct devinfo_res *r
  	int hexmode;
  
  	QTreeWidget* tree = (QTreeWidget*) arg;
@@ -290,21 +290,9 @@
  	new QTreeWidgetItem(tree, list);
  
  	return 0;
---- kinfocenter/Modules/info/CMakeLists.txt
-+++ kinfocenter/Modules/info/CMakeLists.txt
-@@ -13,6 +13,9 @@ set(kcm_info_PART_SRCS main.cpp info.cpp ../base/os_current.cpp )
- kde4_add_plugin(kcm_info ${kcm_info_PART_SRCS})
- 
- target_link_libraries(kcm_info  ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY} ${X11_X11_LIB})
-+if(BSDDEVINFO_FOUND)
-+	target_link_libraries(kcm_info ${BSDDEVINFO_LIBRARY})
-+endif(BSDDEVINFO_FOUND)
- 
- install(TARGETS kcm_info  DESTINATION ${PLUGIN_INSTALL_DIR} )
- 
---- kinfocenter/Modules/base/info_hpux.cpp
+--- kinfocenter/Modules/base/info_hpux.cpp.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/base/info_hpux.cpp
-@@ -30,6 +30,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+@@ -30,6 +30,7 @@ along with this program.  If not, see <h
  #include <stdlib.h>
  #include <QFile>
  #include <QFontMetrics>
@@ -330,9 +318,9 @@
  }
  /* Parts taken from fsusage.c from the Midnight Commander (mc)
  
---- kinfocenter/Modules/base/info_linux.cpp
+--- kinfocenter/Modules/base/info_linux.cpp.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/base/info_linux.cpp
-@@ -33,6 +33,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+@@ -33,6 +33,7 @@ along with this program.  If not, see <h
  #include <QRegExp>
  #include <QFile>
  #include <QHeaderView>
@@ -356,9 +344,9 @@
  
  	/* if lspci failed, read the contents of /proc/pci */
  	return GetInfo_ReadfromFile(tree, INFO_PCI, 0);
---- kinfocenter/Modules/base/os_base.h
+--- kinfocenter/Modules/base/os_base.h.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/base/os_base.h
-@@ -320,12 +320,12 @@ static bool GetInfo_XServer_Generic(QTreeWidget *lBox) {
+@@ -330,12 +330,12 @@ static bool GetInfo_XServer_Generic(QTre
  }
  
  /* Helper-function to read output from an external program */
@@ -373,3 +361,15 @@
  	if (!proc.waitForFinished()) {
  		// Process hanged or did not start
  		return 0;
+--- kinfocenter/Modules/info/CMakeLists.txt.orig	2015-06-26 03:17:21 UTC
++++ kinfocenter/Modules/info/CMakeLists.txt
+@@ -13,6 +13,9 @@ set(kcm_info_PART_SRCS main.cpp info.cpp
+ kde4_add_plugin(kcm_info ${kcm_info_PART_SRCS})
+ 
+ target_link_libraries(kcm_info  ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY} ${X11_X11_LIB})
++if(BSDDEVINFO_FOUND)
++	target_link_libraries(kcm_info ${BSDDEVINFO_LIBRARY})
++endif(BSDDEVINFO_FOUND)
+ 
+ install(TARGETS kcm_info  DESTINATION ${PLUGIN_INSTALL_DIR} )
+ 

Added: head/x11/kde4-workspace/files/patch-kinfocenter_Modules_pci_kpci.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-kinfocenter_Modules_pci_kpci.cpp	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,56 @@
+* Obey user's unit preferences when displaying PCI info.
+* Use correct units, someone forgot about terabytes
+*
+--- kinfocenter/Modules/pci/kpci.cpp.orig	2015-06-26 03:17:21 UTC
++++ kinfocenter/Modules/pci/kpci.cpp
+@@ -22,6 +22,8 @@ extern "C" {
+ #include <QTreeWidget>
+ #include <QTreeWidgetItem>
+ #include <QFile>
++#include <kglobal.h>
++#include <klocale.h>
+ 
+ static const QString& getNameById(const id2name *const table, int id) {
+ 	for (int i=0;; i++) {
+@@ -238,31 +240,35 @@ static QTreeWidgetItem* addBist(QTreeWid
+ }//addBist
+ 
+ static QTreeWidgetItem* addSize(QTreeWidgetItem *parent, QTreeWidgetItem *after, pciaddr_t size) {
++	static bool realUnits = (KGlobal::locale()->binaryUnitDialect() == KLocale::JEDECBinaryDialect);
+ 	if (size<0x400) {
+ 		after=create(parent, i18n("Size"), QString("%1 B").arg(static_cast<unsigned long>(size)));
+ 	}//if
+ 	else if (size<0x100000) {
+-		after=create(parent, i18n("Size"), QString("%1 kiB").arg(static_cast<unsigned long>(size/0x400)));
++		after=create(parent, i18n("Size"), QString(realUnits ? "%1 KB" : "%1 KiB").arg(static_cast<unsigned long>(size/0x400)));
+ 	}//elif
+ 	else if (size<0x40000000) {
+-		after=create(parent, i18n("Size"), QString("%1 MiB").arg(static_cast<unsigned long>(size/0x100000)));
++		after=create(parent, i18n("Size"), QString(realUnits ? "%1 MB" : "%1 MiB").arg(static_cast<unsigned long>(size/0x100000)));
+ 	}//elif
+ 
+ #ifdef HAVE_PCIADDR_T64
+ 
+ 	else if (size<0x10000000000LL) {
+-		after=create(parent, i18n("Size"),QString("%1 GiB").arg(static_cast<unsigned long>(size/0x40000000)));
++		after=create(parent, i18n("Size"),QString(realUnits ? "%1 GB" : "%1 GiB").arg(static_cast<unsigned long>(size/0x40000000)));
+ 	}//elif
+ 	else if (size<0x4000000000000LL) {
+-		after=create(parent, i18n("Size"),QString("%1 PiB").arg(static_cast<unsigned long>(size/0x10000000000LL)));
++		after=create(parent, i18n("Size"),QString(realUnits ? "%1 TB" : "%1 TiB").arg(static_cast<unsigned long>(size/0x10000000000LL)));
+ 	}//elif
+ 	else if (size<0x1000000000000000LL) {
+-		after=create(parent, i18n("Size"),QString("%1 EiB").arg(static_cast<unsigned long>(size/0x4000000000000LL)));
++		after=create(parent, i18n("Size"),QString(realUnits ? "%1 PB" : "%1 PiB").arg(static_cast<unsigned long>(size/0x4000000000000LL)));
+ 	}//elif
++	else {
++		after=create(parent, i18n("Size"),QString(realUnits ? "%1 EB" : "%1 EiB").arg(static_cast<unsigned long>(size/0x1000000000000000LL)));
++	}//else
+ 
+ #else //HAVE_PCIADDR_T64
+ 	else {
+-		after=create(parent, i18n("Size"), QString("%1 GiB").arg(static_cast<unsigned long>(size/0x40000000)));
++		after=create(parent, i18n("Size"), QString(realUnits ? "%1 GB" : "%1 GiB").arg(static_cast<unsigned long>(size/0x40000000)));
+ 	}//else
+ 
+ #endif //HAVE_PCIADDR_T64

Added: head/x11/kde4-workspace/files/patch-ksysguard_gui_SensorDisplayLib_FancyPlotter.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-ksysguard_gui_SensorDisplayLib_FancyPlotter.cpp	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,306 @@
+* Fix the unit handling in KSysGuard's Plotter to respect user's unit preferences
+*
+* Improve the handling of labels so the display is nicer when horizontally constrained
+*
+* Use reasonable units for the Plotter's tooltip (used to be unscaled)
+*
+* Allow a stored description for sensors to override the label
+*
+--- ksysguard/gui/SensorDisplayLib/FancyPlotter.cpp.orig	2015-06-26 03:17:21 UTC
++++ ksysguard/gui/SensorDisplayLib/FancyPlotter.cpp
+@@ -48,6 +48,7 @@ class SensorToAdd {
+     QRegExp name;
+     QString hostname;
+     QString type;
++    QString description;
+     QList<QColor> colors;
+     QString summationName;
+ };
+@@ -58,13 +59,15 @@ class FancyPlotterLabel : public QLabel 
+         setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+         longHeadingWidth = 0;
+         shortHeadingWidth = 0;
++        minHeadingWidth = 0;
+         textMargin = 0;
+         setLayoutDirection(Qt::LeftToRight); //We do this because we organise the strings ourselves.. is this going to muck it up though for RTL languages?
+     }
+     ~FancyPlotterLabel() {
+     }
+     void setLabel(const QString &name, const QColor &color) {
+-        labelName = name;
++        labelLongName = name;
++        labelShortName = name.split(QChar(' ')).first();
+ 
+         if(indicatorSymbol.isNull()) {
+             if(fontMetrics().inFont(QChar(0x25CF)))
+@@ -73,7 +76,6 @@ class FancyPlotterLabel : public QLabel 
+                 indicatorSymbol = '#';
+         }
+         changeLabel(color);
+-
+     }
+     void setValueText(const QString &value) {
+         //value can have multiple strings, separated with the 0x9c character
+@@ -87,63 +89,72 @@ class FancyPlotterLabel : public QLabel 
+         if(valueText.isEmpty()) {
+             if(longHeadingWidth < width())
+                 setText(longHeadingText);
+-            else
++            else if(shortHeadingWidth < width())
+                 setText(shortHeadingText);
++            else
++                setText(minHeadingText);
+             return;
+         }
+-        QString value = valueText.first();
+ 
+-        int textWidth = fm.boundingRect(value).width();
+-        if(textWidth + longHeadingWidth < width())
+-            setBothText(longHeadingText, value);
+-        else if(textWidth + shortHeadingWidth < width())
+-            setBothText(shortHeadingText, value);
+-        else {
+-            int valueTextCount = valueText.count();
+-            int i;
+-            for(i = 1; i < valueTextCount; ++i) {
+-                textWidth = fm.boundingRect(valueText.at(i)).width();
+-                if(textWidth + shortHeadingWidth <= width()) {
+-                    break;
+-                }
++        int i, textWidth, valueTextCount = valueText.count();
++        for(i = 0; i < valueTextCount; ++i) {
++            textWidth = fm.boundingRect(valueText.at(i)).width();
++            if(textWidth + longHeadingWidth <= width()) {
++                setBothText(longHeadingText, valueText.at(i));
++                return;
+             }
+-            if(i < valueTextCount)
++            if(textWidth + shortHeadingWidth <= width()) {
+                 setBothText(shortHeadingText, valueText.at(i));
+-            else
+-                setText(noHeadingText + valueText.last()); //This just sets the color of the text
++                return;
++            }
+         }
++        for(i = 0; i < valueTextCount; ++i) {
++            textWidth = fm.boundingRect(valueText.at(i)).width();
++            if(textWidth + minHeadingWidth <= width()) {
++                setBothText(minHeadingText, valueText.at(i));
++                return;
++            }
++        }
++        setBothText(noHeadingText, valueText.last()); //This just sets the color of the text
+     }
+     void changeLabel(const QColor &_color) {
+         color = _color;
+ 
+-        if ( kapp->layoutDirection() == Qt::RightToLeft )
+-            longHeadingText = QString(": ") + labelName + " <font color=\"" + color.name() + "\">" + indicatorSymbol + "</font>";
+-        else
+-            longHeadingText = QString("<qt><font color=\"") + color.name() + "\">" + indicatorSymbol + "</font> " + labelName + " :";
+-        shortHeadingText = QString("<qt><font color=\"") + color.name() + "\">" + indicatorSymbol + "</font>";
++        if ( kapp->layoutDirection() == Qt::RightToLeft ) {
++            longHeadingText = QString(" : ") + labelLongName + " <font color=\"" + color.name() + "\">" + indicatorSymbol + "</font>";
++            shortHeadingText = QString(" :") + labelShortName + " <font color=\"" + color.name() + "\">" + indicatorSymbol + "</font>";
++        } else {
++            longHeadingText = QString("<qt><font color=\"") + color.name() + "\">" + indicatorSymbol + "</font> " + labelLongName + " : ";
++            shortHeadingText = QString("<qt><font color=\"") + color.name() + "\">" + indicatorSymbol + "</font> " + labelShortName + ": ";
++        }
++        minHeadingText = QString("<qt><font color=\"") + color.name() + "\">" + indicatorSymbol + "</font> ";
+         noHeadingText = QString("<qt><font color=\"") + color.name() + "\">";
+ 
+-        textMargin = fontMetrics().width('x') + margin()*2 + frameWidth()*2;
+-        longHeadingWidth = fontMetrics().boundingRect(labelName + " :" + indicatorSymbol + " x").width() + textMargin;
+-        shortHeadingWidth = fontMetrics().boundingRect(indicatorSymbol).width() + textMargin;
+-        setMinimumWidth(shortHeadingWidth);
++        textMargin = margin()*2 + frameWidth()*2;
++        longHeadingWidth = fontMetrics().boundingRect(labelLongName + " : " + indicatorSymbol + " x").width() + textMargin;
++        shortHeadingWidth = fontMetrics().boundingRect(labelShortName + ": " + indicatorSymbol + " x").width() + textMargin;
++        minHeadingWidth = fontMetrics().boundingRect(indicatorSymbol + " x").width() + textMargin;
++        setMinimumWidth(minHeadingWidth);
+         update();
+     }
+   private:
+     void setBothText(const QString &heading, const QString & value) {
+         if(QApplication::layoutDirection() == Qt::LeftToRight)
+-            setText(heading + ' ' + value);
++            setText(heading + value);
+         else
+-            setText("<qt>" + value + ' ' + heading);
++            setText("<qt>" + value + heading);
+     }
+     int textMargin;
+     QString longHeadingText;
+     QString shortHeadingText;
++    QString minHeadingText;
+     QString noHeadingText;
+     int longHeadingWidth;
+     int shortHeadingWidth;
++    int minHeadingWidth;
+     QList<QString> valueText;
+-    QString labelName;
++    QString labelLongName;
++    QString labelShortName;
+     QColor color;
+     static QChar indicatorSymbol;
+ };
+@@ -162,6 +173,7 @@ FancyPlotter::FancyPlotter( QWidget* par
+     mUseManualRange = false;
+     mNumAnswers = 0;
+     mLabelsWidget = NULL;
++    mRealUnits = (KGlobal::locale()->binaryUnitDialect() == KLocale::JEDECBinaryDialect);
+ 
+     //The unicode character 0x25CF is a big filled in circle.  We would prefer to use this in the tooltip.
+     //However it's maybe possible that the font used to draw the tooltip won't have it.  So we fall back to a 
+@@ -510,10 +522,17 @@ void FancyPlotter::setTooltip()
+ 
+         if(sensor->isOk()) {
+             lastValue = KGlobal::locale()->formatNumber( sensor->lastValue, (sensor->isInteger)?0:-1 );
+-            if (sensor->unit() == "%")
++            if (sensor->unit() == "%") {
+                 lastValue = i18nc("units", "%1%", lastValue);
+-            else if( !sensor->unit().isEmpty() )
+-                lastValue = i18nc("units", QString(QString("%1 ") + sensor->unit()).toUtf8(), lastValue);
++            } else if( !sensor->unit().isEmpty() ) {
++                qreal scale = (mPlotter->scaleDownBy() == 1) ? 1 : (sensor->lastValue / mPlotter->scaleDownBy() < 0.1) ? (mPlotter->scaleDownBy() / 1024) : mPlotter->scaleDownBy();
++                if(scale > 1) {
++                    QString unit = (scale == 1024) ? (sensor->unit()).replace("K","M") : (scale == 1024*1024) ? (sensor->unit()).replace("K","G") : (sensor->unit()).replace("K","T");
++                    lastValue = i18nc("units", QString(QString("%1 ") + unit).toUtf8(), KGlobal::locale()->formatNumber( sensor->lastValue / scale ));
++                } else {
++                    lastValue = i18nc("units", QString(QString("%1 ") + sensor->unit()).toUtf8(), lastValue);
++                }
++            }
+         } else {
+             lastValue = i18n("Error");
+         }
+@@ -615,33 +634,33 @@ void FancyPlotter::plotterAxisScaleChang
+     disconnect(mPlotter, SIGNAL(axisScaleChanged()), this, SLOT(plotterAxisScaleChanged()));
+     KLocalizedString unit;
+     double value = mPlotter->currentMaximumRangeValue();
+-    if(mUnit  == "KiB") {
+-        if(value >= 1024*1024*1024*0.7) {  //If it's over 0.7TiB, then set the scale to terabytes
++    if(mUnit  == "KB" || mUnit == "KiB") {
++        if(value >= 1024*1024*1024) {
+             mPlotter->setScaleDownBy(1024*1024*1024);
+-            unit = ki18nc("units", "%1 TiB"); // the unit - terabytes
+-        } else if(value >= 1024*1024*0.7) {  //If it's over 0.7GiB, then set the scale to gigabytes
++            unit = ki18nc("units", mRealUnits ? "%1 TB" : "%1 TiB"); // the unit - terabytes
++        } else if(value >= 1024*1024) {
+             mPlotter->setScaleDownBy(1024*1024);
+-            unit = ki18nc("units", "%1 GiB"); // the unit - gigabytes
++            unit = ki18nc("units", mRealUnits ? "%1 GB" : "%1 GiB"); // the unit - gigabytes
+         } else if(value > 1024) {
+             mPlotter->setScaleDownBy(1024);
+-            unit = ki18nc("units", "%1 MiB"); // the unit - megabytes
++            unit = ki18nc("units", mRealUnits ? "%1 MB" : "%1 MiB"); // the unit - megabytes
+         } else {
+             mPlotter->setScaleDownBy(1);
+-            unit = ki18nc("units", "%1 KiB"); // the unit - kilobytes
++            unit = ki18nc("units", mRealUnits ? "%1 KB" : "%1 KiB"); // the unit - kilobytes
+         }
+-    } else if(mUnit == "KiB/s") {
+-        if(value >= 1024*1024*1024*0.7) {  //If it's over 0.7TiB, then set the scale to terabytes
++    } else if(mUnit == "KB/s" || mUnit == "KiB/s") {
++        if(value >= 1024*1024*1024) {
+             mPlotter->setScaleDownBy(1024*1024*1024);
+-            unit = ki18nc("units", "%1 TiB/s"); // the unit - terabytes per second
+-        } else if(value >= 1024*1024*0.7) {  //If it's over 0.7GiB, then set the scale to gigabytes
++            unit = ki18nc("units", mRealUnits ? "%1 TB/s" : "%1 TiB/s"); // the unit - terabytes per second
++        } else if(value >= 1024*1024) {
+             mPlotter->setScaleDownBy(1024*1024);
+-            unit = ki18nc("units", "%1 GiB/s"); // the unit - gigabytes per second
++            unit = ki18nc("units", mRealUnits ? "%1 GB/s" : "%1 GiB/s"); // the unit - gigabytes per second
+         } else if(value > 1024) {
+             mPlotter->setScaleDownBy(1024);
+-            unit = ki18nc("units", "%1 MiB/s"); // the unit - megabytes per second
++            unit = ki18nc("units", mRealUnits ? "%1 MB/s" : "%1 MiB/s"); // the unit - megabytes per second
+         } else {
+             mPlotter->setScaleDownBy(1);
+-            unit = ki18nc("units", "%1 KiB/s"); // the unit - kilobytes per second
++            unit = ki18nc("units", mRealUnits ? "%1 KB/s" : "%1 KiB/s"); // the unit - kilobytes per second
+         }
+     } else if(mUnit == "%") {
+         mPlotter->setScaleDownBy(1);
+@@ -694,9 +713,9 @@ void FancyPlotter::answerReceived( int i
+         KSGRD::SensorFloatInfo info( answer );
+         QString unit = info.unit();
+         if(unit.toUpper() == "KB" || unit.toUpper() == "KIB")
+-            unit = "KiB";
++            unit = mRealUnits ? "KB" : "KiB";
+         if(unit.toUpper() == "KB/S" || unit.toUpper() == "KIB/S")
+-            unit = "KiB/s";
++            unit = mRealUnits ? "KB/s" : "KiB/s";
+ 
+         if(id == 100) //if we are the first sensor, just use that sensors units as the global unit
+             mUnit = unit;
+@@ -714,7 +733,8 @@ void FancyPlotter::answerReceived( int i
+         sensor->maxValue = info.max();
+         sensor->minValue = info.min();
+         sensor->setUnit( unit );
+-        sensor->setDescription( info.name() );
++        if(sensor->description().isEmpty())
++            sensor->setDescription( info.name() );
+ 
+         QString summationName = sensor->summationName;
+         int beamId = sensor->beamId;
+@@ -723,7 +743,7 @@ void FancyPlotter::answerReceived( int i
+         Q_ASSERT(beamId < mLabelLayout->count());
+ 
+         if(summationName.isEmpty())
+-            static_cast<FancyPlotterLabel *>((static_cast<QWidgetItem *>(mLabelLayout->itemAt(beamId)))->widget())->setLabel(info.name(), mPlotter->beamColor(beamId));
++            static_cast<FancyPlotterLabel *>((static_cast<QWidgetItem *>(mLabelLayout->itemAt(beamId)))->widget())->setLabel(sensor->description(), mPlotter->beamColor(beamId));
+ 
+     } else if( id == 200) {
+         /* FIXME This doesn't check the host!  */
+@@ -743,8 +763,8 @@ void FancyPlotter::answerReceived( int i
+                         else if(KSGRD::Style->numSensorColors() != 0)
+                             color = KSGRD::Style->sensorColor( beamId % KSGRD::Style->numSensorColors());
+                         addSensor( sensor->hostname, sensorName,
+-                                (sensor->type.isEmpty()) ? "float" : sensor->type
+-                                , "", color, sensor->name.pattern(), beamId, sensor->summationName);
++                                (sensor->type.isEmpty()) ? "float" : sensor->type,
++                                sensor->description, color, sensor->name.pattern(), beamId, sensor->summationName);
+                     }
+                 }
+             }
+@@ -823,7 +843,7 @@ bool FancyPlotter::restoreSettings( QDom
+         } else
+             addSensor( el.attribute( "hostName" ), el.attribute( "sensorName" ),
+                     ( el.attribute( "sensorType" ).isEmpty() ? "float" :
+-                      el.attribute( "sensorType" ) ), "", restoreColor( el, "color",
++                      el.attribute( "sensorType" ) ), el.attribute( "description" ), restoreColor( el, "color",
+                       KSGRD::Style->sensorColor( i ) ), QString(), mBeams, el.attribute("summationName") );
+     }
+ 
+@@ -873,16 +893,18 @@ bool FancyPlotter::saveSettings( QDomDoc
+         } else {
+             QDomElement beam = doc.createElement( "beam" );
+             element.appendChild( beam );
++            beam.setAttribute( "sensorType", sensor->type() );
+             beam.setAttribute( "hostName", sensor->hostName() );
+-            if(regExpName.isEmpty())
++            if(regExpName.isEmpty()) {
+                 beam.setAttribute( "sensorName", sensor->name() );
+-            else {
++                if(sensor->hasDescription)
++                    beam.setAttribute( "description", sensor->description() );
++            } else {
+                 beam.setAttribute( "regexpSensorName", sensor->regExpName() );
+                 hash[regExpName] = beam;
++                if(!sensor->summationName.isEmpty())
++                    beam.setAttribute( "summationName", sensor->summationName);
+             }
+-            if(!sensor->summationName.isEmpty())
+-                beam.setAttribute( "summationName", sensor->summationName);
+-            beam.setAttribute( "sensorType", sensor->type() );
+             saveColor( beam, "color", mPlotter->beamColor( beamId ) );
+         }
+     }
+@@ -918,6 +940,7 @@ FPSensorProperties::FPSensorProperties( 
+     minValue = 0;
+     lastValue = 0;
+     isInteger = (type == "integer");
++    hasDescription = !description.isEmpty();
+ }
+ 
+ FPSensorProperties::~FPSensorProperties()

Added: head/x11/kde4-workspace/files/patch-ksysguard_gui_SensorDisplayLib_FancyPlotter.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-ksysguard_gui_SensorDisplayLib_FancyPlotter.h	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,29 @@
+* Add a couple variables for the additional functionality in FancyPlotter.cpp
+*
+--- ksysguard/gui/SensorDisplayLib/FancyPlotter.h.orig	2015-06-26 03:17:21 UTC
++++ ksysguard/gui/SensorDisplayLib/FancyPlotter.h
+@@ -52,6 +52,7 @@ class FPSensorProperties : public KSGRD:
+     double minValue;
+     double lastValue;
+     bool isInteger;
++    bool hasDescription;
+ 
+   private:
+     QColor mColor;
+@@ -104,7 +105,7 @@ class FancyPlotter : public KSGRD::Senso
+   private:
+     void sendDataToPlotter();
+     uint mBeams;
+-    
++
+     int mNumAnswers;
+     /** When we talk to the sensor, it tells us a range.  Record the max here.  equals 0 until we have an answer from it */
+     double mSensorReportedMax;
+@@ -131,6 +132,7 @@ class FancyPlotter : public KSGRD::Senso
+     QLabel *mHeading;
+ 
+     QString mUnit;
++    bool mRealUnits;
+ 
+     QList<SensorToAdd *> mSensorsToAdd;
+     QBoxLayout *mLabelLayout;

Added: head/x11/kde4-workspace/files/patch-ksysguard_gui_SystemLoad2.sgrd
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-ksysguard_gui_SystemLoad2.sgrd	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,24 @@
+* Provide a detailed view of Memory and Swap Used instead of the simplistic and
+* misleading view that showed only application use (kernel use was neglected)
+* 
+--- ksysguard/gui/SystemLoad2.sgrd.orig	2015-06-26 03:17:21 UTC
++++ ksysguard/gui/SystemLoad2.sgrd
+@@ -3,11 +3,14 @@
+ <WorkSheet title="System Load" interval="0.5" locked="1" rows="3" columns="1" >
+  <host port="-1" command="ksysguardd" shell="" name="localhost" />
+  <display title="CPU History" svgBackground="widgets/plot-background" autoRange="0" class="FancyPlotter" column="0" row="0" version="1">
+-  <beam sensorType="float" hostName="localhost" regexpSensorName="cpu/cpu.*/TotalLoad" color="0xffff8000,0xffe20800" />
++  <beam sensorType="float" hostName="localhost" regexpSensorName="cpu/cpu.*/TotalLoad" />
+  </display>
+- <display title="Memory and Swap History" svgBackground="widgets/plot-background" autoRange="0" class="FancyPlotter" column="0" row="1" version="1" >
+-  <beam summationName="Memory" sensorName="mem/physical/application" sensorType="integer" hostName="localhost" color="0xffc000c0" />
+-  <beam summationName="Swap" sensorName="mem/swap/used" sensorType="integer" hostName="localhost" color="0xff00c000" />
++ <display title="Memory and Swap History" svgBackground="widgets/plot-background" autoRange="1" class="FancyPlotter" column="0" row="1" version="1" stacked="1">
++  <beam sensorType="integer" hostName="localhost" sensorName="mem/physical/wired" color="0xffc00000" />
++  <beam sensorType="integer" hostName="localhost" sensorName="mem/physical/inactive" color="0xffc0c000" />
++  <beam sensorType="integer" hostName="localhost" sensorName="mem/physical/active" color="0xff0000c0" />
++  <beam sensorType="integer" hostName="localhost" sensorName="mem/physical/free" color="0xff00c000" />
++  <beam sensorType="integer" hostName="localhost" sensorName="mem/swap/used" description="Swap Used" color="0xffc000c0" />
+  </display>
+  <display title="Network History" svgBackground="widgets/plot-background" autoRange="1" class="FancyPlotter" column="0" row="2" version="1" min="0" max="20" manualRange="1">
+   <beam sensorType="float" hostName="localhost" summationName="Receiving" regexpSensorName="network/interfaces/(?!lo|bridge|usbus|bond).*/receiver/data" color="0xB3A52D" />

Added: head/x11/kde4-workspace/files/patch-ksysguard_gui_ksysguard.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-ksysguard_gui_ksysguard.cpp	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,73 @@
+* More detailed Memory stats in the KSysGuard's Status Bar
+*
+* Make the the Status Bar elements reasonably proportional in size
+*
+--- ksysguard/gui/ksysguard.cpp.orig	2015-06-26 03:17:21 UTC
++++ ksysguard/gui/ksysguard.cpp
+@@ -93,19 +93,21 @@ TopLevel::TopLevel()
+   /* Create the status bar. It displays some information about the
+    * number of processes and the memory consumption of the local
+    * host. */
+-  const int STATUSBAR_STRETCH=1;
+-
+   sbProcessCount = new QLabel();
+-  statusBar()->addWidget( sbProcessCount, STATUSBAR_STRETCH );
++  sbProcessCount->setAlignment( Qt::AlignHCenter );
++  statusBar()->addWidget( sbProcessCount, 3 );      // 1 long label + 1 value = 3
+ 
+   sbCpuStat = new QLabel();
+-  statusBar()->addWidget( sbCpuStat, STATUSBAR_STRETCH );
++  sbCpuStat->setAlignment( Qt::AlignHCenter );
++  statusBar()->addWidget( sbCpuStat, 2 );           // 1 short label + 1 value = 2
+ 
+   sbMemTotal = new QLabel();
+-  statusBar()->addWidget( sbMemTotal, STATUSBAR_STRETCH );
++  sbMemTotal->setAlignment( Qt::AlignHCenter );
++  statusBar()->addWidget( sbMemTotal, 5 );          // 1 label + 4 values = 5
+ 
+   sbSwapTotal = new QLabel();
+-  statusBar()->addWidget( sbSwapTotal, STATUSBAR_STRETCH );
++  sbSwapTotal->setAlignment( Qt::AlignHCenter );
++  statusBar()->addWidget( sbSwapTotal, 3 );         // 1 label + 2 values = 3
+ 
+   statusBar()->hide();
+ 
+@@ -453,11 +455,7 @@ void TopLevel::answerReceived( int id, c
+ 
+     case 4:
+       mUsedApplication = answer.toLongLong();
+-      //Use a multi-length string
+-      s = i18nc( "Arguments are formatted byte sizes (used/total)", "Memory: %1 / %2" "\xc2\x9c" "Mem: %1 / %2" "\xc2\x9c" "Mem: %1" "\xc2\x9c" "%1",
+-                 KGlobal::locale()->formatByteSize( mUsedApplication*1024),
+-                 KGlobal::locale()->formatByteSize( (mFree+mUsedTotal)*1024 ) );
+-      sbMemTotal->setText( s );
++      setMemInfo( mUsedApplication, mUsedTotal, mFree, unit );
+       break;
+ 
+     case 5:
+@@ -477,6 +475,17 @@ void TopLevel::answerReceived( int id, c
+   }
+ }
+ 
++void TopLevel::setMemInfo(qlonglong usedapps, qlonglong usedtotal, qlonglong free, const QString & )
++{
++  QString msg;
++  msg = i18nc( "Arguments are formatted byte sizes (used/total)", "Memory: (K %4 + U %3) %1 / %2" "\xc2\x9c" "Memory: (U %3) %1 / %2" "\xc2\x9c" "Memory: %1 / %2" "\xc2\x9c" "Mem: %1 / %2" "\xc2\x9c" "Mem: %1" "\xc2\x9c" "%1",
++               KGlobal::locale()->formatByteSize( usedtotal*1024 ),
++               KGlobal::locale()->formatByteSize( (free+usedtotal)*1024 ),
++               KGlobal::locale()->formatByteSize( usedapps*1024 ),
++               KGlobal::locale()->formatByteSize( (usedtotal-usedapps)*1024 ) );
++  sbMemTotal->setText( msg );
++}
++
+ void TopLevel::setSwapInfo( qlonglong used, qlonglong free, const QString & )
+ {
+   QString msg;
+@@ -487,7 +496,6 @@ void TopLevel::setSwapInfo( qlonglong us
+                  KGlobal::locale()->formatByteSize( used*1024 ),
+                  KGlobal::locale()->formatByteSize( (free+used)*1024) );
+   }
+-
+   sbSwapTotal->setText( msg );
+ }
+ 

Added: head/x11/kde4-workspace/files/patch-ksysguard_gui_ksysguard.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-ksysguard_gui_ksysguard.h	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,12 @@
+* Add the detailed setMemInfo used in ksysguard.cpp
+*
+--- ksysguard/gui/ksysguard.h.orig	2015-06-26 03:17:21 UTC
++++ ksysguard/gui/ksysguard.h
+@@ -77,6 +77,7 @@ class TopLevel : public KXmlGuiWindow, p
+     void configureCurrentSheet();
+ 
+   private:
++    void setMemInfo( qlonglong, qlonglong, qlonglong, const QString& );
+     void setSwapInfo( qlonglong, qlonglong, const QString& );
+     void changeEvent( QEvent * event );
+     void retranslateUi();

Modified: head/x11/kde4-workspace/files/patch-kwin_opengltest_CMakeLists.txt
==============================================================================
--- head/x11/kde4-workspace/files/patch-kwin_opengltest_CMakeLists.txt	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-kwin_opengltest_CMakeLists.txt	Sat Feb 25 15:55:49 2017	(r434823)
@@ -1,4 +1,4 @@
---- kwin/opengltest/CMakeLists.txt.orig	2014-11-06 22:36:58 UTC
+--- kwin/opengltest/CMakeLists.txt.orig	2015-06-26 03:17:21 UTC
 +++ kwin/opengltest/CMakeLists.txt
 @@ -2,9 +2,11 @@
  

Added: head/x11/kde4-workspace/files/patch-plasma_desktop_toolboxes_desktoptoolbox.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-plasma_desktop_toolboxes_desktoptoolbox.cpp	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,25 @@
+* Hide the desktop toolbox (aka "cashew") when widgets are locked
+*
+--- plasma/desktop/toolboxes/desktoptoolbox.cpp.orig	2015-06-26 03:17:21 UTC
++++ plasma/desktop/toolboxes/desktoptoolbox.cpp
+@@ -177,6 +177,8 @@ void DesktopToolBox::init()
+     connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()),
+             this, SLOT(updateTheming()));
+     Plasma::ToolTipManager::self()->registerWidget(this);
++    QObject::connect(m_containment, SIGNAL(immutabilityChanged(Plasma::ImmutabilityType)),
++                     this, SLOT(immutabilityChanged(Plasma::ImmutabilityType)));
+ 
+     if (KAuthorized::authorizeKAction("logout")) {
+         QAction *action = new QAction(i18n("Leave..."), this);
+@@ -761,6 +763,11 @@ void DesktopToolBox::toggle()
+     setShowing(!isShowing());
+ }
+ 
++void DesktopToolBox::immutabilityChanged(Plasma::ImmutabilityType immutability)
++{
++    setVisible(immutability == Plasma::Mutable);
++}
++
+ void DesktopToolBox::adjustBackgroundBorders() const
+ {
+     Plasma::FrameSvg *background = const_cast<Plasma::FrameSvg *>(m_background);

Added: head/x11/kde4-workspace/files/patch-plasma_desktop_toolboxes_desktoptoolbox.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kde4-workspace/files/patch-plasma_desktop_toolboxes_desktoptoolbox.h	Sat Feb 25 15:55:49 2017	(r434823)
@@ -0,0 +1,12 @@
+* Add handler for change of mutability of the desktop toolbox
+*
+--- plasma/desktop/toolboxes/desktoptoolbox.h.orig	2015-06-26 03:17:21 UTC
++++ plasma/desktop/toolboxes/desktoptoolbox.h
+@@ -81,6 +81,7 @@ protected Q_SLOTS:
+      * show/hide the toolbox
+      */
+     void toggle();
++    void immutabilityChanged(Plasma::ImmutabilityType immutability);
+ 
+     // basic desktop controls
+     void startLogout();

Modified: head/x11/kde4-workspace/files/patch-powerdevil__daemon__backends__upower__xrandrbrightness.cpp
==============================================================================
--- head/x11/kde4-workspace/files/patch-powerdevil__daemon__backends__upower__xrandrbrightness.cpp	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-powerdevil__daemon__backends__upower__xrandrbrightness.cpp	Sat Feb 25 15:55:49 2017	(r434823)
@@ -1,6 +1,6 @@
---- ./powerdevil/daemon/backends/upower/xrandrbrightness.cpp.orig	2012-11-30 08:24:40.000000000 +0100
-+++ ./powerdevil/daemon/backends/upower/xrandrbrightness.cpp	2013-01-22 20:44:13.303230302 +0100
-@@ -69,6 +69,9 @@
+--- powerdevil/daemon/backends/upower/xrandrbrightness.cpp.orig	2015-06-26 03:17:21 UTC
++++ powerdevil/daemon/backends/upower/xrandrbrightness.cpp
+@@ -62,6 +62,9 @@ XRandrBrightness::XRandrBrightness()
          qWarning("No available Randr resources");
          return;
      }
@@ -10,7 +10,7 @@
  }
  
  XRandrBrightness::~XRandrBrightness()
-@@ -85,7 +88,7 @@
+@@ -89,7 +92,7 @@ bool XRandrBrightness::isSupported() con
  
  float XRandrBrightness::brightness() const
  {

Modified: head/x11/kde4-workspace/files/patch-startkde.cmake
==============================================================================
--- head/x11/kde4-workspace/files/patch-startkde.cmake	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-startkde.cmake	Sat Feb 25 15:55:49 2017	(r434823)
@@ -1,12 +1,12 @@
---- startkde.cmake.orig	2009-10-07 08:37:24.000000000 +1100
-+++ startkde.cmake	2009-12-28 10:02:07.133352180 +1000
-@@ -337,7 +337,8 @@
- fi
+--- startkde.cmake.orig	2015-06-26 03:17:21 UTC
++++ startkde.cmake
+@@ -271,7 +271,8 @@ export XDG_DATA_DIRS
+ # Make sure that D-Bus is running
  # D-Bus autolaunch is broken
  if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
 -    eval `dbus-launch --sh-syntax --exit-with-session`
 +    uuid="`dbus-uuidgen --get`"
 +    eval `dbus-launch --sh-syntax --exit-with-session --autolaunch $uuid`
  fi
- if qdbus >/dev/null 2>/dev/null; then
+ if $qdbus >/dev/null 2>/dev/null; then
      : # ok

Modified: head/x11/kde4-workspace/files/patch-usbview
==============================================================================
--- head/x11/kde4-workspace/files/patch-usbview	Sat Feb 25 15:51:01 2017	(r434822)
+++ head/x11/kde4-workspace/files/patch-usbview	Sat Feb 25 15:55:49 2017	(r434823)
@@ -4,7 +4,7 @@
  Old code probably works on NetBSD, but let it use libusb-1 as well.
  Use DeviceNotifier instead of polling.
 
---- /dev/null
+--- cmake/modules/FindLibUSB1.cmake.orig	2016-12-13 11:26:31 UTC
 +++ cmake/modules/FindLibUSB1.cmake
 @@ -0,0 +1,21 @@
 +# - Try to find libusb v1.0 library
@@ -28,7 +28,7 @@
 +find_package_handle_standard_args(LIBUSB1 DEFAULT_MSG LIBUSB1_LIBRARY LIBUSB1_INCLUDE_DIR)
 +
 +mark_as_advanced(LIBUSB1_INCLUDE_DIR LIBUSB1_LIBRARY)
---- kinfocenter/Modules/usbview/CMakeLists.txt
+--- kinfocenter/Modules/usbview/CMakeLists.txt.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/usbview/CMakeLists.txt
 @@ -1,15 +1,25 @@
 +macro_optional_find_package(LibUSB1)
@@ -58,12 +58,12 @@
  
  install(TARGETS kcm_usb  DESTINATION ${PLUGIN_INSTALL_DIR} )
  
---- /dev/null
+--- kinfocenter/Modules/usbview/config-kcmusb.h.cmake.orig	2016-12-13 11:26:31 UTC
 +++ kinfocenter/Modules/usbview/config-kcmusb.h.cmake
 @@ -0,0 +1,2 @@
 +/* Defined if you have libusb */
 +#cmakedefine HAVE_LIBUSB1 1
---- kinfocenter/Modules/usbview/kcmusb.cpp
+--- kinfocenter/Modules/usbview/kcmusb.cpp.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/usbview/kcmusb.cpp
 @@ -12,7 +12,6 @@
  #include <QLayout>
@@ -81,7 +81,7 @@
  
  #include <KPluginFactory>
  #include <KPluginLoader>
-@@ -63,11 +63,8 @@ USBViewer::USBViewer(QWidget *parent, const QVariantList &) :
+@@ -63,11 +63,8 @@ USBViewer::USBViewer(QWidget *parent, co
  	_details = new QTextEdit(splitter);
  	_details->setReadOnly(true);
  
@@ -95,7 +95,7 @@
  	connect(_devices, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(selectionChanged(QTreeWidgetItem*)));
  
  	KAboutData *about = new KAboutData(I18N_NOOP("kcmusb"), 0, ki18n("KDE USB Viewer"),
-@@ -113,8 +110,12 @@ static void delete_recursive(QTreeWidgetItem *item, const QMap<int, QTreeWidgetI
+@@ -113,8 +110,12 @@ static void delete_recursive(QTreeWidget
  void USBViewer::refresh() {
  	QMap<int, QTreeWidgetItem*> new_items;
  
@@ -108,7 +108,7 @@
  
  	int level = 0;
  	bool found = true;
---- kinfocenter/Modules/usbview/usbdevices.cpp
+--- kinfocenter/Modules/usbview/usbdevices.cpp.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/usbview/usbdevices.cpp
 @@ -27,9 +27,9 @@
  
@@ -131,7 +131,7 @@
  static QString catFile(QString fname) {
  	char buffer[256];
  	QString result;
-@@ -129,6 +130,7 @@ void USBDevice::parseLine(const QString& line) {
+@@ -129,6 +130,7 @@ void USBDevice::parseLine(const QString&
  	} else if (line.startsWith("P:"))
  		sscanf(line.toLocal8Bit().data(), "P:  Vendor=%x ProdID=%x Rev=%x.%x", &_vendorID, &_prodID, &_revMajor, &_revMinor);
  }
@@ -275,7 +275,7 @@
  bool USBDevice::parse(const QString &fname) {
  	_devices.clear();
  
-@@ -290,146 +362,19 @@ bool USBDevice::parseSys(const QString &dname) {
+@@ -290,146 +362,19 @@ bool USBDevice::parseSys(const QString &
  	return d.count();
  }
  
@@ -428,7 +428,7 @@
 -#endif // !(defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD))
 +#endif // defined(Q_OS_LINUX)
 +#endif // defined(HAVE_LIBUSB1)
---- kinfocenter/Modules/usbview/usbdevices.h
+--- kinfocenter/Modules/usbview/usbdevices.h.orig	2015-06-26 03:17:21 UTC
 +++ kinfocenter/Modules/usbview/usbdevices.h
 @@ -14,18 +14,9 @@
  #include <QList>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702251555.v1PFtnrH017237>