| Summary: | Show sensor values on ksysguard applet tooltip/popup | ||
|---|---|---|---|
| Product: | [Unmaintained] ksysguard | Reporter: | Manuel López-Ibáñez <lopezibanez> |
| Component: | general | Assignee: | KSysGuard Developers <ksysguard-bugs> |
| Status: | RESOLVED FIXED | ||
| Severity: | wishlist | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Manuel López-Ibáñez
2006-09-06 19:55:57 UTC
SVN commit 610259 by johnflux:
* Show the value of each sensor in the tooltip for the signal plotter
* Fix a few clipping/painting bugs in the signal plotter
BUG:133668
M +16 -14 FancyPlotter.cc
M +1 -0 FancyPlotter.h
M +1 -5 SensorDisplay.cc
M +1 -1 SensorDisplay.h
M +13 -6 SignalPlotter.cc
M +4 -0 SignalPlotter.h
--- trunk/KDE/kdebase/workspace/ksysguard/gui/SensorDisplayLib/FancyPlotter.cc #610258:610259
@@ -70,6 +70,14 @@
KSGRD::SensorDisplay::setTitle( title );
}
+bool FancyPlotter::eventFilter( QObject* object, QEvent* event ) { //virtual
+ if(event->type() == QEvent::ToolTip)
+ {
+ setTooltip();
+ }
+ return SensorDisplay::eventFilter(object, event);
+}
+
void FancyPlotter::configureSettings()
{
mSettingsDialog = new FancyPlotterSettings( this, mSharedSettings->locked );
@@ -176,9 +184,6 @@
}
mPlotter->update();
-
- setTooltip();
-
}
void FancyPlotter::applyStyle()
@@ -231,8 +236,6 @@
++mBeams;
- setTooltip();
-
return true;
}
@@ -248,8 +251,6 @@
mBeams--;
KSGRD::SensorDisplay::removeSensor( pos );
- setTooltip();
-
return true;
}
@@ -258,19 +259,21 @@
QString tooltip;
for ( uint i = 0; i < mBeams; ++i ) {
if(sensors().at( mBeams -i - 1)->isLocalhost()) {
- tooltip += QString( "%1%2%3" ).arg( i != 0 ? "<br>" : "<qt>")
+ tooltip += QString( "%1%2%3 (%4)" ).arg( i != 0 ? "<br>" : "<qt>")
.arg("<font color=\"" + mPlotter->beamColors()[ i ].name() + "\">#</font>")
- .arg( sensors().at( mBeams - i - 1 )->description() );
+ .arg( sensors().at( mBeams - i - 1 )->description() )
+ .arg( mPlotter->lastValue(i) );
+
} else {
- tooltip += QString( "%1%2%3:%4" ).arg( i != 0 ? "<br>" : "<qt>" )
+ tooltip += QString( "%1%2%3:%4 (%5)" ).arg( i != 0 ? "<br>" : "<qt>" )
.arg("<font color=\"" + mPlotter->beamColors()[ i ].name() + "\">#</font>")
- .arg( sensors().at( mBeams - i - 1 )->hostName() )
- .arg( sensors().at( mBeams - i - 1 )->description() );
+ .arg( sensors().at( mBeams - i - 1 )->hostName() )
+ .arg( sensors().at( mBeams - i - 1 )->description() )
+ .arg( mPlotter->lastValue(i) );
}
}
mPlotter->setToolTip( tooltip );
-
}
void FancyPlotter::resizeEvent( QResizeEvent* )
@@ -330,7 +333,6 @@
mPlotter->setTranslatedUnit( KSGRD::SensorMgr->translateUnit( unit ) );
sensors().at( id - 100 )->setDescription( info.name() );
- setTooltip();
}
}
--- trunk/KDE/kdebase/workspace/ksysguard/gui/SensorDisplayLib/FancyPlotter.h #610258:610259
@@ -80,6 +80,7 @@
void applySettings();
protected:
+ virtual bool eventFilter( QObject*, QEvent* );
virtual void resizeEvent( QResizeEvent* );
void setTooltip();
--- trunk/KDE/kdebase/workspace/ksysguard/gui/SensorDisplayLib/SensorDisplay.cc #610258:610259
@@ -193,14 +193,10 @@
}
return true;
- } else if ( event->type() == QEvent::MouseButtonRelease &&
- ( ( QMouseEvent*)event)->button() == Qt::LeftButton ) {
- setFocus();
- }
+ }
return QWidget::eventFilter( object, event );
}
-
void SensorDisplay::sendRequest( const QString &hostName,
const QString &command, int id )
{
--- trunk/KDE/kdebase/workspace/ksysguard/gui/SensorDisplayLib/SensorDisplay.h #610258:610259
@@ -208,7 +208,7 @@
virtual void sensorLost( int reqId );
/**
- * Sets the object where the delete events will be send to.
+ * Sets the object where the delete events will be sent to.
*/
void setDeleteNotifier( QObject *object );
--- trunk/KDE/kdebase/workspace/ksysguard/gui/SensorDisplayLib/SignalPlotter.cc #610258:610259
@@ -444,16 +444,16 @@
pCache.setPen( palette().color( QPalette::Light ) );
pCache.drawLine( 0, h - 1, w - 1, h - 1 );
pCache.drawLine( w - 1, 0, w - 1, h - 1 );
- pCache.setClipRect( 1, 1, w - 2, h - 2 );
-
}
p.drawImage(0,0, mBackgroundImage);
p.setRenderHint(QPainter::Antialiasing, true);
+ //We have a 'frame' in the bottom and right - so subtract them from the view
+ h-=1;
+ w-=1;
+ p.setClipRect( 0, 0, w , h );
- p.setClipRect( 1, 1, w - 2, h - 2 );
double range = mMaxValue - mMinValue;
-
/* If the range is too small we will force it to 1.0 since it
* looks a lot nicer. */
if ( range < 0.000001 )
@@ -722,8 +722,8 @@
//Draw the bottom most (minimum) number as well
if ( mShowLabels && h > ( fontheight + 1 ) * ( mHorizontalLinesCount + 1 )
&& w > 60 ) {
- int value = (int)(minValue / mScaleDownBy);
- QString number = KGlobal::locale()->formatNumber( value, (value >= 100)?0:1);
+ double value = minValue / mScaleDownBy;
+ QString number = KGlobal::locale()->formatNumber( value, (value >= 100)?0:2);
val = QString( "%1 %2" ).arg( number, mUnit);
p.setPen( mFontColor );
p.drawText( 6, top + h - 2, val );
@@ -731,4 +731,11 @@
}
}
+QString KSignalPlotter::lastValue( int i) const
+{
+ if(mBeamData.isEmpty()) return QString::null;
+ double value = mBeamData.first()[i] / mScaleDownBy; //retrieve the newest value for this beam then scale it correct
+ QString number = KGlobal::locale()->formatNumber( value, (value >= 100)?0:2);
+ return QString( "%1 %2").arg(number, mUnit);
+}
#include "SignalPlotter.moc"
--- trunk/KDE/kdebase/workspace/ksysguard/gui/SensorDisplayLib/SignalPlotter.h #610258:610259
@@ -110,6 +110,10 @@
void setSvgBackground( const QString &filename );
QString svgBackground() const;
+ /** Return a translated string like: "34 %" or "100 KB" for beam i
+ */
+ QString lastValue( int i) const;
+
protected:
void updateDataBuffers();
|