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

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/desktop/shell
From:       Chani Armitage <chanika () gmail ! com>
Date:       2010-04-30 21:34:40
Message-ID: 20100430213440.24861AC8AA () svn ! kde ! org
[Download RAW message or body]

SVN commit 1121228 by chani:

turn m_view into a Dialog and reduce m_containment use

this coincidentally fixes my mystery geometry bug... although it
introduces a funny double-border at the bottom of the window.

 M  +23 -54    controllerwindow.cpp  
 M  +2 -4      controllerwindow.h  


--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/controllerwindow.cpp \
#1121227:1121228 @@ -23,6 +23,7 @@
 
 #include <QApplication>
 #include <QBoxLayout>
+#include <QDesktopWidget>
 #include <QPainter>
 
 #include <kwindowsystem.h>
@@ -32,7 +33,7 @@
 #include <Plasma/Corona>
 #include <Plasma/Theme>
 #include <Plasma/FrameSvg>
-#include <Plasma/View>
+#include <Plasma/Dialog>
 #include <Plasma/WindowEffects>
 
 #include "widgetsexplorer/widgetexplorer.h"
@@ -87,8 +88,8 @@
         //FIXME the qt4.6 comment below applies here too
     }
     if (m_widgetExplorer) {
-        if (m_containment) {
-            m_widgetExplorer->corona()->removeOffscreenWidget(m_widgetExplorer);
+        if (m_corona) {
+            m_corona->removeOffscreenWidget(m_widgetExplorer);
         }
 
         if (m_widgetExplorer->scene()) {
@@ -112,19 +113,23 @@
 
 void ControllerWindow::setContainment(Plasma::Containment *containment)
 {
-    if (!containment) {
+    if (containment == m_containment) {
         return;
     }
+    m_containment = containment;
 
     if (m_containment) {
         disconnect(m_containment, 0, this, 0);
     }
 
-    m_containment = containment;
+    if (!containment) {
+        return;
+    }
     m_corona = m_containment->corona();
 
     if (m_view) {
-        m_view->setScreen(m_containment->screen(), m_containment->desktop());
+        //FIXME
+        //m_view->setScreen(m_containment->screen(), m_containment->desktop());
     }
 
     if (m_widgetExplorer) {
@@ -139,12 +144,13 @@
 
 QSize ControllerWindow::sizeHint() const
 {
-    if (!m_containment) {
+    if (!m_view) {
         return QWidget::sizeHint();
     }
+    //FIXME is this right?
+    int screen = QApplication::desktop()->screenNumber(m_view);
+    QRect screenGeom = Kephal::ScreenUtils::screenGeometry(screen);
 
-    QRect screenGeom = Kephal::ScreenUtils::screenGeometry(m_containment->screen());
-
     switch (m_location) {
     case Plasma::LeftEdge:
     case Plasma::RightEdge:
@@ -244,16 +250,11 @@
 void ControllerWindow::initView()
 {
     if (!m_view) {
-        m_view = new Plasma::View(0, this);
+        m_view = new Plasma::Dialog(0);
         m_view->setFocus();
-        m_view->setScene(m_containment->corona());
-        m_view->setScreen(m_containment->screen(), m_containment->desktop());
 
-        m_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-        m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
         m_view->setStyleSheet("background: transparent; border: none;");
 
-        m_view->installEventFilter(this);
         m_layout->addWidget(m_view);
     }
 }
@@ -265,25 +266,25 @@
     }
 
     initView();
+    //FIXME
+    //m_view->setScreen(m_containment->screen(), m_containment->desktop());
 
     if (!m_widgetExplorer) {
         m_widgetExplorer = new Plasma::WidgetExplorer(orientation());
         m_watchedWidget = m_widgetExplorer;
         m_widgetExplorer->setContainment(m_containment);
         m_widgetExplorer->populateWidgetList();
-        m_widgetExplorer->resize(m_view->size());
 
         m_containment->corona()->addOffscreenWidget(m_widgetExplorer);
-        m_view->setSceneRect(m_widgetExplorer->geometry());
+        m_view->setGraphicsWidget(m_widgetExplorer);
 
-        m_widgetExplorer->installEventFilter(this);
         m_widgetExplorer->setIconSize(KIconLoader::SizeHuge);
 
         connect(m_widgetExplorer, SIGNAL(closeClicked()), this, SLOT(close()));
     } else {
         m_widgetExplorer->setOrientation(orientation());
         m_watchedWidget = m_widgetExplorer;
-        m_view->setSceneRect(m_widgetExplorer->geometry());
+        m_view->setGraphicsWidget(m_widgetExplorer);
     }
 
     if (orientation() == Qt::Horizontal) {
@@ -297,27 +298,22 @@
 
 void ControllerWindow::showActivityManager()
 {
-    if (!m_containment) {
-        return;
-    }
     initView();
 
     if (!m_activityManager) {
         m_activityManager = new ActivityManager(orientation());
         m_watchedWidget = m_activityManager;
-        m_activityManager->resize(m_view->size());
 
-        m_containment->corona()->addOffscreenWidget(m_activityManager);
-        m_view->setSceneRect(m_activityManager->geometry());
+        m_corona->addOffscreenWidget(m_activityManager);
+        m_view->setGraphicsWidget(m_activityManager);
 
-        m_activityManager->installEventFilter(this);
         m_activityManager->setIconSize(KIconLoader::SizeHuge);
 
         connect(m_activityManager, SIGNAL(closeClicked()), this, SLOT(close()));
     } else {
         m_activityManager->setOrientation(orientation());
         m_watchedWidget = m_activityManager;
-        m_view->setSceneRect(m_activityManager->geometry());
+        m_view->setGraphicsWidget(m_activityManager);
     }
 
     if (orientation() == Qt::Horizontal) {
@@ -401,31 +397,4 @@
     }
 }
 
-bool ControllerWindow::eventFilter(QObject *watched, QEvent *event)
-{
-    //if widgetsExplorer moves or resizes, then the view has to adjust
-    if ((watched == (QObject*)m_watchedWidget) && (event->type() == \
                QEvent::GraphicsSceneResize || event->type() == \
                QEvent::GraphicsSceneMove)) {
-        m_view->resize(m_watchedWidget->size().toSize());
-        m_view->setSceneRect(m_watchedWidget->geometry());
-        //kDebug() << "sizes are:" << m_widgetExplorer->size() << m_view->size() << \
                size();
-    }
-
-    //if the view resizes, then the widgetexplorer has to be resized
-    if (watched == m_view && event->type() == QEvent::Resize) {
-        QResizeEvent *resizeEvent = static_cast<QResizeEvent *>(event);
-        m_watchedWidget->resize(resizeEvent->size());
-        m_view->setSceneRect(m_watchedWidget->geometry());
-
-        QSize borderSize = size() - m_layout->contentsRect().size();
-
-        if (orientation() == Qt::Horizontal) {
-            resize(width(), m_view->height() + borderSize.height());
-        } else {
-            resize(m_view->width() + borderSize.width(), height());
-        }
-    }
-
-    return false;
-}
-
 #include "controllerwindow.moc"
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/controllerwindow.h \
#1121227:1121228 @@ -33,7 +33,7 @@
     class Corona;
     class FrameSvg;
     class WidgetExplorer;
-    class View;
+    class Dialog;
 } // namespace Plasma
 
 class ActivityManager;
@@ -62,8 +62,6 @@
 
     Plasma::FrameSvg *background() const;
 
-    bool eventFilter(QObject *watched, QEvent *event);
-
 protected:
     void resizeEvent(QResizeEvent *event);
     void paintEvent(QPaintEvent *event);
@@ -81,7 +79,7 @@
     Plasma::FrameSvg *m_background;
     Plasma::Containment *m_containment;
     Plasma::Corona *m_corona;
-    Plasma::View *m_view;
+    Plasma::Dialog *m_view;
     QGraphicsWidget *m_watchedWidget;
     ActivityManager *m_activityManager;
     Plasma::WidgetExplorer *m_widgetExplorer;


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

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