diff options
| author | 2007-01-06 17:52:59 +0000 | |
|---|---|---|
| committer | 2007-01-06 17:52:59 +0000 | |
| commit | 28fe745c05121fbee9ca29330e2386065557ae4d (patch) | |
| tree | fe2370470f4741fb457fc6ba34ce8959f63882f9 /src/modules/notifier/notifierwindowtabs.cpp | |
| parent | po files (diff) | |
| download | KVIrc-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.cpp | 43 |
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(); |
