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

List:       kde-commits
Subject:    KDE/kdelibs/kate/part
From:       Dominik Haumann <dhdev () gmx ! de>
Date:       2007-02-02 11:23:51
Message-ID: 1170415431.878907.24289.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 629331 by dhaumann:

make minimum size for KateViewBar work. This is done be overwriting
QStackedLayout::sizeHint and QStackedLayout::minimumSize.


 M  +26 -5     kateviewhelpers.cpp  
 M  +13 -2     kateviewhelpers.h  


--- trunk/KDE/kdelibs/kate/part/kateviewhelpers.cpp #629330:629331
@@ -1355,8 +1355,8 @@
 }
 
 
+//BEGIN Kate Vier Bar related classes
 
-
 KateViewBarWidget::KateViewBarWidget (KateViewBar *viewBar)
  : QWidget (), m_viewBar (viewBar)
 {
@@ -1398,18 +1398,37 @@
 
 
 
+KateStackedLayout::KateStackedLayout(QWidget* parent)
+  : QStackedLayout(parent)
+{}
 
+QSize KateStackedLayout::sizeHint() const
+{
+  if (currentWidget())
+    return currentWidget()->sizeHint();
+  return QStackedLayout::sizeHint();
+}
 
+QSize KateStackedLayout::minimumSize() const
+{
+  if (currentWidget())
+    return currentWidget()->minimumSize();
+  return QStackedLayout::minimumSize();
+}
+
+
+
 KateViewBar::KateViewBar (KateView *view)
- : QStackedWidget (view), m_view (view)
+ : QWidget (view), m_view (view)
 {
+  m_stack = new KateStackedLayout(this);
   hide ();
 }
 
 void KateViewBar::addBarWidget (KateViewBarWidget *newBarWidget)
 {
   // add new widget, invisible...
-  addWidget (newBarWidget);
+  m_stack->addWidget (newBarWidget);
 
   kDebug(13025)<<"add barwidget " << newBarWidget <<endl;
 }
@@ -1417,7 +1436,7 @@
 void KateViewBar::showBarWidget (KateViewBarWidget *barWidget)
 {
   // raise correct widget
-  setCurrentWidget (barWidget);
+  m_stack->setCurrentWidget (barWidget);
   kDebug(13025)<<"show barwidget " << barWidget <<endl;
   show ();
 }
@@ -1434,7 +1453,9 @@
     hide();
     return;
   }
-  QStackedWidget::keyPressEvent(event);
+  QWidget::keyPressEvent(event);
 }
 
+//END Kate Vier Bar related classes
+
 // kate: space-indent on; indent-width 2; replace-tabs on;
--- trunk/KDE/kdelibs/kate/part/kateviewhelpers.h #629330:629331
@@ -28,7 +28,7 @@
 #include <QColor>
 #include <QScrollBar>
 #include <QHash>
-#include <QStackedWidget>
+#include <QStackedLayout>
 #include <QMap>
 
 class KateDocument;
@@ -243,10 +243,20 @@
     QWidget *m_centralWidget;
 };
 
-class KateViewBar : public QStackedWidget
+// Helper layout class to always provide minimum size
+class KateStackedLayout : public QStackedLayout
 {
   Q_OBJECT
+public:
+  KateStackedLayout(QWidget* parent);
+  virtual QSize sizeHint() const;
+  virtual QSize minimumSize() const;
+};
 
+class KateViewBar : public QWidget
+{
+  Q_OBJECT
+
   friend class KateViewBarWidget;
 
   public:
@@ -264,6 +274,7 @@
 
   private:
     KateView *m_view;
+    KateStackedLayout *m_stack;
 };
 
 #endif
[prev in list] [next in list] [prev in thread] [next in thread] 

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