VirtualBox

Changeset 80129 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Aug 5, 2019 11:35:21 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
132570
Message:

FE/Qt: bugref:7720: VirtualBox Manager: Details pane: Possibility to edit VM mini-toolbar on-the-fly.

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

Legend:

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

    r79921 r80129  
    10081008enum MiniToolbarAlignment
    10091009{
     1010    MiniToolbarAlignment_Disabled,
    10101011    MiniToolbarAlignment_Bottom,
    10111012    MiniToolbarAlignment_Top
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDetailsGenerator.cpp

    r80103 r80129  
    840840    if (fOptions & UIExtraDataMetaDefs::DetailsElementOptionTypeUserInterface_MiniToolbar)
    841841    {
     842        const QString strAnchorType = QString("mini_toolbar");
    842843        const QString strMiniToolbarEnabled = comMachine.GetExtraData(UIExtraDataDefs::GUI_ShowMiniToolBar);
    843         /* Try to convert loaded data to bool: */
    844844        const bool fEnabled = !(   strMiniToolbarEnabled.compare("false", Qt::CaseInsensitive) == 0
    845845                                || strMiniToolbarEnabled.compare("no", Qt::CaseInsensitive) == 0
    846846                                || strMiniToolbarEnabled.compare("off", Qt::CaseInsensitive) == 0
    847847                                || strMiniToolbarEnabled == "0");
    848         /* Append information: */
    849848        if (fEnabled)
    850849        {
     
    855854                switch (gpConverter->fromInternalString<MiniToolbarAlignment>(strMiniToolbarPosition))
    856855                {
    857                     /* Append information: */
    858856                    case MiniToolbarAlignment_Top:
    859857                        table << UITextTableLine(QApplication::translate("UIDetails", "Mini-toolbar Position", "details (user interface)"),
    860                                                  QApplication::translate("UIDetails", "Top", "details (user interface/mini-toolbar position)"));
     858                                                 QString("<a href=#%1,%2>%3</a>")
     859                                                     .arg(strAnchorType)
     860                                                     .arg((int)MiniToolbarAlignment_Top)
     861                                                     .arg(QApplication::translate("UIDetails", "Top", "details (user interface/mini-toolbar position)")));
    861862                        break;
    862                         /* Append information: */
    863863                    case MiniToolbarAlignment_Bottom:
    864864                        table << UITextTableLine(QApplication::translate("UIDetails", "Mini-toolbar Position", "details (user interface)"),
    865                                                  QApplication::translate("UIDetails", "Bottom", "details (user interface/mini-toolbar position)"));
     865                                                 QString("<a href=#%1,%2>%3</a>")
     866                                                     .arg(strAnchorType)
     867                                                     .arg((int)MiniToolbarAlignment_Bottom)
     868                                                     .arg(QApplication::translate("UIDetails", "Bottom", "details (user interface/mini-toolbar position)")));
     869                        break;
     870                    default:
    866871                        break;
    867872                }
    868873            }
    869874        }
    870         /* Append information: */
    871875        else
    872876            table << UITextTableLine(QApplication::translate("UIDetails", "Mini-toolbar", "details (user interface)"),
    873                                      QApplication::translate("UIDetails", "Disabled", "details (user interface/mini-toolbar)"));
     877                                     QString("<a href=#%1,%2>%3</a>")
     878                                         .arg(strAnchorType)
     879                                         .arg((int)MiniToolbarAlignment_Disabled)
     880                                         .arg(QApplication::translate("UIDetails", "Disabled", "details (user interface/mini-toolbar)")));
    874881    }
    875882#endif /* !VBOX_WS_MAC */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsElement.cpp

    r80106 r80129  
    6565#endif
    6666    AnchorRole_StatusBar,
     67#ifndef VBOX_WS_MAC
     68    AnchorRole_MiniToolbar,
     69#endif
    6770};
    6871
     
    178181#endif
    179182    m_pTextPane->setAnchorRoleRestricted("#status_bar", cal == ConfigurationAccessLevel_Null);
     183#ifndef VBOX_WS_MAC
     184    m_pTextPane->setAnchorRoleRestricted("#mini_toolbar", cal == ConfigurationAccessLevel_Null);
     185#endif
    180186}
    181187
     
    470476#endif
    471477    roles["#status_bar"] = AnchorRole_StatusBar;
     478#ifndef VBOX_WS_MAC
     479    roles["#mini_toolbar"] = AnchorRole_MiniToolbar;
     480#endif
    472481
    473482    /* Current anchor role: */
     
    785794            break;
    786795        }
     796#ifndef VBOX_WS_MAC
     797        case AnchorRole_MiniToolbar:
     798        {
     799            /* Parse whether we have it enabled: */
     800            bool fParsed = false;
     801            MiniToolbarAlignment enmAlignment = static_cast<MiniToolbarAlignment>(strData.section(',', 0, 0).toInt(&fParsed));
     802            if (!fParsed)
     803                enmAlignment = MiniToolbarAlignment_Disabled;
     804
     805            /* Fill menu with actions: */
     806            UIMenu menu;
     807            QAction *pActionDisabled = menu.addAction(QApplication::translate("UIDetails", "Disabled", "details (user interface/mini-toolbar)"));
     808            pActionDisabled->setCheckable(true);
     809            pActionDisabled->setChecked(enmAlignment == MiniToolbarAlignment_Disabled);
     810            QAction *pActionTop = menu.addAction(QApplication::translate("UIDetails", "Top", "details (user interface/mini-toolbar position)"));
     811            pActionTop->setCheckable(true);
     812            pActionTop->setChecked(enmAlignment == MiniToolbarAlignment_Top);
     813            QAction *pActionBottom = menu.addAction(QApplication::translate("UIDetails", "Bottom", "details (user interface/mini-toolbar position)"));
     814            pActionBottom->setCheckable(true);
     815            pActionBottom->setChecked(enmAlignment == MiniToolbarAlignment_Bottom);
     816
     817            /* Execute menu, look for result: */
     818            QAction *pTriggeredAction = menu.exec(QCursor::pos());
     819            if (pTriggeredAction)
     820            {
     821                const QUuid uMachineId = machine().GetId();
     822                if (pTriggeredAction == pActionDisabled)
     823                    gEDataManager->setMiniToolbarEnabled(false, uMachineId);
     824                else if (pTriggeredAction == pActionTop)
     825                {
     826                    gEDataManager->setMiniToolbarEnabled(true, uMachineId);
     827                    gEDataManager->setMiniToolbarAlignment(Qt::AlignTop, uMachineId);
     828                }
     829                else if (pTriggeredAction == pActionBottom)
     830                {
     831                    gEDataManager->setMiniToolbarEnabled(true, uMachineId);
     832                    gEDataManager->setMiniToolbarAlignment(Qt::AlignBottom, uMachineId);
     833                }
     834            }
     835            break;
     836        }
     837#endif
    787838        default:
    788839            break;
Note: See TracChangeset for help on using the changeset viewer.

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