[Development] QWidget::setWindowState(Qt::WindowStates) vs QWindow::setWindowState(Qt::WindowState)

Bo Thorsen bo at vikingsoft.eu
Thu Jan 19 09:25:07 CET 2017


Hej Thomas,

Please don't take silence as some indication that people are offended. I 
just think you found a corner case that no one has considered and do not 
consider one way or the other.

You ask for the best way to proceed: As usual with issues like this, you 
should enter a bug in the bug tracker.

Bo Thorsen.

Den 18-01-2017 kl. 16:21 skrev Thomas Søndergaard:
> I hope my previous email wasn't offensive or downright stupid; no one
> has replied. I certainly meant no disrespect. While I'm waiting for a
> response, let me throw a specific proposal out there.
>
> First, I assume the correct solution is to extend QWindow and
> QPlatformWindow so they can deal with compound states such as
> Qt::WindowMaximized|Qt::WindowMinimized, just like QWidget can. Since
> QWindow::setWindowState(Qt::WindowState) and Qt::WindowState
> QWindow::windowState() cannot be modified, I'm thinking of adding
>
> Qt::WindowStates QWindow::fullWindowState() const;
> void QWindow::setFullWindowState(Qt::WindowStates);
>
> and
>
> Qt::WindowStates QPlatformWindow::fullWindowState() const;
> void QPlatformWindow::setFullWindowState(Qt::WindowStates);
>
> The existing QWindow::windowState() would then be implemented using the
> effectiveState() function from qwidget.cpp (I'd move it over)
>
> I can experiment with these changes and implementing them in the xcb and
> windows platform plugins, but early feedback is always great, so I avoid
> wasting time.
>
> Thanks for making Qt
>
> Thomas
>
>
>
>
> On 17 January 2017 at 21:37, Thomas Søndergaard
> <thomas.sondergaard at karoshealth.com
> <mailto:thomas.sondergaard at karoshealth.com>> wrote:
>
>     Hi,
>
>     I'm looking at the Qt code with intention to fix it so this code
>
>         QWidget widget;
>         widget.setWindowState(Qt::WindowMaximized);
>         widget.showMinized();
>
>     will show the window iconified and when the user (or program)
>     unminimize the window it pops up maximized. This is currently not
>     possible (QTBUG-57882 <https://bugreports.qt.io/browse/QTBUG-57882>).
>
>     I've been trying to read the Qt code and it seems to me the problem
>     is that QWindow::setWindowState(Qt::WindowState) and
>     QPlatformWindow::setWindowState(Qt::WindowState) only take a
>     Qt::WindowState argument not a Qt::WindowStates argument. This seems
>     to make it impossible to set the correct state on the windows-system
>     window.
>
>     Is this intentional or a known issue?
>
>     I would be happy to get suggestions for how this is best fixed.


Bo Thorsen,
Director, Viking Software.

-- 
Viking Software
Qt and C++ developers for hire
http://www.vikingsoft.eu



More information about the Development mailing list