Sfoglia il codice sorgente

Merge pull request #264 from medInria/qstyle-basestyle-changes

Set proper base style for the custom proxy styles
Julien Finet 12 anni fa
parent
commit
ec26d40777
2 ha cambiato i file con 17 aggiunte e 5 eliminazioni
  1. 4 2
      Libs/Widgets/ctkCheckBox.cpp
  2. 13 3
      Libs/Widgets/ctkCollapsibleGroupBox.cpp

+ 4 - 2
Libs/Widgets/ctkCheckBox.cpp

@@ -18,6 +18,7 @@
 
 =========================================================================*/
 // QT includes
+#include <QApplication>
 #include <QProxyStyle>
 #include <QStyleOption>
 
@@ -135,8 +136,9 @@ ctkCheckBoxPrivate::ctkCheckBoxPrivate(ctkCheckBox &object)
 void ctkCheckBoxPrivate::init()
 {
   Q_Q(ctkCheckBox);
-  this->iconStyle = new ctkCheckBoxStyle(0);
-  this->iconStyle->setParent(q);
+  QWidget* parent = q->parentWidget();
+  QStyle* parentStyle = (parent) ? parent->style() : QApplication::style();
+  this->iconStyle = new ctkCheckBoxStyle(parentStyle);
   q->setStyle(this->iconStyle);
 }
 

+ 13 - 3
Libs/Widgets/ctkCollapsibleGroupBox.cpp

@@ -19,6 +19,7 @@
 =========================================================================*/
 
 // Qt includes
+#include <QApplication>
 #include <QDebug>
 #include <QChildEvent>
 #include <QMouseEvent>
@@ -65,8 +66,6 @@ class ctkCollapsibleGroupBoxStyle:public QProxyStyle
     return this->QProxyStyle::pixelMetric(metric, option, widget);
   }
 };
-#else
-
 #endif
 
 //-----------------------------------------------------------------------------
@@ -95,6 +94,11 @@ public:
   /// as we need to do special processing the first time the button is
   /// setVisible, we track its created state with the variable
   bool     IsStateCreated;
+
+#if QT_VERSION >= 0x040600
+  /// Pointer to keep track of the proxy style
+  ctkCollapsibleGroupBoxStyle* GroupBoxStyle;
+#endif
 };
 
 //-----------------------------------------------------------------------------
@@ -106,6 +110,9 @@ ctkCollapsibleGroupBoxPrivate::ctkCollapsibleGroupBoxPrivate(
   this->IsStateCreated = false;
   this->MaxHeight = 0;
   this->CollapsedHeight = 14;
+#if QT_VERSION >= 0x040600
+  this->GroupBoxStyle = 0;
+#endif
 }
 
 //-----------------------------------------------------------------------------
@@ -117,7 +124,10 @@ void ctkCollapsibleGroupBoxPrivate::init()
 
   this->MaxHeight = q->maximumHeight();
 #if QT_VERSION >= 0x040600
-  q->setStyle(new ctkCollapsibleGroupBoxStyle(0));
+  QWidget* parent = q->parentWidget();
+  QStyle* parentStyle = (parent) ? parent->style() : QApplication::style();
+  this->GroupBoxStyle = new ctkCollapsibleGroupBoxStyle(parentStyle);
+  q->setStyle(this->GroupBoxStyle);
 #else
   this->setStyleSheet(
     "ctkCollapsibleGroupBox::indicator:checked{"