QIArrowSplitter.cpp revision 4be39ac606cc80de5b28e745a94b099557387ff7
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * VBox frontends: Qt GUI ("VirtualBox"):
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * VirtualBox Qt extensions: QIArrowSplitter class implementation
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * Copyright (C) 2006-2009 Sun Microsystems, Inc.
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * available from http://www.virtualbox.org. This file is free software;
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * you can redistribute it and/or modify it under the terms of the GNU
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * General Public License (GPL) as published by the Free Software
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync * additional information or have any questions.
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync/* VBox includes */
3aad980b92149dd95a1ab72ddb8d11d61a28ace6vboxsync/* Qt includes */
0a7b20727716a00270f358a1c546473d8c36e8f3vboxsyncQIArrowSplitter::QIArrowSplitter (QWidget *aChild, QWidget *aParent)
0a7b20727716a00270f358a1c546473d8c36e8f3vboxsync , mBackButton (new QIArrowButtonPress (false, tr ("&Back")))
0a7b20727716a00270f358a1c546473d8c36e8f3vboxsync , mNextButton (new QIArrowButtonPress (true, tr ("&Next")))
0a7b20727716a00270f358a1c546473d8c36e8f3vboxsync /* Setup main-layout */
3aad980b92149dd95a1ab72ddb8d11d61a28ace6vboxsync /* Setup buttons */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Setup connections */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync connect (mSwitchButton, SIGNAL (clicked()), this, SLOT (toggleWidget()));
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync connect (mBackButton, SIGNAL (clicked()), this, SIGNAL (showBackDetails()));
8e342a5c34610667d2b554cb86f1dc2f38a5313cvboxsync connect (mNextButton, SIGNAL (clicked()), this, SIGNAL (showNextDetails()));
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Setup button layout */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Append layout with children */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Install event-filter */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsyncvoid QIArrowSplitter::setMultiPaging (bool aMultiPage)
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsyncvoid QIArrowSplitter::setButtonEnabled (bool aNext, bool aEnabled)
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsyncvoid QIArrowSplitter::setName (const QString &aName)
8e342a5c34610667d2b554cb86f1dc2f38a5313cvboxsyncbool QIArrowSplitter::eventFilter (QObject *aObject, QEvent *aEvent)
8e342a5c34610667d2b554cb86f1dc2f38a5313cvboxsync /* Process only parent window children */
8e342a5c34610667d2b554cb86f1dc2f38a5313cvboxsync if (!(aObject == window() || window()->children().contains (aObject)))
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Do not process QIArrowButtonSwitch & QIArrowButtonPress children */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Process some keyboard events */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync QKeyEvent *kEvent = static_cast <QKeyEvent*> (aEvent);
2e42e0850e182e37277fe28ba5b5d1c37018e783vboxsync /* Default one handler */
2e42e0850e182e37277fe28ba5b5d1c37018e783vboxsync /* Update full layout system of message window */
2e42e0850e182e37277fe28ba5b5d1c37018e783vboxsync QList <QLayout*> layouts = findChildren <QLayout*> ();
ab93606043a9881487aa83be04191d2f4ea24071vboxsync /* Update main layout of message window at last */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Now resize window to minimum possible size */
9e5c26690d45216629b5f588aced8fcfb68c23b6vboxsync /* Check if we have to make dialog fixed in height */