[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