VirtualBox

Changeset 77014 in vbox


Ignore:
Timestamp:
Jan 28, 2019 8:24:50 AM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: Adding a search functionality to medium manager.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp

    r76996 r77014  
    100100/* Virtual Media Manager: */
    101101const char *UIExtraDataDefs::GUI_VirtualMediaManager_Details_Expanded = "GUI/VirtualMediaManager/Details/Expanded";
     102const char *UIExtraDataDefs::GUI_VirtualMediaManager_Search_Widget_Expanded = "GUI/VirtualMediaManager/SearchWidget/Expanded";
    102103
    103104/* Host Network Manager: */
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h

    r76996 r77014  
    191191        /** Holds whether Virtual Media Manager details expanded. */
    192192        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;
    193195    /** @} */
    194196
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp

    r76996 r77014  
    29752975}
    29762976
     2977bool UIExtraDataManager::virtualMediaManagerSearchWidgetExpanded()
     2978{
     2979    /* 'False' unless feature allowed: */
     2980    return isFeatureAllowed(GUI_VirtualMediaManager_Search_Widget_Expanded);
     2981}
     2982
     2983void 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
    29772989bool UIExtraDataManager::hostNetworkManagerDetailsExpanded()
    29782990{
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h

    r76996 r77014  
    370370        /** Defines whether Virtual Media Manager details @a fExpanded. */
    371371        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);
    372376    /** @} */
    373377
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp

    r76996 r77014  
    20422042        setStatusTip(QApplication::translate("UIActionPool", "Open pane with selected disk image file properties"));
    20432043        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. */
     2048class UIActionMenuSelectorMediumToggleSearch : public UIActionToggle
     2049{
     2050    Q_OBJECT;
     2051
     2052public:
     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
     2067protected:
     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()));
    20442088    }
    20452089};
     
    26192663    m_pool[UIActionIndexST_M_Medium_S_Release] = new UIActionMenuSelectorMediumPerformRelease(this);
    26202664    m_pool[UIActionIndexST_M_Medium_T_Details] = new UIActionMenuSelectorMediumToggleProperties(this);
     2665    m_pool[UIActionIndexST_M_Medium_T_Search] = new UIActionMenuSelectorMediumToggleSearch(this);
    26212666    m_pool[UIActionIndexST_M_Medium_S_Refresh] = new UIActionMenuSelectorMediumPerformRefresh(this);
    26222667
     
    30873132    /* 'Properties' action: */
    30883133    fSeparator = addAction(pMenu, action(UIActionIndexST_M_Medium_T_Details)) || fSeparator;
     3134    /* 'Search' action: */
     3135    fSeparator = addAction(pMenu, action(UIActionIndexST_M_Medium_T_Search)) || fSeparator;
    30893136
    30903137    /* Separator? */
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h

    r76996 r77014  
    138138    UIActionIndexST_M_Medium_S_Release,
    139139    UIActionIndexST_M_Medium_T_Details,
     140    UIActionIndexST_M_Medium_T_Search,
    140141    UIActionIndexST_M_Medium_S_Refresh,
    141142
     
    247248
    248249#endif /* !FEQT_INCLUDED_SRC_globals_UIActionPoolManager_h */
    249 
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp

    r76996 r77014  
    3737#include "UIMediumItem.h"
    3838#include "UIMediumManager.h"
     39#include "UIMediumSearchWidget.h"
    3940#include "UIWizardCloneVD.h"
    4041#include "UIMessageCenter.h"
     
    161162    , m_pToolBar(0)
    162163    , m_pProgressBar(0)
     164    , m_pSearchWidget(0)
    163165{
    164166    /* Prepare: */
     
    562564}
    563565
     566void UIMediumManagerWidget::sltToggleMediumSearchVisibility(bool fVisible)
     567{
     568    /* Save the setting: */
     569    gEDataManager->setVirtualMediaManagerSearchWidgetExpanded(fVisible);
     570    /* Toggle medium details visibility: */
     571    if (m_pSearchWidget)
     572        m_pSearchWidget->setVisible(fVisible);
     573}
     574
    564575void UIMediumManagerWidget::sltRefreshAll()
    565576{
     
    588599    /* Re-fetch currently chosen medium-item: */
    589600    refetchCurrentChosenMediumItem();
     601    sltHandlePerformSearch();
    590602}
    591603
     
    620632        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Release));
    621633        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details));
     634        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));
    622635    }
    623636    else
    624637    {
    625638        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Add));
     639        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));
    626640        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh));
    627641    }
     
    653667            pTreeWidget->header()->resizeSection(0, iSize0);
    654668    }
     669}
     670
     671void UIMediumManagerWidget::sltHandlePerformSearch()
     672{
     673    if (!m_pSearchWidget || !m_pTabWidget)
     674        return;
     675
     676    QITreeWidget *pTreeWidget = treeWidget(static_cast<UIMediumDeviceType>(m_pTabWidget->currentIndex()));
     677    if (!pTreeWidget)
     678        return;
     679    m_pSearchWidget->search(pTreeWidget);
    655680}
    656681
     
    711736    addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Release));
    712737    addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details));
     738    addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));
    713739    addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh));
    714740
     
    726752    connect(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details), &QAction::toggled,
    727753            this, &UIMediumManagerWidget::sltToggleMediumDetailsVisibility);
     754    connect(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search), &QAction::toggled,
     755            this, &UIMediumManagerWidget::sltToggleMediumSearchVisibility);
    728756    connect(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh), &QAction::triggered,
    729757            this, &UIMediumManagerWidget::sltRefreshAll);
     
    754782        /* Prepare details-widget: */
    755783        prepareDetailsWidget();
     784        /* Prepare search-widget: */
     785        prepareSearchWidget();
    756786    }
    757787}
     
    776806        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Release));
    777807        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details));
     808        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search));
    778809        m_pToolBar->addSeparator();
    779810        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Medium_S_Refresh));
     
    901932}
    902933
     934void UIMediumManagerWidget::prepareSearchWidget()
     935{
     936    m_pSearchWidget = new UIMediumSearchWidget(this);
     937    AssertPtrReturnVoid(m_pSearchWidget);
     938    {
     939        m_pSearchWidget->setVisible(false);
     940        m_pSearchWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
     941        connect(m_pSearchWidget, &UIMediumSearchWidget::sigPerformSearch,
     942                this, &UIMediumManagerWidget::sltHandlePerformSearch);
     943
     944        /* Add into layout: */
     945        layout()->addWidget(m_pSearchWidget);
     946    }
     947
     948}
     949
    903950void UIMediumManagerWidget::loadSettings()
    904951{
     
    906953    m_pActionPool->action(UIActionIndexST_M_Medium_T_Details)->setChecked(gEDataManager->virtualMediaManagerDetailsExpanded());
    907954    sltToggleMediumDetailsVisibility(m_pActionPool->action(UIActionIndexST_M_Medium_T_Details)->isChecked());
     955
     956    /* Search action/widget: */
     957    m_pActionPool->action(UIActionIndexST_M_Medium_T_Search)->setChecked(gEDataManager->virtualMediaManagerSearchWidgetExpanded());
     958    sltToggleMediumSearchVisibility(m_pActionPool->action(UIActionIndexST_M_Medium_T_Search)->isChecked());
    908959}
    909960
     
    9541005        if (QTreeWidgetItem *pItem = pTreeWidgetFD->topLevelItem(0))
    9551006            setCurrentItem(pTreeWidgetFD, pItem);
     1007
     1008    sltHandlePerformSearch();
    9561009}
    9571010
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h

    r76996 r77014  
    4040class UIMediumDetailsWidget;
    4141class UIMediumItem;
     42class UIMediumSearchWidget;
    4243class UIToolBar;
    4344
     
    177178        /** Handles command to make medium details @a fVisible. */
    178179        void sltToggleMediumDetailsVisibility(bool fVisible);
     180        /** Handles command to make medium search pane @a fVisible. */
     181        void sltToggleMediumSearchVisibility(bool fVisible);
    179182        /** Handles command to refresh medium. */
    180183        void sltRefreshAll();
     
    195198        /** Adjusts tree-widgets according content. */
    196199        void sltPerformTablesAdjustment();
     200    /** @} */
     201
     202   /** @name Medium search stuff.
     203      * @{ */
     204        /** Adjusts tree-widgets according content. */
     205        void sltHandlePerformSearch();
    197206    /** @} */
    198207
     
    219228        /** Prepares details-widget. */
    220229        void prepareDetailsWidget();
     230        /** Prepares search-widget. */
     231        void prepareSearchWidget();
    221232        /** Load settings: */
    222233        void loadSettings();
     
    285296                                        const CheckIfSuitableBy &condition,
    286297                                        CheckIfSuitableBy *pException = 0);
     298
    287299
    288300        /** Checks if @a action can be used for @a pItem. */
     
    351363        UIEnumerationProgressBar *m_pProgressBar;
    352364    /** @} */
     365
     366    /** @name Search-widget variables.
     367      * @{ */
     368        /** Holds the medium details-widget instance. */
     369        UIMediumSearchWidget *m_pSearchWidget;
     370    /** @} */
     371
    353372};
    354373
Note: See TracChangeset for help on using the changeset viewer.

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