VirtualBox

Ignore:
Timestamp:
Apr 18, 2007 2:48:10 PM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
20516
Message:

FE/Qt: Undone most of the changes from changeset:20500 and changeset:20506.

Location:
trunk/src/VBox/Frontends/VirtualBox/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/include/VBoxGlobal.h

    r2170 r2185  
    134134};
    135135
    136 class QIConstrainKeeper : public QObject
    137 {
    138     Q_OBJECT
    139 
    140 public:
    141 
    142     QIConstrainKeeper (QWidget*);
    143 
    144 private:
    145 
    146     bool eventFilter (QObject*, QEvent*);
    147 };
    148 
    149136// VBoxGlobal
    150137////////////////////////////////////////////////////////////////////////////////
  • trunk/src/VBox/Frontends/VirtualBox/include/VBoxUtils.h

    r382 r2185  
    126126};
    127127
     128/**
     129 *  Watches the given widget and makes sure the minimum widget size set by the layout
     130 *  manager does never get smaller than the previous minimum size set by the
     131 *  layout manager. This way, widgets with dynamic contents (i.e. text on some
     132 *  toggle buttons) will be able only to grow, never shrink, to avoid flicker
     133 *  during alternate contents updates (Pause -> Resume -> Pause -> ...).
     134 *
     135 *  @todo not finished
     136 */
     137class QIConstraintKeeper : public QObject
     138{
     139    Q_OBJECT
     140
     141public:
     142
     143    QIConstraintKeeper (QWidget *aParent) : QObject (aParent)
     144    {
     145        aParent->setMinimumSize (aParent->size());
     146        aParent->installEventFilter (this);
     147    }
     148
     149private:
     150
     151    bool eventFilter (QObject *aObject, QEvent *aEvent)
     152    {
     153        if (aObject == parent() && aEvent->type() == QEvent::Resize)
     154        {
     155            QResizeEvent *ev = static_cast<QResizeEvent*> (aEvent);
     156            QSize oldSize = ev->oldSize();
     157            QSize newSize = ev->size();
     158            int maxWidth = newSize.width() > oldSize.width() ?
     159                newSize.width() : oldSize.width();
     160            int maxHeight = newSize.height() > oldSize.height() ?
     161                newSize.height() : oldSize.height();
     162            if (maxWidth > oldSize.width() || maxHeight > oldSize.height())
     163                ((QWidget*)parent())->setMinimumSize (maxWidth, maxHeight);
     164        }
     165        return QObject::eventFilter (aObject, aEvent);
     166    }
     167};
     168
    128169#endif // __VBoxUtils_h__
    129170
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette