From 0ab338256011c6b29494f9f69a2fba2afc147e16 Mon Sep 17 00:00:00 2001 From: tpearson Date: Tue, 11 May 2010 20:07:47 +0000 Subject: [PATCH] Honor Free Desktop tray icon resize requests git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/knutclient@1125602 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- src/knutdock.cpp | 152 ++++++++++++++++++++++++++--------------------- src/knutdock.h | 14 +++-- 2 files changed, 91 insertions(+), 75 deletions(-) diff --git a/src/knutdock.cpp b/src/knutdock.cpp index 13d0d87..9626f3b 100755 --- a/src/knutdock.cpp +++ b/src/knutdock.cpp @@ -1,7 +1,7 @@ /*************************************************************************** knutdock.cpp - description ------------------- - begin : Út zari 23 2003 + begin : �t zari 23 2003 copyright : (C) 2003 by Daniel Prynych email : Daniel.Prynych@alo.cz ***************************************************************************/ @@ -45,7 +45,7 @@ KNutDock::KNutDock(KNutVarData::upsInfoDef* activeUpsInfo, KNutVarData::SettingD m_upsRecords = upsRecords; m_activeUpsInfo = activeUpsInfo; -//saves backgroundcolor of kicker +//saves backgroundcolor of kicker backgroundColor = paletteBackgroundColor(); m_typeOfIcon = m_settingData->typeOfKIcon; @@ -78,7 +78,7 @@ KNutDock::KNutDock(KNutVarData::upsInfoDef* activeUpsInfo, KNutVarData::SettingD initImage(); - changeKIcon(); // this function calls function repaintIcon + changeKIcon(); // this function calls function repaintIcon } @@ -96,6 +96,11 @@ KNutDock::~KNutDock(){ delete m_menu; } +void KNutDock::resizeEvent ( QResizeEvent * ){ + initImage(); + changeKIcon(); // this function calls function repaintIcon + } + void KNutDock::changeUps (void) { m_upsServerMenu->clear(); @@ -176,7 +181,7 @@ void KNutDock::repaintDock (const bool always) { QString nutStringVar; int myRuntimeValue; int myUpsLoadValue; - int myStatusValue; + int myStatusValue; int myStatusBatValue; int myBatteryChargeValue; bool repaintNow = false; @@ -188,7 +193,7 @@ void KNutDock::repaintDock (const bool always) { if (m_activeUpsInfo->upsNet == 0) { repaint(); return;} - m_dataOkOld=m_dataOk; + m_dataOkOld=m_dataOk; if ((m_activeUpsInfo->upsNet->getState() == KNutNet::Connected) // paints icons with information values && (!m_activeUpsInfo->netError)) { @@ -211,7 +216,7 @@ void KNutDock::repaintDock (const bool always) { switch (m_typeOfIcon) { case generalKI: -// *********STATUS**************** +// *********STATUS**************** if (myStatusValue !=m_statusValue ) { m_statusValue = myStatusValue; paintStatus(m_statusValue); @@ -219,7 +224,7 @@ void KNutDock::repaintDock (const bool always) { } // **********RUNTIME*********** - myStatusBatValue = myStatusValue & KNutNet::OB; // OB = UPS runs on battery + myStatusBatValue = myStatusValue & KNutNet::OB; // OB = UPS runs on battery if ((myRuntimeValue != m_runtimeValue) || (myStatusBatValue != m_statusBatValue)) { // when runtime is changed or flags OB is changed we must repaint icons // when OB is changed same items in icon will change color @@ -367,11 +372,11 @@ void KNutDock::repaintDock (const bool always) { if ((m_activeUpsInfo->upsNet->getState() == KNutNet::Connecting) || (m_activeUpsInfo->upsNet->getState() == KNutNet::HostLookup)) m_dataOk = connecting; - else m_dataOk = idle; - } + else m_dataOk = idle; + } if ((m_dataOk != m_dataOkOld) or always) { toolTip(0, -1, 0, 0); - m_dataOkOld=m_dataOk; + m_dataOkOld=m_dataOk; if (m_dataOk == connecting) setPixmap(m_connectPix); else { if (m_dataOk == error) setPixmap(m_errorPix); @@ -436,7 +441,7 @@ void KNutDock::toolTip (int runtime, int status, int batteryCharge, int upsLoad if (status & KNutNet::OFF) { text += i18n("UPS Of line"); } - } + } } if (status & KNutNet::LB) { @@ -575,18 +580,18 @@ void KNutDock::paintEvent (QPaintEvent *e) { // painter.begin(); if (m_statusValue & KNutNet::OL) { // ONLINE - icon of UPS painter.setPen(Qt::black); - paintNumbers (m_upsLoadValue, -2, 15, &painter ); + paintNumbers (m_upsLoadValue, (width()/-11), ((float) width()/(float) 1.46666666667), &painter, ((float) width()/(float) 22) ); } else { // OFFLINE icon of battery if (m_batteryChargeValue != knc::numberVarError) { if (m_batteryChargeValue < 40) painter.setPen(Qt::red); else painter.setPen(Qt::black); - paintNumbers(m_batteryChargeValue,-2,16,&painter); + paintNumbers(m_batteryChargeValue,(width()/-11),((float) width()/(float) 1.375),&painter, ((float) width()/(float) 22)); } else { painter.setPen(Qt::black); - paintDash (3,16,&painter); - paintDash (8,16,&painter); + paintDash (((float) width()/(float) 7.33333333333),((float) width()/(float) 1.375),&painter, ((float) width()/(float) 22)); + paintDash (((float) width()/(float) 2.75),((float) width()/(float) 1.375),&painter, ((float) width()/(float) 22)); } } // painter.end(); @@ -660,12 +665,12 @@ void KNutDock::paintCharge (int charge ) { if (charge != knc::numberVarError) { if (charge < 40) paint.setPen(Qt::red); else paint.setPen(Qt::black); - paintNumbers(charge,8,2,&paint); + paintNumbers(charge,8,2,&paint, 1); } else { paint.setPen(Qt::black); - paintDash (13,2,&paint); - paintDash (18,2,&paint); + paintDash (13,2,&paint, 1); + paintDash (18,2,&paint, 1); } } else { @@ -673,7 +678,7 @@ void KNutDock::paintCharge (int charge ) { if (charge != knc::numberVarError) { if (charge < 40) paint.setPen(Qt::red); else paint.setPen(Qt::black); - paintNumbers(charge,-2,16,&paint); + paintNumbers(charge,-2,16,&paint, 1); if (charge < 40) paint.setPen(Qt::red); else { @@ -688,8 +693,8 @@ void KNutDock::paintCharge (int charge ) { } else { paint.setPen(Qt::black); - paintDash (3,16,&paint); - paintDash (8,16,&paint); + paintDash (3,16,&paint, 1); + paintDash (8,16,&paint, 1); } } @@ -777,16 +782,16 @@ void KNutDock::paintRuntime (int runtime, int status ) { int min = abs(runtime/60); int sec = runtime - (min*60); - paintNumber(1,11, abs(min/10) ,&paint); - paintNumber(6,11,min-((abs(min/10))*10) ,&paint); - paintNumber(13,11, abs(sec/10) ,&paint); - paintNumber(18,11,sec-((abs(sec/10))*10) ,&paint); + paintNumber(1,11, abs(min/10) ,&paint, 1); + paintNumber(6,11,min-((abs(min/10))*10) ,&paint, 1); + paintNumber(13,11, abs(sec/10) ,&paint, 1); + paintNumber(18,11,sec-((abs(sec/10))*10) ,&paint, 1); } else { - paintDash (1,11,&paint); - paintDash (6,11,&paint); - paintDash (13,11,&paint); - paintDash (18,11,&paint); + paintDash (1,11,&paint, 1); + paintDash (6,11,&paint, 1); + paintDash (13,11,&paint, 1); + paintDash (18,11,&paint, 1); } paint.drawLine (11,12,11,13); paint.drawLine (11,15,11,16); @@ -828,7 +833,7 @@ void KNutDock::paintLoad (int load ) { -void KNutDock::paintNumbers (int numbers, int x, int y, QPainter* p ) { +void KNutDock::paintNumbers (int numbers, int x, int y, QPainter* p, float sizeMult ) { bool first = false; if (numbers > 199) numbers = 199; @@ -836,87 +841,96 @@ void KNutDock::paintNumbers (int numbers, int x, int y, QPainter* p ) { if (numbers != knc::numberVarError) { if (numbers > 99) { - paintNumber (x,y,1,p); + paintNumber (x,y,1,p,sizeMult); numbers -= 100; first=true; } int second = abs (numbers/10); int third = numbers - (second * 10); - if ((second != 0) || (first)) paintNumber (x+5,y,second,p); - paintNumber (x+10,y,third,p); + if ((second != 0) || (first)) paintNumber (((float) x+(5*sizeMult)),y,second,p,sizeMult); + paintNumber (((float) x+(10*sizeMult)),y,third,p,sizeMult); } else { p->setPen(Qt::black); - paintDash (x+5,y,p); - paintDash (x+10,y,p); + paintDash (((float) x+(5*sizeMult)),y,p,sizeMult); + paintDash (((float) x+(10*sizeMult)),y,p,sizeMult); } } -void KNutDock::paintDash (int x, int y, QPainter *p) { - - p->drawLine(x,y+3,x+3,y+3); +void KNutDock::paintDash (int x, int y, QPainter *p, float sizeMult) { + QPen oldPen = p->pen(); + QPen newPen; + newPen.setWidth(((float) (oldPen.width()+1)*sizeMult)-1); + p->setPen(newPen); + p->drawLine(x,((float) y+(3*sizeMult)),((float) x+(3*sizeMult)),((float) y+(3*sizeMult))); + p->setPen(oldPen); } -void KNutDock::paintNumber (int x, int y, int number, QPainter *p) { +void KNutDock::paintNumber (int x, int y, int number, QPainter *p, float sizeMult) { // x and y are left top corner + QPen oldPen = p->pen(); + QPen newPen; + newPen.setWidth(((float) (oldPen.width()+1)*sizeMult)-1); + p->setPen(newPen); if ((number > -1) && (number < 10)) { // painting - kreslim switch (number) { case 0: - p->drawRect(x,y,4,7); + p->drawRect(x,y,((float) 4*sizeMult),((float) 7*sizeMult)); break; case 1: - p->drawLine (x+3,y,x+3,y+6); + p->drawLine (((float) x+(3*sizeMult)),y,((float) x+(3*sizeMult)),((float) y+(6*sizeMult))); break; case 2: - p->drawLine(x,y,x+3,y); - p->lineTo(x+3,y+3); - p->lineTo(x,y+3); - p->lineTo(x,y+6); - p->lineTo(x+3,y+6); + p->drawLine(x,y,((float) x+(3*sizeMult)),y); + p->lineTo(((float) x+(3*sizeMult)),((float) y+(3*sizeMult))); + p->lineTo(x,((float) y+(3*sizeMult))); + p->lineTo(x,((float) y+(6*sizeMult))); + p->lineTo(((float) x+(3*sizeMult)),((float) y+(6*sizeMult))); break; case 3: - p->drawLine(x,y,x+3,y); - p->lineTo(x+3,y+6); - p->lineTo(x,y+6); - p->drawLine(x,y+3,x+3,y+3); + p->drawLine(x,y,((float) x+(3*sizeMult)),y); + p->lineTo(((float) x+(3*sizeMult)),((float) y+(6*sizeMult))); + p->lineTo(x,((float) y+(6*sizeMult))); + p->drawLine(x,((float) y+(3*sizeMult)),((float) x+(3*sizeMult)),((float) y+(3*sizeMult))); break; case 4: - p->drawLine(x,y,x,y+3); - p->lineTo(x+3,y+3); - p->drawLine (x+3,y,x+3,y+6); + p->drawLine(x,y,x,((float) y+(3*sizeMult))); + p->lineTo(((float) x+(3*sizeMult)),((float) y+(3*sizeMult))); + p->drawLine (((float) x+(3*sizeMult)),y,((float) x+(3*sizeMult)),((float) y+(6*sizeMult))); break; case 5: - p->drawLine(x+3,y,x,y); - p->lineTo(x,y+3); - p->lineTo(x+3,y+3); - p->lineTo(x+3,y+6); - p->lineTo(x,y+6); + p->drawLine(((float) x+(3*sizeMult)),y,x,y); + p->lineTo(x,((float) y+(3*sizeMult))); + p->lineTo(((float) x+(3*sizeMult)),((float) y+(3*sizeMult))); + p->lineTo(((float) x+(3*sizeMult)),((float) y+(6*sizeMult))); + p->lineTo(x,((float) y+(6*sizeMult))); break; case 6: - p->drawRect(x,y+3,4,4); - p->drawLine(x,y+3,x,y); - p->lineTo(x+3,y); + p->drawRect(x,((float) y+(3*sizeMult)),((float) 4*sizeMult),((float) 4*sizeMult)); + p->drawLine(x,((float) y+(3*sizeMult)),x,y); + p->lineTo(((float) x+(3*sizeMult)),y); break; case 7: - p->drawLine(x,y,x+3,y); - p->lineTo(x+3,y+6); + p->drawLine(x,y,((float) x+(3*sizeMult)),y); + p->lineTo(((float) x+(3*sizeMult)),((float) y+(6*sizeMult))); break; case 8: - p->drawRect(x,y,4,7); - p->drawLine(x,y+3,x+3,y+3); + p->drawRect(x,y,((float) 4*sizeMult),((float) 7*sizeMult)); + p->drawLine(x,((float) y+(3*sizeMult)),((float) x+(3*sizeMult)),((float) y+(3*sizeMult))); break; case 9: - p->drawRect(x,y,4,4); - p->drawLine(x+3,y+3,x+3,y+6); - p->lineTo(x,y+6); + p->drawRect(x,y,((float) 4*sizeMult),((float) 4*sizeMult)); + p->drawLine(((float) x+(3*sizeMult)),((float) y+(3*sizeMult)),((float) x+(3*sizeMult)),((float) y+(6*sizeMult))); + p->lineTo(x,((float) y+(6*sizeMult))); break; } - } + } + p->setPen(oldPen); } diff --git a/src/knutdock.h b/src/knutdock.h index 15fa69c..7a798bd 100755 --- a/src/knutdock.h +++ b/src/knutdock.h @@ -1,7 +1,7 @@ /*************************************************************************** knutdock.h - description ------------------- - begin : Út zari 23 2003 + begin : �t zari 23 2003 copyright : (C) 2003 by Daniel Prynych email : Daniel.Prynych@alo.cz ***************************************************************************/ @@ -164,7 +164,7 @@ class KNutDock : public KSystemTray { signals: /**This signal is emited when end of application was selected in menu. * Tento signal je vyslan pokud bylo vybrano v menu ukonceni aplikace. - * + * * * @since 0.1 **/ @@ -173,7 +173,7 @@ class KNutDock : public KSystemTray { /** * Tento signal je vyslan pokud bylo vybrano v menu minimalizace aplikace. * Tento signal is emited when minimize application was selected in menu. - * + * * * @since 0.1 **/ @@ -372,7 +372,7 @@ class KNutDock : public KSystemTray { * * @since 0.2 **/ - void paintNumbers (int numbers, int x, int y, QPainter* p ); //x,y levy horni roh cisla 1 + void paintNumbers (int numbers, int x, int y, QPainter* p, float sizeMult ); //x,y levy horni roh cisla 1 /** * @internal @@ -385,7 +385,7 @@ class KNutDock : public KSystemTray { * * @since 0.1 **/ - void paintNumber (int x, int y, int number, QPainter *p); + void paintNumber (int x, int y, int number, QPainter *p, float sizeMult); /** * @internal @@ -410,7 +410,7 @@ class KNutDock : public KSystemTray { * * @since 0.1 **/ - void paintDash (int x, int y, QPainter *p); + void paintDash (int x, int y, QPainter *p, float sizeMult); /** @@ -481,6 +481,8 @@ class KNutDock : public KSystemTray { **/ void clearValues(void); + void resizeEvent ( QResizeEvent * ); + KNutUpsData* m_upsRecords; KNutVarData::SettingDataDef* m_settingData; // v teto strukture jsou ulozeny promene ktere nastavuji konfiguraci