[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdevelop/src
From:       Alexander Dymo <cloudtemple () mksat ! net>
Date:       2005-04-13 21:51:08
Message-ID: 20050413215108.759E2492 () office ! kde ! org
[Download RAW message or body]

CVS commit by dymo: 

React on icon changes in parts (enables state notification).


  M +3 -9      simplemainwindow.cpp   1.6
  M +26 -11    newui/dmainwindow.cpp   1.3
  M +1 -0      newui/dmainwindow.h   1.2


--- kdevelop/src/newui/dmainwindow.cpp  #1.2:1.3
@@ -98,4 +98,5 @@ void DMainWindow::addWidget(DTabWidget *
     }
     m_widgets.append(widget);
+    m_widgetTabs[widget] = tab;
     widget->installEventFilter(this);
     tab->showPage(widget);
@@ -107,7 +108,7 @@ void DMainWindow::removeWidget(QWidget *
         return; //not a widget in main window
     
-    for (QValueList<DTabWidget*>::iterator it = m_tabs.begin(); it != m_tabs.end(); ++it)
+    if (m_widgetTabs.contains(widget))
     {
-        DTabWidget *tab = *it;
+        DTabWidget *tab = m_widgetTabs[widget];
         if (tab->indexOf(widget) >= 0)
         {
@@ -122,5 +123,7 @@ void DMainWindow::removeWidget(QWidget *
         }
     }
+    
     m_widgets.remove(widget);
+    m_widgetTabs.remove(widget);
 }
 
@@ -148,12 +151,9 @@ void DMainWindow::invalidateActiveTabWid
     if (!m_widgets.contains(focused))
         return;
-    for (QValueList<DTabWidget*>::iterator it = m_tabs.begin(); it != m_tabs.end(); ++it)
+    if (m_widgetTabs.contains(focused))
     {
-        DTabWidget *tab = *it;
+        DTabWidget *tab = m_widgetTabs[focused];
         if (tab->indexOf(focused) >= 0)
-        {
             m_activeTabWidget = tab;
-            return;
-        }
     }
 }
@@ -172,9 +172,24 @@ DTabWidget *DMainWindow::createTab()
 bool DMainWindow::eventFilter(QObject *obj, QEvent *ev)
 {
-    if ((m_currentWidget != (QWidget*)obj) && 
-            m_widgets.contains((QWidget*)obj) && (ev->type() == QEvent::FocusIn))
+    QWidget *w = (QWidget*)obj;
+    if (!m_widgets.contains(w))
+        return KParts::MainWindow::eventFilter(obj, ev);
+    
+    if ((m_currentWidget != w) && (ev->type() == QEvent::FocusIn))
     {
-        m_currentWidget = (QWidget*)obj;
-        emit widgetChanged((QWidget*)obj);
+        m_currentWidget = w;
+        emit widgetChanged(w);
+    }
+    else if (ev->type() == QEvent::IconChange)
+    {
+        if (m_widgetTabs.contains(w))
+        {
+            DTabWidget *tab = m_widgetTabs[w];
+            tab->setTabIconSet(w, w->icon() ? (*(w->icon())) : QPixmap());
+        }
+    }
+    else if (ev->type() == QEvent::CaptionChange)
+    {
+        kdDebug() << "caption change" << endl;
     }
 

--- kdevelop/src/newui/dmainwindow.h  #1.1:1.2
@@ -81,4 +81,5 @@ protected:
     
     QValueList<QWidget*> m_widgets;
+    QMap<QWidget*, DTabWidget*> m_widgetTabs;
     QWidget *m_currentWidget;
 

--- kdevelop/src/simplemainwindow.cpp  #1.5:1.6
@@ -179,13 +179,6 @@ void SimpleMainWindow::raiseView(QWidget
         dock->raiseWidget(view);
     }
-    else if (m_widgets.contains(view))
-    {
-        for (QValueList<DTabWidget*>::const_iterator it = m_tabs.begin(); it != m_tabs.end(); ++it)
-            if ((*it)->indexOf(view) != -1)
-            {
-                kdDebug() << "show page" << endl;
-                (*it)->showPage(view);
-            }
-    }
+    else if (m_widgets.contains(view) && m_widgetTabs.contains(view))
+        m_widgetTabs[view]->showPage(view);
 }
 
@@ -295,4 +288,5 @@ void SimpleMainWindow::documentChangedSt
     QWidget * widget = EditorProxy::getInstance()->topWidgetForPart(
         PartController::getInstance()->partForURL(url));
+    kdDebug() << "SimpleMainWindow::documentChangedState: " << widget << endl;
     if (widget)
     {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic