Changeset 76996 in vbox for trunk/src/VBox
- Timestamp:
- Jan 25, 2019 9:36:44 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 128417
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.cpp
r76995 r76996 438 438 } 439 439 440 QList<QTreeWidgetItem*> QITreeWidget::filterItems(const QITreeWidgetItemFilter &filter, QTreeWidgetItem* pParent /* = 0 */)441 {442 QList<QTreeWidgetItem*> filteredItemList;443 if (!pParent)444 filterItemsInternal(filter, invisibleRootItem(), filteredItemList);445 else446 filterItemsInternal(filter, pParent, filteredItemList);447 return filteredItemList;448 }449 450 void QITreeWidget::filterItemsInternal(const QITreeWidgetItemFilter &filter,451 QTreeWidgetItem* pParent, QList<QTreeWidgetItem*> &filteredItemList)452 {453 if (!pParent)454 return;455 if (filter(pParent))456 filteredItemList.append(pParent);457 458 for (int i = 0; i < pParent->childCount(); ++i)459 filterItemsInternal(filter, pParent->child(i), filteredItemList);460 }461 462 440 void QITreeWidget::paintEvent(QPaintEvent *pEvent) 463 441 { -
trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeWidget.h
r76995 r76996 32 32 class QITreeWidget; 33 33 34 /** A functor base to be passed to QITabWidget::filterItems(..). Overload operator()(..) to filter out35 * tree items. */36 class SHARED_LIBRARY_STUFF QITreeWidgetItemFilter37 {38 public:39 virtual bool operator()(QTreeWidgetItem*) const40 {41 return true;42 }43 };44 34 45 35 /** QTreeWidgetItem subclass extending standard functionality. */ … … 109 99 QITreeWidgetItem *childItem(int iIndex) const; 110 100 QModelIndex itemIndex(QTreeWidgetItem *pItem); 111 /** Recurses thru the subtree with a root pParent and returns a list of tree items filtered by @a filter.112 * When @a pParent is null than QTreeWidget::invisibleRootItem() is used as the root item. */113 QList<QTreeWidgetItem*> filterItems(const QITreeWidgetItemFilter &filter, QTreeWidgetItem* pParent = 0);114 101 115 102 protected: … … 119 106 /** Handles resize @a pEvent. */ 120 107 void resizeEvent(QResizeEvent *pEvent); 121 122 private:123 124 /* Recurses thru the tree and append filtered items to @a filteredItemList. */125 void filterItemsInternal(const QITreeWidgetItemFilter &filter, QTreeWidgetItem* pParent,126 QList<QTreeWidgetItem*> &filteredItemList);127 108 }; 128 109 -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp
r76995 r76996 100 100 /* Virtual Media Manager: */ 101 101 const char *UIExtraDataDefs::GUI_VirtualMediaManager_Details_Expanded = "GUI/VirtualMediaManager/Details/Expanded"; 102 const char *UIExtraDataDefs::GUI_VirtualMediaManager_Search_Widget_Expanded = "GUI/VirtualMediaManager/SearchWidget/Expanded";103 102 104 103 /* Host Network Manager: */ -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
r76995 r76996 191 191 /** Holds whether Virtual Media Manager details expanded. */ 192 192 SHARED_LIBRARY_STUFF extern const char *GUI_VirtualMediaManager_Details_Expanded; 193 /** Holds whether Virtual Media Manager search widget expanded. */194 SHARED_LIBRARY_STUFF extern const char *GUI_VirtualMediaManager_Search_Widget_Expanded;195 193 /** @} */ 196 194 -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
r76995 r76996 2975 2975 } 2976 2976 2977 bool UIExtraDataManager::virtualMediaManagerSearchWidgetExpanded()2978 {2979 /* 'False' unless feature allowed: */2980 return isFeatureAllowed(GUI_VirtualMediaManager_Search_Widget_Expanded);2981 }2982 2983 void UIExtraDataManager::setVirtualMediaManagerSearchWidgetExpanded(bool fExpanded)2984 {2985 /* 'True' if feature allowed, null-string otherwise: */2986 return setExtraDataString(GUI_VirtualMediaManager_Search_Widget_Expanded, toFeatureAllowed(fExpanded));2987 }2988 2989 2977 bool UIExtraDataManager::hostNetworkManagerDetailsExpanded() 2990 2978 { -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
r76995 r76996 370 370 /** Defines whether Virtual Media Manager details @a fExpanded. */ 371 371 void setVirtualMediaManagerDetailsExpanded(bool fExpanded); 372 /** Returns whether Virtual Media Manager search widget expanded. */373 bool virtualMediaManagerSearchWidgetExpanded();374 /** Defines whether Virtual Media Manager search widget @a fExpanded. */375 void setVirtualMediaManagerSearchWidgetExpanded(bool fExpanded);376 372 /** @} */ 377 373 -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
r76995 r76996 2042 2042 setStatusTip(QApplication::translate("UIActionPool", "Open pane with selected disk image file properties")); 2043 2043 setToolTip(QApplication::translate("UIActionPool", "Open Disk Image File Properties (%1)").arg(shortcut().toString())); 2044 }2045 };2046 2047 /** Toggle action extension, used as 'Toggle Search Pane' action class. */2048 class UIActionMenuSelectorMediumToggleSearch : public UIActionToggle2049 {2050 Q_OBJECT;2051 2052 public:2053 2054 /** Constructs action passing @a pParent to the base-class. */2055 UIActionMenuSelectorMediumToggleSearch(UIActionPool *pParent)2056 : UIActionToggle(pParent)2057 {2058 setShortcutContext(Qt::WidgetWithChildrenShortcut);2059 setIcon(0, UIIconPool::iconSetFull(":/hd_modify_32px.png", ":/hd_modify_16px.png",2060 ":/hd_modify_disabled_32px.png", ":/hd_modify_disabled_16px.png"));2061 setIcon(1, UIIconPool::iconSetFull(":/cd_modify_32px.png", ":/cd_modify_16px.png",2062 ":/cd_modify_disabled_32px.png", ":/cd_modify_disabled_16px.png"));2063 setIcon(2, UIIconPool::iconSetFull(":/fd_modify_32px.png", ":/fd_modify_16px.png",2064 ":/fd_modify_disabled_32px.png", ":/fd_modify_disabled_16px.png"));2065 }2066 2067 protected:2068 2069 /** Returns shortcut extra-data ID. */2070 virtual QString shortcutExtraDataID() const /* override */2071 {2072 return QString("ToggleMediumSearch");2073 }2074 2075 /** Returns default shortcut. */2076 virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */2077 {2078 return QKeySequence("");2079 }2080 2081 /** Handles translation event. */2082 virtual void retranslateUi() /* override */2083 {2084 setName(QApplication::translate("UIActionPool", "&Search"));2085 setShortcutScope(QApplication::translate("UIActionPool", "Media Manager"));2086 setStatusTip(QApplication::translate("UIActionPool", "Open the medium search pane"));2087 setToolTip(QApplication::translate("UIActionPool", "Open Medium Search Pane (%1)").arg(shortcut().toString()));2088 2044 } 2089 2045 }; … … 2663 2619 m_pool[UIActionIndexST_M_Medium_S_Release] = new UIActionMenuSelectorMediumPerformRelease(this); 2664 2620 m_pool[UIActionIndexST_M_Medium_T_Details] = new UIActionMenuSelectorMediumToggleProperties(this); 2665 m_pool[UIActionIndexST_M_Medium_T_Search] = new UIActionMenuSelectorMediumToggleSearch(this);2666 2621 m_pool[UIActionIndexST_M_Medium_S_Refresh] = new UIActionMenuSelectorMediumPerformRefresh(this); 2667 2622 … … 3132 3087 /* 'Properties' action: */ 3133 3088 fSeparator = addAction(pMenu, action(UIActionIndexST_M_Medium_T_Details)) || fSeparator; 3134 /* 'Search' action: */3135 fSeparator = addAction(pMenu, action(UIActionIndexST_M_Medium_T_Search)) || fSeparator;3136 3089 3137 3090 /* Separator? */ -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h
r76995 r76996 138 138 UIActionIndexST_M_Medium_S_Release, 139 139 UIActionIndexST_M_Medium_T_Details, 140 UIActionIndexST_M_Medium_T_Search,141 140 UIActionIndexST_M_Medium_S_Refresh, 142 141 … … 248 247 249 248 #endif /* !FEQT_INCLUDED_SRC_globals_UIActionPoolManager_h */ 249 -
trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.h
r76995 r76996 72 72 KMediumState state() const { return m_guiMedium.state(); } 73 73 74 /** Returns Q Uuid<i>ID</i> of the wrapped UIMedium. */74 /** Returns QString <i>ID</i> of the wrapped UIMedium. */ 75 75 QUuid id() const { return m_guiMedium.id(); } 76 /** Returns QString <i>name</i> of the wrapped UIMedium. */77 QString name() const { return m_guiMedium.name(); }78 79 76 /** Returns QString <i>location</i> of the wrapped UIMedium. */ 80 77 QString location() const { return m_guiMedium.location(); } -
trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
r76995 r76996 37 37 #include "UIMediumItem.h" 38 38 #include "UIMediumManager.h" 39 #include "UIMediumSearchWidget.h"40 39 #include "UIWizardCloneVD.h" 41 40 #include "UIMessageCenter.h" … … 162 161 , m_pToolBar(0) 163 162 , m_pProgressBar(0) 164 , m_pSearchWidget(0)165 163 { 166 164 /* Prepare: */ … … 564 562 } 565 563 566 void UIMediumManagerWidget::sltToggleMediumSearchVisibility(bool fVisible)567 {568 /* Save the setting: */569 //gEDataManager->setVirtualMediaManagerSea(fVisible);570 /* Toggle medium details visibility: */571 if (m_pSearchWidget)572 m_pSearchWidget->setVisible(fVisible);573 }574 575 564 void UIMediumManagerWidget::sltRefreshAll() 576 565 { … … 631 620 menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Release)); 632 621 menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details)); 633 menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));634 622 } 635 623 else 636 624 { 637 625 menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Add)); 638 menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));639 626 menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh)); 640 627 } … … 666 653 pTreeWidget->header()->resizeSection(0, iSize0); 667 654 } 668 }669 670 void UIMediumManagerWidget::sltHandlePerformSearch()671 {672 if (!m_pSearchWidget || !m_pTabWidget)673 return;674 675 QITreeWidget *pTreeWidget = treeWidget(static_cast<UIMediumDeviceType>(m_pTabWidget->currentIndex()));676 if (!pTreeWidget)677 return;678 m_pSearchWidget->search(pTreeWidget);679 680 // printf("size %d\n", matchedList.size());681 // m_pSearchWidget->searchItems(pTreeWidget->invisibleRootItem(), matchedList);682 683 684 685 // SearchType searchType() const;686 // QString searchTerm() const;687 688 689 // foreach (const QUuid &id, vboxGlobal().mediumIDs())690 // {691 // UIMedium medium = vboxGlobal().medium(id);692 // /** Only search among the types of the tab widget's current page: */693 // if (static_cast<UIMediumDeviceType>(m_pTabWidget->currentIndex()) != medium.type())694 // continue;695 // if (m_pSearchWidget->searchType() == UIMediumSearchWidget::SearchByName &&696 // medium.name().contains(m_pSearchWidget->searchTerm(), Qt::CaseInsensitive))697 // matchedMediumList << medium;698 // else if (m_pSearchWidget->searchType() == UIMediumSearchWidget::SearchByUUID &&699 // medium.id().toString().contains(m_pSearchWidget->searchTerm(), Qt::CaseInsensitive))700 // matchedMediumList << medium;701 // }702 // printf("search %s -- %d\n", qPrintable(m_pSearchWidget->searchTerm()), matchedMediumList.size());703 704 655 } 705 656 … … 760 711 addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Release)); 761 712 addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details)); 762 addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));763 713 addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh)); 764 714 … … 776 726 connect(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details), &QAction::toggled, 777 727 this, &UIMediumManagerWidget::sltToggleMediumDetailsVisibility); 778 connect(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search), &QAction::toggled,779 this, &UIMediumManagerWidget::sltToggleMediumSearchVisibility);780 728 connect(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh), &QAction::triggered, 781 729 this, &UIMediumManagerWidget::sltRefreshAll); … … 806 754 /* Prepare details-widget: */ 807 755 prepareDetailsWidget(); 808 /* Prepare search-widget: */809 prepareSearchWidget();810 756 } 811 757 } … … 830 776 m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Release)); 831 777 m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details)); 832 m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));833 778 m_pToolBar->addSeparator(); 834 779 m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh)); … … 956 901 } 957 902 958 void UIMediumManagerWidget::prepareSearchWidget()959 {960 m_pSearchWidget = new UIMediumSearchWidget(this);961 AssertPtrReturnVoid(m_pSearchWidget);962 {963 m_pSearchWidget->setVisible(false);964 m_pSearchWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);965 connect(m_pSearchWidget, &UIMediumSearchWidget::sigPerformSearch,966 this, &UIMediumManagerWidget::sltHandlePerformSearch);967 968 /* Add into layout: */969 layout()->addWidget(m_pSearchWidget);970 }971 972 }973 974 903 void UIMediumManagerWidget::loadSettings() 975 904 { … … 977 906 m_pActionPool->action(UIActionIndexST_M_Medium_T_Details)->setChecked(gEDataManager->virtualMediaManagerDetailsExpanded()); 978 907 sltToggleMediumDetailsVisibility(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details)->isChecked()); 979 980 /* Search action/widget: */981 m_pActionPool->action(UIActionIndexST_M_Medium_T_Search)->setChecked(gEDataManager->virtualMediaManagerDetailsExpanded());982 sltToggleMediumSearchVisibility(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search)->isChecked());983 908 } 984 909 … … 1719 1644 return qobject_cast<UIMediumManagerWidget*>(QIManagerDialog::widget()); 1720 1645 } 1721 1722 void UIMediumManagerWidget::markUnmarkSearchMatchedItems(bool fMark)1723 {1724 /* Unmark the whole tree: */1725 if (!fMark)1726 {1727 QITreeWidget *pTreeWidget = treeWidget(static_cast<UIMediumDeviceType>(m_pTabWidget->currentIndex()));1728 if (!pTreeWidget)1729 return;1730 QList<UIMediumItem*> itemList;1731 1732 getItems(pTreeWidget->invisibleRootItem(), itemList);1733 }1734 //QList<UIMedium> m_matchedMediumList;1735 // for (int i = 0; i < m_mediumItemList.size(); ++i)1736 // {1737 // for (int j = 0; j < m_pTreeWidget->columnCount(); ++j)1738 // {1739 // if (m_mediumItemList[i])1740 // m_mediumItemList[i]->setData(j, Qt::ForegroundRole, m_defaultItemForeground);1741 // }1742 // }1743 1744 }1745 1746 void UIMediumManagerWidget::getItems(QTreeWidgetItem *pParentItem, QList<UIMediumItem*> outList)1747 {1748 if (!pParentItem)1749 return;1750 if (pParentItem->type() == QITreeWidgetItem::ItemType)1751 {1752 UIMediumItem* pItem = static_cast<UIMediumItem*>(pParentItem);1753 if (pItem)1754 outList.append(pItem);1755 }1756 1757 for (int iChildIndex = 0; iChildIndex < pParentItem->childCount(); ++iChildIndex)1758 getItems(pParentItem->child(iChildIndex), outList);1759 } -
trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h
r76995 r76996 40 40 class UIMediumDetailsWidget; 41 41 class UIMediumItem; 42 class UIMediumSearchWidget;43 42 class UIToolBar; 44 43 … … 178 177 /** Handles command to make medium details @a fVisible. */ 179 178 void sltToggleMediumDetailsVisibility(bool fVisible); 180 /** Handles command to make medium search pane @a fVisible. */181 void sltToggleMediumSearchVisibility(bool fVisible);182 179 /** Handles command to refresh medium. */ 183 180 void sltRefreshAll(); … … 198 195 /** Adjusts tree-widgets according content. */ 199 196 void sltPerformTablesAdjustment(); 200 /** @} */201 202 /** @name Medium search stuff.203 * @{ */204 /** Adjusts tree-widgets according content. */205 void sltHandlePerformSearch();206 197 /** @} */ 207 198 … … 228 219 /** Prepares details-widget. */ 229 220 void prepareDetailsWidget(); 230 /** Prepares search-widget. */231 void prepareSearchWidget();232 221 /** Load settings: */ 233 222 void loadSettings(); … … 296 285 const CheckIfSuitableBy &condition, 297 286 CheckIfSuitableBy *pException = 0); 298 299 287 300 288 /** Checks if @a action can be used for @a pItem. */ … … 363 351 UIEnumerationProgressBar *m_pProgressBar; 364 352 /** @} */ 365 366 /** @name Search-widget variables.367 * @{ */368 /** Holds the medium details-widget instance. */369 UIMediumSearchWidget *m_pSearchWidget;370 /** @} */371 372 353 }; 373 354 -
trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.cpp
r76995 r76996 25 25 #include "QIDialogButtonBox.h" 26 26 #include "QIToolButton.h" 27 #include "QITreeWidget.h"28 27 #include "UIFDCreationDialog.h" 29 28 #include "UIIconPool.h" 30 #include "UIMediumItem.h"31 29 #include "UIMediumSearchWidget.h" 32 30 #include "UIToolBar.h" … … 36 34 #endif /* VBOX_WS_MAC */ 37 35 38 39 class FilterByNameUUID : public QITreeWidgetItemFilter40 {41 42 public:43 44 FilterByNameUUID(UIMediumSearchWidget::SearchType enmSearchType, const QString &strSearchTerm)45 : m_enmSearchType(enmSearchType)46 , m_strSearchTerm(strSearchTerm){}47 48 virtual bool operator()(QTreeWidgetItem *pItem) const49 {50 if (!pItem || m_strSearchTerm.isEmpty())51 return false;52 if (pItem->type() != QITreeWidgetItem::ItemType)53 return false;54 55 UIMediumItem *pMediumItem = static_cast<UIMediumItem*>(pItem);56 if (!pMediumItem)57 return false;58 if (m_enmSearchType == UIMediumSearchWidget::SearchByUUID && !pMediumItem->id().toString().contains(m_strSearchTerm))59 return false;60 if (m_enmSearchType == UIMediumSearchWidget::SearchByName && !pMediumItem->name().contains(m_strSearchTerm))61 return false;62 return true;63 }64 65 private:66 67 UIMediumSearchWidget::SearchType m_enmSearchType;68 QString m_strSearchTerm;69 };70 71 36 UIMediumSearchWidget::UIMediumSearchWidget(QWidget *pParent) 72 37 :QIWithRetranslateUI<QWidget>(pParent) … … 75 40 , m_pShowNextMatchButton(0) 76 41 , m_pShowPreviousMatchButton(0) 77 , m_pTreeWidget(0)78 , m_iScrollToIndex(0)79 42 { 80 43 prepareWidgets(); … … 115 78 m_pShowPreviousMatchButton->setIcon(UIIconPool::iconSet(":/log_viewer_search_backward_16px.png", ":/log_viewer_search_backward_disabled_16px.png")); 116 79 connect(m_pShowPreviousMatchButton, &QIToolButton::clicked, this, &UIMediumSearchWidget::sigShowPreviousMatchingItem); 117 connect(m_pShowPreviousMatchButton, &QIToolButton::clicked, this, &UIMediumSearchWidget::sltShowPreviousMatchingItem);118 119 80 pLayout->addWidget(m_pShowPreviousMatchButton); 120 81 } … … 124 85 m_pShowNextMatchButton->setIcon(UIIconPool::iconSet(":/log_viewer_search_forward_16px.png", ":/log_viewer_search_forward_disabled_16px.png")); 125 86 connect(m_pShowNextMatchButton, &QIToolButton::clicked, this, &UIMediumSearchWidget:: sigShowNextMatchingItem); 126 connect(m_pShowNextMatchButton, &QIToolButton::clicked, this, &UIMediumSearchWidget:: sltShowNextMatchingItem);127 128 87 pLayout->addWidget(m_pShowNextMatchButton); 129 88 } … … 146 105 } 147 106 148 void UIMediumSearchWidget::search(QITreeWidget* pTreeWidget)149 {150 if (!pTreeWidget)151 return;152 153 m_pTreeWidget = pTreeWidget;154 QList<QTreeWidgetItem*> allItems = pTreeWidget->filterItems(QITreeWidgetItemFilter());155 markUnmarkItems(allItems, false);156 157 m_matchedItemList = pTreeWidget->filterItems(FilterByNameUUID(searchType(), searchTerm()));158 markUnmarkItems(m_matchedItemList, true);159 if (!m_matchedItemList.isEmpty())160 {161 m_iScrollToIndex = 0;162 pTreeWidget->scrollTo(pTreeWidget->itemIndex(m_matchedItemList[m_iScrollToIndex]), QAbstractItemView::PositionAtCenter);163 }164 }165 166 107 void UIMediumSearchWidget::retranslateUi() 167 108 { … … 179 120 m_pShowNextMatchButton->setToolTip("Show the next item matching the search term"); 180 121 } 181 182 void UIMediumSearchWidget::showEvent(QShowEvent *pEvent)183 {184 if (m_pSearchTermLineEdit)185 m_pSearchTermLineEdit->setFocus();186 QIWithRetranslateUI<QWidget>::showEvent(pEvent);187 }188 189 void UIMediumSearchWidget::markUnmarkItems(QList<QTreeWidgetItem*> &itemList, bool fMark)190 {191 foreach (QTreeWidgetItem* pItem, itemList)192 {193 if (pItem->type() != QITreeWidgetItem::ItemType)194 continue;195 UIMediumItem *pMediumItem = static_cast<UIMediumItem*>(pItem);196 if (!pMediumItem)197 continue;198 QFont font = pMediumItem->font(0);199 font.setBold(fMark);200 pMediumItem->setFont(0, font);201 }202 }203 204 void UIMediumSearchWidget::sltShowNextMatchingItem()205 {206 if (!m_pTreeWidget)207 return;208 if (++m_iScrollToIndex >= m_matchedItemList.size())209 m_iScrollToIndex = 0;210 if (!m_matchedItemList[m_iScrollToIndex])211 return;212 m_pTreeWidget->scrollTo(m_pTreeWidget->itemIndex(m_matchedItemList[m_iScrollToIndex]), QAbstractItemView::PositionAtCenter);213 }214 215 void UIMediumSearchWidget::sltShowPreviousMatchingItem()216 {217 if (!m_pTreeWidget)218 return;219 if (--m_iScrollToIndex <= 0)220 m_iScrollToIndex = m_matchedItemList.size() - 1;221 if (!m_matchedItemList[m_iScrollToIndex])222 return;223 m_pTreeWidget->scrollTo(m_pTreeWidget->itemIndex(m_matchedItemList[m_iScrollToIndex]), QAbstractItemView::PositionAtCenter);224 225 } -
trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.h
r76995 r76996 27 27 /* Forward declarations: */ 28 28 class QAction; 29 class QTreeWidgetItem;30 29 class QLineEdit; 31 30 class QIComboBox; 32 31 class QIDialogButtonBox; 33 32 class QIToolButton; 34 class QITreeWidget;35 class UIMediumItem;36 37 33 38 34 /** QWidget extension providing a simple way to enter a earch term and search type for medium searching … … 62 58 SearchType searchType() const; 63 59 QString searchTerm() const; 64 void search(QITreeWidget* pTreeWidget);65 60 66 61 protected: 67 62 68 63 void retranslateUi() /* override */; 69 virtual void showEvent(QShowEvent *pEvent) /* override */;70 71 private slots:72 73 void sltShowNextMatchingItem();74 void sltShowPreviousMatchingItem();75 64 76 65 private: 77 66 78 void prepareWidgets(); 79 void markUnmarkItems(QList<QTreeWidgetItem*> &itemList, bool fMark); 80 67 void prepareWidgets(); 81 68 QIComboBox *m_pSearchComboxBox; 82 69 QLineEdit *m_pSearchTermLineEdit; 83 70 QIToolButton *m_pShowNextMatchButton; 84 71 QIToolButton *m_pShowPreviousMatchButton; 85 86 QList<QTreeWidgetItem*> m_matchedItemList;87 QITreeWidget *m_pTreeWidget;88 int m_iScrollToIndex;89 72 }; 90 73
Note:
See TracChangeset
for help on using the changeset viewer.