diff options
| -rw-r--r-- | data/pics/coresmall/kcs_notupdate.png | bin | 0 -> 948 bytes | |||
| -rw-r--r-- | data/pics/coresmall/kcs_update.png | bin | 0 -> 3572 bytes | |||
| -rw-r--r-- | src/kvirc/kernel/kvi_iconmanager.cpp | 2 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_iconmanager.h | 4 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_statusbarapplet.cpp | 101 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_statusbarapplet.h | 16 |
6 files changed, 121 insertions, 2 deletions
diff --git a/data/pics/coresmall/kcs_notupdate.png b/data/pics/coresmall/kcs_notupdate.png Binary files differnew file mode 100644 index 000000000..900dd5ca5 --- /dev/null +++ b/data/pics/coresmall/kcs_notupdate.png diff --git a/data/pics/coresmall/kcs_update.png b/data/pics/coresmall/kcs_update.png Binary files differnew file mode 100644 index 000000000..05e70daa9 --- /dev/null +++ b/data/pics/coresmall/kcs_update.png diff --git a/src/kvirc/kernel/kvi_iconmanager.cpp b/src/kvirc/kernel/kvi_iconmanager.cpp index cdbb8d300..2497888f8 100644 --- a/src/kvirc/kernel/kvi_iconmanager.cpp +++ b/src/kvirc/kernel/kvi_iconmanager.cpp @@ -340,6 +340,8 @@ static const char * g_szIconNames[KVI_NUM_SMALL_ICONS]= "refresh", //289 "theme", // 290 "screenshot" // 291 + "update" // 292 + "notupdate" // 293 }; KviIconWidget::KviIconWidget() diff --git a/src/kvirc/kernel/kvi_iconmanager.h b/src/kvirc/kernel/kvi_iconmanager.h index 662b47f40..ede7d23e5 100644 --- a/src/kvirc/kernel/kvi_iconmanager.h +++ b/src/kvirc/kernel/kvi_iconmanager.h @@ -328,8 +328,10 @@ #define KVI_SMALLICON_REFRESH 289 #define KVI_SMALLICON_THEME 290 #define KVI_SMALLICON_SCREENSHOT 291 +#define KVI_SMALLICON_UPDATE 292 +#define KVI_SMALLICON_NOTUPDATE 293 -#define KVI_NUM_SMALL_ICONS 292 +#define KVI_NUM_SMALL_ICONS 294 #define KVI_BIGICON_DISCONNECTED "kvi_bigicon_disconnected.png" diff --git a/src/kvirc/ui/kvi_statusbarapplet.cpp b/src/kvirc/ui/kvi_statusbarapplet.cpp index 6315600e2..a400483af 100644 --- a/src/kvirc/ui/kvi_statusbarapplet.cpp +++ b/src/kvirc/ui/kvi_statusbarapplet.cpp @@ -59,7 +59,6 @@ // FIXME: Applets in modules SHOULD be unregistered automatically on unload! /* IDEAS: - - Lag meter - Countdown timer */ @@ -142,6 +141,7 @@ void KviStatusBarApplet::select(bool bSelect) } +// Away applet KviStatusBarAwayIndicator::KviStatusBarAwayIndicator(KviStatusBar * pParent,KviStatusBarAppletDescriptor *pDescriptor) : KviStatusBarApplet(pParent,pDescriptor) { @@ -254,6 +254,7 @@ not_connected: } +// Lag indicator applet KviStatusBarLagIndicator::KviStatusBarLagIndicator(KviStatusBar * pParent,KviStatusBarAppletDescriptor *pDescriptor) : KviStatusBarApplet(pParent,pDescriptor) { @@ -374,6 +375,7 @@ void KviStatusBarLagIndicator::selfRegister(KviStatusBar * pBar) } +// Clock applet KviStatusBarClock::KviStatusBarClock(KviStatusBar * pParent,KviStatusBarAppletDescriptor *pDescriptor) : KviStatusBarApplet(pParent,pDescriptor) { @@ -443,6 +445,7 @@ void KviStatusBarClock::selfRegister(KviStatusBar * pBar) } +// Connection timer applet KviStatusBarConnectionTimer::KviStatusBarConnectionTimer(KviStatusBar * pParent,KviStatusBarAppletDescriptor *pDescriptor) : KviStatusBarApplet(pParent,pDescriptor) { @@ -518,6 +521,7 @@ void KviStatusBarConnectionTimer::selfRegister(KviStatusBar * pBar) } +// Separator applet KviStatusBarSeparator::KviStatusBarSeparator(KviStatusBar * pParent,KviStatusBarAppletDescriptor *pDescriptor) : KviStatusBarApplet(pParent,pDescriptor) { @@ -539,3 +543,98 @@ void KviStatusBarSeparator::selfRegister(KviStatusBar * pBar) __tr2qs("Separator"),"separator",CreateStatusBarSeparator); pBar->registerAppletDescriptor(d); } + + +// Update applet +KviStatusBarUpdateIndicator::KviStatusBarUpdateIndicator(KviStatusBar * pParent,KviStatusBarAppletDescriptor *pDescriptor) +: KviStatusBarApplet(pParent,pDescriptor) +{ + /* + connect(pParent->frame(),SIGNAL(activeContextChanged()),this,SLOT(updateDisplay())); + connect(pParent->frame(),SIGNAL(activeContextStateChanged()),this,SLOT(updateDisplay())); + connect(pParent->frame(),SIGNAL(activeConnectionAwayStateChanged()),this,SLOT(updateDisplay())); + */ + updateDisplay(); + + if(!pixmap()) + setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_NOTUPDATE))); +} + +KviStatusBarUpdateIndicator::~KviStatusBarUpdateIndicator() +{ +} + +void KviStatusBarUpdateIndicator::updateDisplay() +{ + /* + KviIrcContext * c = statusBar()->frame()->activeContext(); + + if(c && c->isConnected()) + { + setPixmap(c->connection()->userInfo()->isAway() ? + *(g_pIconManager->getSmallIcon(KVI_SMALLICON_AWAY)) : *(g_pIconManager->getSmallIcon(KVI_SMALLICON_NOTAWAY))); + } else { + // FIXME: We'd like to appear disabled here... but then we + // no longer get mouse events :/ + setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_NOTAWAY))); + } + */ +} + +KviStatusBarApplet * CreateStatusBarUpdateIndicator(KviStatusBar * pBar,KviStatusBarAppletDescriptor *pDescriptor) +{ + return new KviStatusBarUpdateIndicator(pBar,pDescriptor); +} + +void KviStatusBarUpdateIndicator::selfRegister(KviStatusBar * pBar) +{ + KviStatusBarAppletDescriptor * d = new KviStatusBarAppletDescriptor( + __tr2qs("Update Indicator"),"updateindicator",CreateStatusBarUpdateIndicator,"",*(g_pIconManager->getSmallIcon(KVI_SMALLICON_UPDATE))); + pBar->registerAppletDescriptor(d); +} + +void KviStatusBarUpdateIndicator::mouseDoubleClickEvent(QMouseEvent * e) +{ + if(!(e->button() & Qt::LeftButton))return; + /* + KviIrcConnection * c = statusBar()->frame()->activeConnection(); + if(!c)return; + if(c->state() != KviIrcConnection::Connected)return; + QString command; + if(m_bAwayOnAllContexts) + command = "if($away)back -a; else away -a"; + else + command = "if($away)back; else away"; + KviKvsScript::run(command,c->console()); + */ +} + +QString KviStatusBarUpdateIndicator::tipText(const QPoint &) +{ + /* + KviIrcConnection * c = statusBar()->frame()->activeConnection(); + QString ret = "<center><b>"; + if(!c)goto not_connected; + if(c->state() != KviIrcConnection::Connected)goto not_connected; + if(c->userInfo()->isAway()) + { + QString tmp = KviTimeUtils::formatTimeInterval(kvi_unixTime() - c->userInfo()->awayTime(),KviTimeUtils::NoLeadingEmptyIntervals); + ret += __tr2qs("Away since"); + ret += ' '; + ret += tmp; + ret += "</b><br>"; + ret += __tr2qs("Double click to leave away mode"); + } else { + ret += __tr2qs("Not away"); + ret += "</b><br>"; + ret += __tr2qs("Double click to enter away mode"); + } + ret += "</center>"; + return ret; + +not_connected: + ret += __tr2qs("Not connected"); + ret += "</b></center>"; + return ret; + */ +} diff --git a/src/kvirc/ui/kvi_statusbarapplet.h b/src/kvirc/ui/kvi_statusbarapplet.h index 5e4043ce4..c3ea2e294 100644 --- a/src/kvirc/ui/kvi_statusbarapplet.h +++ b/src/kvirc/ui/kvi_statusbarapplet.h @@ -194,4 +194,20 @@ protected slots: }; +class KviStatusBarUpdateIndicator : public KviStatusBarApplet +{ + Q_OBJECT +public: + KviStatusBarUpdateIndicator(KviStatusBar * pParent,KviStatusBarAppletDescriptor *pDescriptor); + virtual ~KviStatusBarUpdateIndicator(); +public: + static void selfRegister(KviStatusBar * pBar); +protected: + virtual void mouseDoubleClickEvent(QMouseEvent *e); + virtual QString tipText(const QPoint &); +protected slots: + void updateDisplay(); +}; + + #endif //!_KVI_STATUSBARAPPLET_H_ |
