VirtualBox

Changeset 92504 in vbox


Ignore:
Timestamp:
Nov 18, 2021 7:30:14 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:10141: Some more improvements on viso creator dialog

  • Updating dialog window title as VISO name changes
  • Actively enabling/disabling file actions with selection changes
Location:
trunk/src/VBox/Frontends/VirtualBox/src/medium/viso
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoBrowserBase.h

    r92471 r92504  
    5353    bool isTreeViewVisible() const;
    5454    void hideTreeView();
     55    virtual bool tableViewHasSelection() const = 0;
    5556
    5657public slots:
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp

    r92492 r92504  
    570570}
    571571
     572bool UIVisoContentBrowser::tableViewHasSelection() const
     573{
     574    if (!m_pTableView)
     575        return false;
     576    QItemSelectionModel *pSelectionModel = m_pTableView->selectionModel();
     577    if (!pSelectionModel)
     578        return false;
     579    return pSelectionModel->hasSelection();
     580}
     581
    572582QModelIndex UIVisoContentBrowser::convertIndexToTableIndex(const QModelIndex &index)
    573583{
     
    653663    if (!rootItem() || !rootItem()->child(0))
    654664        return;
    655     const QString strName = QString("%1%2").arg(QDir::toNativeSeparators("/")).arg(m_strVisoName);
     665    const QString strName(QDir::toNativeSeparators("/"));
    656666
    657667    rootItem()->child(0)->setData(strName, UICustomFileSystemModelColumn_Name);
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.h

    r82968 r92504  
    5959    virtual void showHideHiddenObjects(bool bShow) /* override */;
    6060    void setVisoName(const QString &strName);
     61    virtual bool tableViewHasSelection() const final override;
    6162
    6263public slots:
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp

    r92492 r92504  
    156156    if(m_pVISOContentBrowser)
    157157        m_pVISOContentBrowser->setVisoName(m_visoOptions.m_strVisoName);
     158    emit sigVisoNameChanged(strVisoName);
    158159}
    159160
     
    365366
    366367    m_pAddAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Add);
     368    if (m_pAddAction && m_pHostBrowser)
     369        m_pAddAction->setEnabled(m_pHostBrowser->tableViewHasSelection());
    367370    m_pRemoveAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Remove);
     371    if (m_pRemoveAction && m_pVISOContentBrowser)
     372        m_pRemoveAction->setEnabled(m_pVISOContentBrowser->tableViewHasSelection());
    368373    m_pCreateNewDirectoryAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_CreateNewDirectory);
    369374    m_pRenameAction = m_pActionPool->action(UIActionIndex_M_VISOCreator_Rename);
     
    574579        connect(m_pVisoCreatorWidget, &UIVisoCreatorWidget::sigSetCancelButtonShortCut,
    575580                this, &UIVisoCreatorDialog::sltSetCancelButtonShortCut);
     581        connect(m_pVisoCreatorWidget, &UIVisoCreatorWidget::sigVisoNameChanged,
     582                this, &UIVisoCreatorDialog::sltsigVisoNameChanged);
    576583    }
    577584
     
    603610void UIVisoCreatorDialog::retranslateUi()
    604611{
    605     if (!m_strMachineName.isEmpty())
    606         setWindowTitle(QString("%1 - %2").arg(m_strMachineName).arg(UIVisoCreatorWidget::tr("VISO Creator")));
    607     else
    608         setWindowTitle(QString("%1").arg(UIVisoCreatorWidget::tr("VISO Creator")));
     612    updateWindowTitle();
    609613    if (m_pButtonBox && m_pButtonBox->button(QDialogButtonBox::Ok))
    610614    {
     
    643647}
    644648
     649void UIVisoCreatorDialog::sltsigVisoNameChanged(const QString &strName)
     650{
     651    Q_UNUSED(strName);
     652    updateWindowTitle();
     653}
     654
    645655void UIVisoCreatorDialog::loadSettings()
    646656{
     
    666676    gEDataManager->setVisoCreatorDialogGeometry(geo, isCurrentlyMaximized());
    667677}
     678
     679void UIVisoCreatorDialog::updateWindowTitle()
     680{
     681    setWindowTitle(QString("%1 - %2.%3").arg(tr("VISO Creator")).arg(visoName()).arg("viso"));
     682}
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h

    r92492 r92504  
    5454
    5555    void sigSetCancelButtonShortCut(QKeySequence keySequence);
     56    void sigVisoNameChanged(const QString &strVisoName);
    5657
    5758public:
     
    196197
    197198    void sltSetCancelButtonShortCut(QKeySequence keySequence);
     199    void sltsigVisoNameChanged(const QString &strName);
    198200
    199201private:
     
    203205    void loadSettings();
    204206    void saveDialogGeometry();
     207    void updateWindowTitle();
    205208
    206209    QString m_strMachineName;
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp

    r92492 r92504  
    262262}
    263263
     264bool UIVisoHostBrowser::tableViewHasSelection() const
     265{
     266    if (!m_pTableView)
     267        return false;
     268    QItemSelectionModel *pSelectionModel = m_pTableView->selectionModel();
     269    if (!pSelectionModel)
     270        return false;
     271    return pSelectionModel->hasSelection();
     272}
     273
    264274void UIVisoHostBrowser::sltHandleAddAction()
    265275{
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h

    r92492 r92504  
    4747    QString      currentPath() const;
    4848    void         setCurrentPath(const QString &strPath);
     49    virtual bool tableViewHasSelection() const final override;
    4950
    5051public slots:
     
    7273    UIVisoHostBrowserModel *m_pTreeModel;
    7374    UIVisoHostBrowserModel *m_pTableModel;
    74     QTableView            *m_pTableView;
     75    QTableView             *m_pTableView;
    7576};
    7677
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