Changeset 23290 in vbox
- Timestamp:
- Sep 24, 2009 3:51:02 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 52783
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/include/QITreeView.h
r23269 r23290 42 42 void currentItemChanged (const QModelIndex &aCurrent, const QModelIndex &aPrevious); 43 43 void drawItemBranches (QPainter *aPainter, const QRect &aRect, const QModelIndex &aIndex) const; 44 void mouseMoved (QMouseEvent *aEvent); 44 45 void mousePressed (QMouseEvent *aEvent); 45 46 void mouseDoubleClicked (QMouseEvent *aEvent); … … 52 53 53 54 void drawBranches (QPainter *aPainter, const QRect &aRect, const QModelIndex &aIndex) const; 55 void mouseMoveEvent (QMouseEvent *aEvent); 54 56 void mousePressEvent (QMouseEvent *aEvent); 55 57 void mouseDoubleClickEvent (QMouseEvent *aEvent); -
trunk/src/VBox/Frontends/VirtualBox/include/VBoxVMSettingsHD.h
r23239 r23290 384 384 R_IsAttachment, 385 385 386 R_ToolTipType, 386 387 R_IsMoreControllersPossible, 387 388 R_IsMoreAttachmentsPossible, … … 428 429 }; 429 430 431 enum ToolTipType 432 { 433 DefaultToolTip = 0, 434 ExpanderToolTip = 1, 435 HDAdderToolTip = 2, 436 CDAdderToolTip = 3, 437 FDAdderToolTip = 4 438 }; 439 430 440 StorageModel (QObject *aParent); 431 441 ~StorageModel(); … … 460 470 QPixmap mMinusPixmapEn; 461 471 QPixmap mMinusPixmapDis; 462 }; 472 473 ToolTipType mToolTipType; 474 }; 475 Q_DECLARE_METATYPE (StorageModel::ToolTipType); 463 476 464 477 /* Storage Delegate */ … … 536 549 void onDrawItemBranches (QPainter *aPainter, const QRect &aRect, const QModelIndex &aIndex); 537 550 551 void onMouseMoved (QMouseEvent *aEvent); 538 552 void onMouseClicked (QMouseEvent *aEvent); 539 553 -
trunk/src/VBox/Frontends/VirtualBox/src/QITreeView.cpp
r23269 r23290 47 47 } 48 48 49 void QITreeView::mouseMoveEvent (QMouseEvent *aEvent) 50 { 51 aEvent->setAccepted (false); 52 emit mouseMoved (aEvent); 53 if (!aEvent->isAccepted()) 54 QTreeView::mouseMoveEvent (aEvent); 55 } 56 49 57 void QITreeView::mousePressEvent (QMouseEvent *aEvent) 50 58 { -
trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsHD.cpp
r23282 r23290 465 465 QString ControllerItem::tip() const 466 466 { 467 return QString(); 467 return VBoxVMSettingsHD::tr ("<nobr><b>%1</b></nobr><br>" 468 "<nobr>Bus: %2</nobr><br>" 469 "<nobr>Type: %3</nobr>") 470 .arg (mCtrName) 471 .arg (vboxGlobal().toString (mCtrType->busType())) 472 .arg (vboxGlobal().toString (mCtrType->ctrType())); 468 473 } 469 474 … … 832 837 : QAbstractItemModel (aParent) 833 838 , mRootItem (new RootItem) 839 , mToolTipType (DefaultToolTip) 834 840 { 835 841 } … … 905 911 { 906 912 if (AbstractItem *item = static_cast <AbstractItem*> (aIndex.internalPointer())) 913 { 914 if (item->rtti() == AbstractItem::Type_ControllerItem) 915 { 916 QString tip (item->tip()); 917 switch (mToolTipType) 918 { 919 case ExpanderToolTip: 920 if (aIndex.child (0, 0).isValid()) 921 tip = VBoxVMSettingsHD::tr ("<nobr>Expand/Collapse Item</nobr>"); 922 break; 923 case HDAdderToolTip: 924 tip = VBoxVMSettingsHD::tr ("<nobr>Add Hard Disk</nobr>"); 925 break; 926 case CDAdderToolTip: 927 tip = VBoxVMSettingsHD::tr ("<nobr>Add CD/DVD Device</nobr>"); 928 break; 929 case FDAdderToolTip: 930 tip = VBoxVMSettingsHD::tr ("<nobr>Add Floppy Device</nobr>"); 931 break; 932 default: 933 break; 934 } 935 return tip; 936 } 907 937 return item->tip(); 938 } 908 939 return QString(); 909 940 } … … 964 995 } 965 996 997 case R_ToolTipType: 998 { 999 return QVariant::fromValue (mToolTipType); 1000 } 966 1001 case R_IsMoreControllersPossible: 967 1002 { … … 1209 1244 switch (aRole) 1210 1245 { 1246 case R_ToolTipType: 1247 { 1248 mToolTipType = aValue.value <ToolTipType>(); 1249 emit dataChanged (aIndex, aIndex); 1250 return true; 1251 } 1211 1252 case R_CtrName: 1212 1253 { … … 1519 1560 mStorageModel = new StorageModel (mTwStorageTree); 1520 1561 StorageDelegate *storageDelegate = new StorageDelegate (mTwStorageTree); 1562 mTwStorageTree->setMouseTracking (true); 1521 1563 mTwStorageTree->setContextMenuPolicy (Qt::CustomContextMenu); 1522 1564 mTwStorageTree->setModel (mStorageModel); … … 1579 1621 connect (mTwStorageTree, SIGNAL (drawItemBranches (QPainter*, const QRect&, const QModelIndex&)), 1580 1622 this, SLOT (onDrawItemBranches (QPainter *, const QRect &, const QModelIndex &))); 1623 connect (mTwStorageTree, SIGNAL (mouseMoved (QMouseEvent*)), 1624 this, SLOT (onMouseMoved (QMouseEvent*))); 1581 1625 connect (mTwStorageTree, SIGNAL (mousePressed (QMouseEvent*)), 1582 1626 this, SLOT (onMouseClicked (QMouseEvent*))); … … 1734 1778 mDelAttAction->setWhatsThis (tr ("Removes attachment highlighted in Storage Tree.")); 1735 1779 1736 mAddCtrAction->setToolTip (mAddCtrAction->text().remove ('&') + 1737 QString (" (%1)").arg (mAddCtrAction->shortcut().toString())); 1738 mDelCtrAction->setToolTip (mDelCtrAction->text().remove ('&') + 1739 QString (" (%1)").arg (mDelCtrAction->shortcut().toString())); 1740 mAddAttAction->setToolTip (mAddAttAction->text().remove ('&') + 1741 QString (" (%1)").arg (mAddAttAction->shortcut().toString())); 1742 mDelAttAction->setToolTip (mDelAttAction->text().remove ('&') + 1743 QString (" (%1)").arg (mDelAttAction->shortcut().toString())); 1780 mAddCtrAction->setToolTip (QString ("<nobr>%1 (%2)") 1781 .arg (mAddCtrAction->text().remove ('&')) 1782 .arg (mAddCtrAction->shortcut().toString())); 1783 mDelCtrAction->setToolTip (QString ("<nobr>%1 (%2)") 1784 .arg (mDelCtrAction->text().remove ('&')) 1785 .arg (mDelCtrAction->shortcut().toString())); 1786 mAddAttAction->setToolTip (QString ("<nobr>%1 (%2)") 1787 .arg (mAddAttAction->text().remove ('&')) 1788 .arg (mAddAttAction->shortcut().toString())); 1789 mDelAttAction->setToolTip (QString ("<nobr>%1 (%2)") 1790 .arg (mDelAttAction->text().remove ('&')) 1791 .arg (mDelAttAction->shortcut().toString())); 1744 1792 } 1745 1793 … … 2157 2205 } 2158 2206 2159 void VBoxVMSettingsHD::onMouse Clicked (QMouseEvent *aEvent)2207 void VBoxVMSettingsHD::onMouseMoved (QMouseEvent *aEvent) 2160 2208 { 2161 2209 QModelIndex index = mTwStorageTree->indexAt (aEvent->pos()); 2162 2210 QRect indexRect = mTwStorageTree->visualRect (index); 2163 2211 2164 /* Process expander icon*/2212 /* Expander tool-tip */ 2165 2213 if (mStorageModel->data (index, StorageModel::R_IsController).toBool()) 2166 2214 { … … 2170 2218 { 2171 2219 aEvent->setAccepted (true); 2172 mTwStorageTree->setExpanded (index, !mTwStorageTree->isExpanded (index)); 2220 if (mStorageModel->data (index, StorageModel::R_ToolTipType).value <StorageModel::ToolTipType>() != StorageModel::ExpanderToolTip) 2221 mStorageModel->setData (index, QVariant::fromValue (StorageModel::ExpanderToolTip), StorageModel::R_ToolTipType); 2173 2222 return; 2174 2223 } 2175 2224 } 2176 2225 2177 /* Process add-attachment icons*/2226 /* Adder tool-tip */ 2178 2227 if (mStorageModel->data (index, StorageModel::R_IsController).toBool() && 2179 2228 mTwStorageTree->currentIndex() == index) … … 2210 2259 { 2211 2260 aEvent->setAccepted (true); 2261 switch (deviceType) 2262 { 2263 case KDeviceType_HardDisk: 2264 { 2265 if (mStorageModel->data (index, StorageModel::R_ToolTipType).value <StorageModel::ToolTipType>() != StorageModel::HDAdderToolTip) 2266 mStorageModel->setData (index, QVariant::fromValue (StorageModel::HDAdderToolTip), StorageModel::R_ToolTipType); 2267 break; 2268 } 2269 case KDeviceType_DVD: 2270 { 2271 if (mStorageModel->data (index, StorageModel::R_ToolTipType).value <StorageModel::ToolTipType>() != StorageModel::CDAdderToolTip) 2272 mStorageModel->setData (index, QVariant::fromValue (StorageModel::CDAdderToolTip), StorageModel::R_ToolTipType); 2273 break; 2274 } 2275 case KDeviceType_Floppy: 2276 { 2277 if (mStorageModel->data (index, StorageModel::R_ToolTipType).value <StorageModel::ToolTipType>() != StorageModel::FDAdderToolTip) 2278 mStorageModel->setData (index, QVariant::fromValue (StorageModel::FDAdderToolTip), StorageModel::R_ToolTipType); 2279 break; 2280 } 2281 default: 2282 break; 2283 } 2284 return; 2285 } 2286 } 2287 } 2288 2289 /* Default tool-tip */ 2290 if (mStorageModel->data (index, StorageModel::R_ToolTipType).value <StorageModel::ToolTipType>() != StorageModel::DefaultToolTip) 2291 mStorageModel->setData (index, StorageModel::DefaultToolTip, StorageModel::R_ToolTipType); 2292 } 2293 2294 void VBoxVMSettingsHD::onMouseClicked (QMouseEvent *aEvent) 2295 { 2296 QModelIndex index = mTwStorageTree->indexAt (aEvent->pos()); 2297 QRect indexRect = mTwStorageTree->visualRect (index); 2298 2299 /* Expander icon */ 2300 if (mStorageModel->data (index, StorageModel::R_IsController).toBool()) 2301 { 2302 QRect expanderRect = mStorageModel->data (index, StorageModel::R_ItemPixmapRect).toRect(); 2303 expanderRect.translate (indexRect.x(), indexRect.y()); 2304 if (expanderRect.contains (aEvent->pos())) 2305 { 2306 aEvent->setAccepted (true); 2307 mTwStorageTree->setExpanded (index, !mTwStorageTree->isExpanded (index)); 2308 return; 2309 } 2310 } 2311 2312 /* Adder icons */ 2313 if (mStorageModel->data (index, StorageModel::R_IsController).toBool() && 2314 mTwStorageTree->currentIndex() == index) 2315 { 2316 DeviceTypeList devicesList (mStorageModel->data (index, StorageModel::R_CtrDevices).value <DeviceTypeList>()); 2317 for (int i = 0; i < devicesList.size(); ++ i) 2318 { 2319 KDeviceType deviceType = devicesList [i]; 2320 2321 QRect deviceRect; 2322 switch (deviceType) 2323 { 2324 case KDeviceType_HardDisk: 2325 { 2326 deviceRect = mStorageModel->data (index, StorageModel::R_HDPixmapRect).toRect(); 2327 break; 2328 } 2329 case KDeviceType_DVD: 2330 { 2331 deviceRect = mStorageModel->data (index, StorageModel::R_CDPixmapRect).toRect(); 2332 break; 2333 } 2334 case KDeviceType_Floppy: 2335 { 2336 deviceRect = mStorageModel->data (index, StorageModel::R_FDPixmapRect).toRect(); 2337 break; 2338 } 2339 default: 2340 break; 2341 } 2342 deviceRect.translate (indexRect.x() + indexRect.width(), indexRect.y()); 2343 2344 if (deviceRect.contains (aEvent->pos())) 2345 { 2346 aEvent->setAccepted (true); 2212 2347 if (mAddAttAction->isEnabled()) 2213 2348 addAttachment (deviceType);
Note:
See TracChangeset
for help on using the changeset viewer.