Re: [Development] HEADS UP: Changes in QStyle subclasses

2012-11-30 Thread Nurmi J-P
On Nov 24, 2012, at 12:09 PM, Nurmi J-P jpnu...@digia.com wrote:

 Hi all,
 
 Thanks to QStyleFactory and QProxyStyle, it is possible to instantiate and 
 customize any available style. This is not limited to the built-in styles in 
 QtWidgets, but also works fine for any style plugin since it nicely avoids 
 the build time dependency to the corresponding style implementation.
 
 When it comes to the actual style implementations, we have quite a few 
 refactoring ideas on the table. These ideas include class renames, possible 
 merges and inheritance hierarchy changes. Not to mention the possibility of 
 later on pluginizing certain styles to avoid loads of dynamic function 
 resolving. These ideas are not feasible to implement in time for Qt 5.0, and 
 for compatibility reasons cannot be done later if the style implementations 
 remain in the public API.
 
 Hence we would like to take this opportunity to hide the following QStyle 
 subclasses from the public API in Qt 5.0:
 - QFusionStyle
 - QGtkStyle
 - QMacStyle
 - QWindowsCEStyle
 - QWindowsMobileStyle
 - QWindowsStyle
 - QWindowsVistaStyle
 - QWindowsXPStyle
 
 Notice that QCommonStyle will stay public, providing a convenient base for 
 full custom style implementations. We do also realize that QWindowsStyle has 
 been a commonly used base class for custom styles. To address that, we have 
 recently promoted some generic styling code from QWindowsStyle to 
 QCommonStyle, and changed QFusionStyle, QGtkStyle and QMacStyle to inherit 
 QCommonStyle instead. We would like to invite anyone interested in custom 
 styles to give it a try and let us know if any other parts should be promoted 
 too.
 
 --
 J-P Nurmi



FYI, the last change of these has landed just in time for the release 
candidate. My apologies for causing build breaks in the rush.

--
J-P Nurmi

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] HEADS UP: Changes in QStyle subclasses

2012-11-26 Thread Simon Hausmann
On Saturday, November 24, 2012 11:09:26 AM Nurmi J-P wrote:
 Hi all,
 
 Thanks to QStyleFactory and QProxyStyle, it is possible to instantiate and
 customize any available style. This is not limited to the built-in styles
 in QtWidgets, but also works fine for any style plugin since it nicely
 avoids the build time dependency to the corresponding style implementation.
 
 When it comes to the actual style implementations, we have quite a few
 refactoring ideas on the table. These ideas include class renames, possible
 merges and inheritance hierarchy changes. Not to mention the possibility of
 later on pluginizing certain styles to avoid loads of dynamic function
 resolving. These ideas are not feasible to implement in time for Qt 5.0,
 and for compatibility reasons cannot be done later if the style
 implementations remain in the public API.
 
 Hence we would like to take this opportunity to hide the following QStyle
 subclasses from the public API in Qt 5.0: - QFusionStyle
 - QGtkStyle
 - QMacStyle
 - QWindowsCEStyle
 - QWindowsMobileStyle
 - QWindowsStyle
 - QWindowsVistaStyle
 - QWindowsXPStyle
 
 Notice that QCommonStyle will stay public, providing a convenient base for
 full custom style implementations. We do also realize that QWindowsStyle
 has been a commonly used base class for custom styles. To address that, we
 have recently promoted some generic styling code from QWindowsStyle to
 QCommonStyle, and changed QFusionStyle, QGtkStyle and QMacStyle to inherit
 QCommonStyle instead. We would like to invite anyone interested in custom
 styles to give it a try and let us know if any other parts should be
 promoted too.

Sounds like a pretty sensible move.

It would've been nice though to fix the existing usages (like in WebKit) before 
landing the change in qtbase. Now the integration of other modules as well as 
qt5.git is broken :(


Simon
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] HEADS UP: Changes in QStyle subclasses

2012-11-26 Thread Thomas Hartmann
Hi,

we are using QWindows style as a baseline for style sheets in the Qt 
Quick Designer. I tried using QCommonStyle instead and it works, BUT
QToolButton::arrowType does not work with QCommonStyle.

It would be nice if this could be fixed, otherwise we have to subclass 
QCommonStyle and fix this in a custom style.

Kind Regards,
Thomas Hartmann

Am 24/11/2012 12:09, schrieb Nurmi J-P:
 Hi all,

 Thanks to QStyleFactory and QProxyStyle, it is possible to instantiate and 
 customize any available style. This is not limited to the built-in styles in 
 QtWidgets, but also works fine for any style plugin since it nicely avoids 
 the build time dependency to the corresponding style implementation.

 When it comes to the actual style implementations, we have quite a few 
 refactoring ideas on the table. These ideas include class renames, possible 
 merges and inheritance hierarchy changes. Not to mention the possibility of 
 later on pluginizing certain styles to avoid loads of dynamic function 
 resolving. These ideas are not feasible to implement in time for Qt 5.0, and 
 for compatibility reasons cannot be done later if the style implementations 
 remain in the public API.

 Hence we would like to take this opportunity to hide the following QStyle 
 subclasses from the public API in Qt 5.0:
 - QFusionStyle
 - QGtkStyle
 - QMacStyle
 - QWindowsCEStyle
 - QWindowsMobileStyle
 - QWindowsStyle
 - QWindowsVistaStyle
 - QWindowsXPStyle

 Notice that QCommonStyle will stay public, providing a convenient base for 
 full custom style implementations. We do also realize that QWindowsStyle has 
 been a commonly used base class for custom styles. To address that, we have 
 recently promoted some generic styling code from QWindowsStyle to 
 QCommonStyle, and changed QFusionStyle, QGtkStyle and QMacStyle to inherit 
 QCommonStyle instead. We would like to invite anyone interested in custom 
 styles to give it a try and let us know if any other parts should be promoted 
 too.

 --
 J-P Nurmi
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development



___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] HEADS UP: Changes in QStyle subclasses

2012-11-26 Thread BogDan
Hi again,

I understand what you are trying to do.

What I'm trying to say it that if you are planning to use QStyle also to draw 
QML Components (on all platforms) then there is no problem, otherwise if you 
are planning in the future (e.g. 5.1, 5.2) to deprecate QStyle and come with 
another solution that can be used to paint classic and qml widgets (on all 
platforms), then IMHO you should make QStyle* private now, before you ship 5.0, 
otherwise you'll *MUST* keep it for the entire Qt5 lifetime.

Cheers,
BogDan. 



- Original Message -
 From: Bache-Wiig Jens jens.bache-w...@digia.com
 To: BogDan bog_dan...@yahoo.com
 Cc: Hartmann Thomas thomas.hartm...@digia.com; development@qt-project.org 
 development@qt-project.org
 Sent: Monday, November 26, 2012 7:47 PM
 Subject: Re: [Development] HEADS UP: Changes in QStyle subclasses
 
 For the desktop components we will use QStyle by default so they look and 
 behave 
 as regular widgets. This means that applications with custom styles will also 
 get QML component styling for free, avoiding the need to duplicate any 
 styling 
 code. I recently also made it possible to style the components using pure 
 QML, 
 so that a QStyle backend is not strictly required on any platform. Any new 
 touch 
 specific components will probably not be using QStyle though.
 
 What we are trying to do with this change is simply to remove classes like 
 QWindowsXPStyle and QWindowsVistaStyle from polluting the public API as there 
 is 
 no reason applications should depend on them directly, and it makes it easier 
 for us to adapt Qt5 to various platforms in the future without breaking 
 binary 
 compatibility. They are merely implementation details of their respective 
 platform plugins.
 
 Regards,
 Jens
 
  Hi,
 
  Are you planning to use QStyle also to draw QML Components? 
  Or we still need to create two separate implementations for the same 
 platform?
  If we still need to create two, then IMHO you should make private 
 everything
  related to QStyle.
 
  BogDan.
 
 
 
  - Original Message -
  From: Thomas Hartmann thomas.hartm...@digia.com
  To: development@qt-project.org
  Cc: 
  Sent: Monday, November 26, 2012 2:55 PM
  Subject: Re: [Development] HEADS UP: Changes in QStyle subclasses
 
  Hi,
 
  we are using QWindows style as a baseline for style sheets in the Qt 
  Quick Designer. I tried using QCommonStyle instead and it works, BUT
  QToolButton::arrowType does not work with QCommonStyle.
 
  It would be nice if this could be fixed, otherwise we have to subclass 
  QCommonStyle and fix this in a custom style.
 
  Kind Regards,
  Thomas Hartmann
 
  Am 24/11/2012 12:09, schrieb Nurmi J-P:
  Hi all,
 
  Thanks to QStyleFactory and QProxyStyle, it is possible to 
 instantiate and 
  customize any available style. This is not limited to the built-in 
 styles in 
  QtWidgets, but also works fine for any style plugin since it nicely 
 avoids the 
  build time dependency to the corresponding style implementation.
 
  When it comes to the actual style implementations, we have quite a 
 few 
  refactoring ideas on the table. These ideas include class renames, 
 possible 
  merges and inheritance hierarchy changes. Not to mention the 
 possibility of 
  later on pluginizing certain styles to avoid loads of dynamic function 
  resolving. These ideas are not feasible to implement in time for Qt 
 5.0, and for 
  compatibility reasons cannot be done later if the style implementations 
 remain 
  in the public API.
 
  Hence we would like to take this opportunity to hide the following 
 QStyle 
  subclasses from the public API in Qt 5.0:
  - QFusionStyle
  - QGtkStyle
  - QMacStyle
  - QWindowsCEStyle
  - QWindowsMobileStyle
  - QWindowsStyle
  - QWindowsVistaStyle
  - QWindowsXPStyle
 
  Notice that QCommonStyle will stay public, providing a convenient 
 base for 
  full custom style implementations. We do also realize that 
 QWindowsStyle has 
  been a commonly used base class for custom styles. To address that, we 
 have 
  recently promoted some generic styling code from QWindowsStyle to 
 QCommonStyle, 
  and changed QFusionStyle, QGtkStyle and QMacStyle to inherit 
 QCommonStyle 
  instead. We would like to invite anyone interested in custom styles to 
 give it a 
  try and let us know if any other parts should be promoted too.
 
  --
  J-P Nurmi
  ___
  Development mailing list
  Development@qt-project.org
  http://lists.qt-project.org/mailman/listinfo/development
 
 
 
  ___
  Development mailing list
  Development@qt-project.org
  http://lists.qt-project.org/mailman/listinfo/development
 
  ___
  Development mailing list
  Development@qt-project.org
  http://lists.qt-project.org/mailman/listinfo/development
 
___
Development mailing list
Development@qt-project.org
http://lists.qt

Re: [Development] HEADS UP: Changes in QStyle subclasses

2012-11-26 Thread Andre Somers

Op 24-11-2012 12:09, Nurmi J-P schreef:

Hi all,

Thanks to QStyleFactory and QProxyStyle, it is possible to instantiate and 
customize any available style. This is not limited to the built-in styles in 
QtWidgets, but also works fine for any style plugin since it nicely avoids the 
build time dependency to the corresponding style implementation.

When it comes to the actual style implementations, we have quite a few 
refactoring ideas on the table. These ideas include class renames, possible 
merges and inheritance hierarchy changes. Not to mention the possibility of 
later on pluginizing certain styles to avoid loads of dynamic function 
resolving. These ideas are not feasible to implement in time for Qt 5.0, and 
for compatibility reasons cannot be done later if the style implementations 
remain in the public API.

Hence we would like to take this opportunity to hide the following QStyle 
subclasses from the public API in Qt 5.0:
- QFusionStyle
- QGtkStyle
- QMacStyle
- QWindowsCEStyle
- QWindowsMobileStyle
- QWindowsStyle
- QWindowsVistaStyle
- QWindowsXPStyle

Does this also mean that you will remove void 
QApplication::setStyle(QStyle* style)? This API seems useless if you 
can't create actual style instances any more because they are public. On 
the other hand, I think that that may cause issues for some applications...


André

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development