aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/notifier/notifierwindowtabs.cpp
diff options
context:
space:
mode:
authorGravatar Alexey Uzhva2007-01-06 17:52:59 +0000
committerGravatar Alexey Uzhva2007-01-06 17:52:59 +0000
commit28fe745c05121fbee9ca29330e2386065557ae4d (patch)
treefe2370470f4741fb457fc6ba34ce8959f63882f9 /src/modules/notifier/notifierwindowtabs.cpp
parentpo files (diff)
downloadKVIrc-28fe745c05121fbee9ca29330e2386065557ae4d.tar.gz
KVIrc-28fe745c05121fbee9ca29330e2386065557ae4d.tar.bz2
KVIrc-28fe745c05121fbee9ca29330e2386065557ae4d.zip
ru translation, notifier fix
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@111 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/notifier/notifierwindowtabs.cpp')
-rw-r--r--src/modules/notifier/notifierwindowtabs.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/modules/notifier/notifierwindowtabs.cpp b/src/modules/notifier/notifierwindowtabs.cpp
index 51e5bfbca..bbde2b6ae 100644
--- a/src/modules/notifier/notifierwindowtabs.cpp
+++ b/src/modules/notifier/notifierwindowtabs.cpp
@@ -247,6 +247,7 @@ void KviNotifierWindowTabs::addMessage(KviWindow * pWnd, KviNotifierMessage * me
if (!m_tabMap.contains(pWnd)) {
m_tabMap.insert(pWnd, tab = new KviNotifierWindowTab(pWnd, sender));
m_tabPtrList.append(tab);
+ setFocusOn(tab);
} else {
tab = m_tabMap[pWnd];
}
@@ -501,6 +502,48 @@ void KviNotifierWindowTabs::setFocusOn(KviNotifierWindowTab * tab)
m_lastVisitedTabPtrList.insert(0, tab);
+ //scrollTabsRight();
+
+ QPtrListIterator<KviNotifierWindowTab> tabIterator (m_tabPtrList);
+
+
+ tabIterator.toFirst();
+
+ int i = 0;
+ while(m_iTabToStartFrom!=i) {
+ i++;
+ ++tabIterator;
+ if(tabIterator.current()==m_pTabFocused)
+ {
+ m_iTabToStartFrom=i;
+ }
+ }
+ int iWidth = 0;
+ QPtrListIterator<KviNotifierWindowTab> startIterator (m_tabPtrList);
+
+ i=0;
+ while(m_iTabToStartFrom!=i) {
+ i++;
+ ++startIterator;
+ }
+
+ KviNotifierWindowTab * pTab = tabIterator.current();
+ while ( pTab )
+ {
+ iWidth+=pTab->width();
+ while(iWidth>=m_rctTabs.width())
+ {
+ m_iTabToStartFrom++;
+ iWidth-=startIterator.current()->width();
+ ++startIterator;
+ }
+
+ if(pTab == m_pTabFocused ) break;
+
+ ++tabIterator;
+ pTab = tabIterator.current();
+ }
+
needToRedraw();
g_pNotifierWindow->update();