Changeset 44061 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Dec 7, 2012 2:46:43 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 82547
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetails.cpp
r43990 r44061 91 91 { 92 92 /* Setup details-model connections: */ 93 connect(m_pDetailsModel, SIGNAL(sigRootMinimumSizeHintChanged(const QSizeF&)), 94 m_pDetailsView, SLOT(sltHandleRootItemMinimumSizeHintChanged(const QSizeF&))); 93 connect(m_pDetailsModel, SIGNAL(sigRootItemMinimumWidthHintChanged(int)), 94 m_pDetailsView, SLOT(sltMinimumWidthHintChanged(int))); 95 connect(m_pDetailsModel, SIGNAL(sigRootItemMinimumHeightHintChanged(int)), 96 m_pDetailsView, SLOT(sltMinimumHeightHintChanged(int))); 95 97 connect(m_pDetailsModel, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&)), 96 98 this, SIGNAL(sigLinkClicked(const QString&, const QString&, const QString&))); -
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.cpp
r44060 r44061 18 18 */ 19 19 20 /* Qt include: */ 21 #include <QGraphicsScene> 22 20 23 /* GUI includes: */ 21 24 #include "UIGDetailsGroup.h" … … 26 29 #include "UIVMItem.h" 27 30 28 UIGDetailsGroup::UIGDetailsGroup( )31 UIGDetailsGroup::UIGDetailsGroup(QGraphicsScene *pParent) 29 32 : UIGDetailsItem(0) 33 , m_iPreviousMinimumWidthHint(0) 34 , m_iPreviousMinimumHeightHint(0) 30 35 , m_pBuildStep(0) 31 36 { 37 /* Add group to the parent scene: */ 38 pParent->addItem(this); 39 40 /* Prepare connections: */ 41 prepareConnections(); 32 42 } 33 43 … … 171 181 default: AssertMsgFailed(("Invalid item type!")); break; 172 182 } 183 } 184 185 void UIGDetailsGroup::prepareConnections() 186 { 187 /* Prepare group-item connections: */ 188 connect(this, SIGNAL(sigMinimumWidthHintChanged(int)), 189 model(), SIGNAL(sigRootItemMinimumWidthHintChanged(int))); 190 connect(this, SIGNAL(sigMinimumHeightHintChanged(int)), 191 model(), SIGNAL(sigRootItemMinimumHeightHintChanged(int))); 173 192 } 174 193 … … 195 214 } 196 215 216 void UIGDetailsGroup::updateGeometry() 217 { 218 /* Call to base class: */ 219 UIGDetailsItem::updateGeometry(); 220 221 /* Group-item should notify details-view if minimum-width-hint was changed: */ 222 int iMinimumWidthHint = minimumWidthHint(); 223 if (m_iPreviousMinimumWidthHint != iMinimumWidthHint) 224 { 225 /* Save new minimum-width-hint, notify listener: */ 226 m_iPreviousMinimumWidthHint = iMinimumWidthHint; 227 emit sigMinimumWidthHintChanged(m_iPreviousMinimumWidthHint); 228 } 229 /* Group-item should notify details-view if minimum-height-hint was changed: */ 230 int iMinimumHeightHint = minimumHeightHint(); 231 if (m_iPreviousMinimumHeightHint != iMinimumHeightHint) 232 { 233 /* Save new minimum-height-hint, notify listener: */ 234 m_iPreviousMinimumHeightHint = iMinimumHeightHint; 235 emit sigMinimumHeightHintChanged(m_iPreviousMinimumHeightHint); 236 } 237 } 238 197 239 int UIGDetailsGroup::minimumWidthHint() const 198 240 { -
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsGroup.h
r44019 r44061 25 25 /* Forward declarations: */ 26 26 class UIVMItem; 27 class QGraphicsScene; 27 28 28 29 /* Details group … … 31 32 { 32 33 Q_OBJECT; 34 35 signals: 36 37 /* Notifiers: Size-hint stuff: */ 38 void sigMinimumWidthHintChanged(int iMinimumWidthHint); 39 void sigMinimumHeightHintChanged(int iMinimumHeightHint); 33 40 34 41 public: … … 39 46 40 47 /* Constructor/destructor: */ 41 UIGDetailsGroup( );48 UIGDetailsGroup(QGraphicsScene *pParent); 42 49 ~UIGDetailsGroup(); 43 50 … … 73 80 74 81 /* Helpers: Prepare stuff: */ 82 void prepareConnections(); 75 83 void loadSettings(); 76 84 77 85 /* Helpers: Layout stuff: */ 86 void updateGeometry(); 78 87 int minimumWidthHint() const; 79 88 int minimumHeightHint() const; … … 81 90 82 91 /* Variables: */ 92 int m_iPreviousMinimumWidthHint; 93 int m_iPreviousMinimumHeightHint; 83 94 QList<UIGDetailsItem*> m_items; 84 95 QList<UIVMItem*> m_machineItems; -
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.cpp
r44016 r44061 86 86 /* Layout root content: */ 87 87 m_pRoot->updateLayout(); 88 89 /* Notify view about root minimum-size-hint changed: */90 emit sigRootMinimumSizeHintChanged(m_pRoot->minimumSizeHint());91 88 } 92 89 … … 232 229 void UIGDetailsModel::prepareRoot() 233 230 { 234 m_pRoot = new UIGDetailsGroup; 235 scene()->addItem(m_pRoot); 231 m_pRoot = new UIGDetailsGroup(scene()); 236 232 } 237 233 -
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsModel.h
r43990 r44061 49 49 signals: 50 50 51 /* Notifier: Root-item stuff: */ 52 void sigRootMinimumSizeHintChanged(const QSizeF &minimumSizeHint); 51 /* Notifiers: Root-item stuff: */ 52 void sigRootItemMinimumWidthHintChanged(int iRootItemMinimumWidthHint); 53 void sigRootItemMinimumHeightHintChanged(int iRootItemMinimumHeightHint); 53 54 54 55 /* Notifier: Link processing stuff: */ -
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.cpp
r43990 r44061 28 28 UIGDetailsView::UIGDetailsView(QWidget *pParent) 29 29 : QGraphicsView(pParent) 30 , m_iMinimumWidthHint(0) 31 , m_iMinimumHeightHint(0) 30 32 { 31 33 /* Prepare palette: */ … … 44 46 } 45 47 46 void UIGDetailsView::slt HandleRootItemMinimumSizeHintChanged(const QSizeF &minimumSizeHint)48 void UIGDetailsView::sltMinimumWidthHintChanged(int iMinimumWidthHint) 47 49 { 50 /* Is there something changed? */ 51 if (m_iMinimumWidthHint == iMinimumWidthHint) 52 return; 53 54 /* Remember new value: */ 55 m_iMinimumWidthHint = iMinimumWidthHint; 56 57 /* Set minimum view width according passed width-hint: */ 58 setMinimumWidth(2 * frameWidth() + iMinimumWidthHint + verticalScrollBar()->sizeHint().width()); 59 48 60 /* Update scene-rect: */ 49 updateSceneRect(minimumSizeHint); 61 updateSceneRect(); 62 } 50 63 51 /* Set minimum-width: */ 52 setMinimumWidth(2 * frameWidth() + 53 minimumSizeHint.width() + 54 verticalScrollBar()->sizeHint().width()); 64 void UIGDetailsView::sltMinimumHeightHintChanged(int iMinimumHeightHint) 65 { 66 /* Is there something changed? */ 67 if (m_iMinimumHeightHint == iMinimumHeightHint) 68 return; 69 70 /* Remember new value: */ 71 m_iMinimumHeightHint = iMinimumHeightHint; 72 73 /* Update scene-rect: */ 74 updateSceneRect(); 55 75 } 56 76 … … 71 91 } 72 92 73 void UIGDetailsView::updateSceneRect( const QSizeF &minimumSizeHint /* = QSizeF() */)93 void UIGDetailsView::updateSceneRect() 74 94 { 75 QPointF topLeft = QPointF(0, 0); 76 QSizeF rectSize = viewport()->size(); 77 if (!minimumSizeHint.isNull()) 78 rectSize.setHeight(minimumSizeHint.height()); 79 setSceneRect(QRectF(topLeft, rectSize)); 95 setSceneRect(0, 0, m_iMinimumWidthHint, m_iMinimumHeightHint); 80 96 } 81 97 -
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsView.h
r43990 r44061 40 40 private slots: 41 41 42 /* Handler: Root-item stuff: */ 43 void sltHandleRootItemMinimumSizeHintChanged(const QSizeF &minimumSizeHint); 42 /* Handlers: Size-hint stuff: */ 43 void sltMinimumWidthHintChanged(int iMinimumWidthHint); 44 void sltMinimumHeightHintChanged(int iMinimumHeightHint); 44 45 45 46 private: … … 52 53 53 54 /* Helper: Update stuff: */ 54 void updateSceneRect(const QSizeF &minimumSizeHint = QSizeF()); 55 void updateSceneRect(); 56 57 /* Variables: */ 58 int m_iMinimumWidthHint; 59 int m_iMinimumHeightHint; 55 60 }; 56 61
Note:
See TracChangeset
for help on using the changeset viewer.