VirtualBox

Changeset 94476 in vbox


Ignore:
Timestamp:
Apr 5, 2022 6:03:30 PM (2 years ago)
Author:
vboxsync
Message:

FE/Qt/Ds: bugref:6899: Machine settings: General page accessibility improvements for Advanced tab; Moving dnd, shared clipboard and snapshot related stuff to separate editors.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk

    r94445 r94476  
    900900        src/settings/editors/UIColorThemeEditor.h \
    901901        src/settings/editors/UIDefaultMachineFolderEditor.h \
     902        src/settings/editors/UIDragAndDropEditor.h \
    902903        src/settings/editors/UIGlobalDisplayFeaturesEditor.h \
    903904        src/settings/editors/UIGlobalProxyFeaturesEditor.h \
     
    915916        src/settings/editors/UIRecordingSettingsEditor.h \
    916917        src/settings/editors/UIScaleFactorEditor.h \
     918        src/settings/editors/UISharedClipboardEditor.h \
    917919        src/settings/editors/UIShortcutConfigurationEditor.h \
     920        src/settings/editors/UISnapshotFolderEditor.h \
    918921        src/settings/editors/UIVideoMemoryEditor.h \
    919922        src/settings/editors/UIVirtualCPUEditor.h \
     
    14611464        src/settings/editors/UIColorThemeEditor.cpp \
    14621465        src/settings/editors/UIDefaultMachineFolderEditor.cpp \
     1466        src/settings/editors/UIDragAndDropEditor.cpp \
    14631467        src/settings/editors/UIGlobalDisplayFeaturesEditor.cpp \
    14641468        src/settings/editors/UIGlobalProxyFeaturesEditor.cpp \
     
    14761480        src/settings/editors/UIRecordingSettingsEditor.cpp \
    14771481        src/settings/editors/UIScaleFactorEditor.cpp \
     1482        src/settings/editors/UISharedClipboardEditor.cpp \
    14781483        src/settings/editors/UIShortcutConfigurationEditor.cpp \
     1484        src/settings/editors/UISnapshotFolderEditor.cpp \
    14791485        src/settings/editors/UIVideoMemoryEditor.cpp \
    14801486        src/settings/editors/UIVirtualCPUEditor.cpp \
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIDragAndDropEditor.cpp

    r94475 r94476  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIAudioControllerEditor class implementation.
     3 * VBox Qt GUI - UIDragAndDropEditor class implementation.
    44 */
    55
     
    2525#include "UICommon.h"
    2626#include "UIConverter.h"
    27 #include "UIAudioControllerEditor.h"
     27#include "UIDragAndDropEditor.h"
    2828
    2929/* COM includes: */
     
    3131
    3232
    33 UIAudioControllerEditor::UIAudioControllerEditor(QWidget *pParent /* = 0 */)
     33UIDragAndDropEditor::UIDragAndDropEditor(QWidget *pParent /* = 0 */)
    3434    : QIWithRetranslateUI<QWidget>(pParent)
    35     , m_enmValue(KAudioControllerType_Max)
     35    , m_enmValue(KDnDMode_Max)
    3636    , m_pLabel(0)
    3737    , m_pCombo(0)
     
    4040}
    4141
    42 void UIAudioControllerEditor::setValue(KAudioControllerType enmValue)
     42void UIDragAndDropEditor::setValue(KDnDMode enmValue)
    4343{
    4444    /* Update cached value and
     
    5151}
    5252
    53 KAudioControllerType UIAudioControllerEditor::value() const
     53KDnDMode UIDragAndDropEditor::value() const
    5454{
    55     return m_pCombo ? m_pCombo->currentData().value<KAudioControllerType>() : m_enmValue;
     55    return m_pCombo ? m_pCombo->currentData().value<KDnDMode>() : m_enmValue;
    5656}
    5757
    58 int UIAudioControllerEditor::minimumLabelHorizontalHint() const
     58int UIDragAndDropEditor::minimumLabelHorizontalHint() const
    5959{
    6060    return m_pLabel ? m_pLabel->minimumSizeHint().width() : 0;
    6161}
    6262
    63 void UIAudioControllerEditor::setMinimumLayoutIndent(int iIndent)
     63void UIDragAndDropEditor::setMinimumLayoutIndent(int iIndent)
    6464{
    6565    if (m_pLayout)
     
    6767}
    6868
    69 void UIAudioControllerEditor::retranslateUi()
     69void UIDragAndDropEditor::retranslateUi()
    7070{
    7171    if (m_pLabel)
    72         m_pLabel->setText(tr("Audio &Controller:"));
     72        m_pLabel->setText(tr("D&rag'n'Drop:"));
    7373    if (m_pCombo)
    7474    {
    7575        for (int i = 0; i < m_pCombo->count(); ++i)
    7676        {
    77             const KAudioControllerType enmType = m_pCombo->itemData(i).value<KAudioControllerType>();
     77            const KDnDMode enmType = m_pCombo->itemData(i).value<KDnDMode>();
    7878            m_pCombo->setItemText(i, gpConverter->toString(enmType));
    7979        }
    80         m_pCombo->setToolTip(tr("Selects the type of the virtual sound card. Depending on this value, "
    81                                 "VirtualBox will provide different audio hardware to the virtual machine."));
     80        m_pCombo->setToolTip(tr("Holds which data will be copied between the guest and the host OS by drag'n'drop. "
     81                                "This feature requires Guest Additions to be installed in the guest OS."));
    8282    }
    8383}
    8484
    85 void UIAudioControllerEditor::prepare()
     85void UIDragAndDropEditor::prepare()
    8686{
    8787    /* Create main layout: */
     
    129129}
    130130
    131 void UIAudioControllerEditor::populateCombo()
     131void UIDragAndDropEditor::populateCombo()
    132132{
    133133    if (m_pCombo)
     
    138138        /* Load currently supported audio driver types: */
    139139        CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
    140         m_supportedValues = comProperties.GetSupportedAudioControllerTypes();
     140        m_supportedValues = comProperties.GetSupportedDnDModes();
    141141
    142142        /* Make sure requested value if sane is present as well: */
    143         if (   m_enmValue != KAudioControllerType_Max
     143        if (   m_enmValue != KDnDMode_Max
    144144            && !m_supportedValues.contains(m_enmValue))
    145145            m_supportedValues.prepend(m_enmValue);
    146146
    147147        /* Update combo with all the supported values: */
    148         foreach (const KAudioControllerType &enmType, m_supportedValues)
     148        foreach (const KDnDMode &enmType, m_supportedValues)
    149149            m_pCombo->addItem(QString(), QVariant::fromValue(enmType));
    150150
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIDragAndDropEditor.h

    r94475 r94476  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIAudioControllerEditor class declaration.
     3 * VBox Qt GUI - UIDragAndDropEditor class declaration.
    44 */
    55
     
    1616 */
    1717
    18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UIAudioControllerEditor_h
    19 #define FEQT_INCLUDED_SRC_settings_editors_UIAudioControllerEditor_h
     18#ifndef FEQT_INCLUDED_SRC_settings_editors_UIDragAndDropEditor_h
     19#define FEQT_INCLUDED_SRC_settings_editors_UIDragAndDropEditor_h
    2020#ifndef RT_WITHOUT_PRAGMA_ONCE
    2121# pragma once
     
    3737class QLabel;
    3838
    39 /** QWidget subclass used as an audio controller editor. */
    40 class SHARED_LIBRARY_STUFF UIAudioControllerEditor : public QIWithRetranslateUI<QWidget>
     39/** QWidget subclass used as a drag&drop editor. */
     40class SHARED_LIBRARY_STUFF UIDragAndDropEditor : public QIWithRetranslateUI<QWidget>
    4141{
    4242    Q_OBJECT;
     
    4545
    4646    /** Constructs editor passing @a pParent to the base-class. */
    47     UIAudioControllerEditor(QWidget *pParent = 0);
     47    UIDragAndDropEditor(QWidget *pParent = 0);
    4848
    4949    /** Defines editor @a enmValue. */
    50     void setValue(KAudioControllerType enmValue);
     50    void setValue(KDnDMode enmValue);
    5151    /** Returns editor value. */
    52     KAudioControllerType value() const;
     52    KDnDMode value() const;
    5353
    5454    /** Returns the vector of supported values. */
    55     QVector<KAudioControllerType> supportedValues() const { return m_supportedValues; }
     55    QVector<KDnDMode> supportedValues() const { return m_supportedValues; }
    5656
    5757    /** Returns minimum layout hint. */
     
    7373
    7474    /** Holds the value to be selected. */
    75     KAudioControllerType  m_enmValue;
     75    KDnDMode  m_enmValue;
    7676
    7777    /** Holds the vector of supported values. */
    78     QVector<KAudioControllerType>  m_supportedValues;
     78    QVector<KDnDMode>  m_supportedValues;
    7979
    8080    /** Holds the main layout instance. */
     
    8686};
    8787
    88 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UIAudioControllerEditor_h */
     88#endif /* !FEQT_INCLUDED_SRC_settings_editors_UIDragAndDropEditor_h */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UISharedClipboardEditor.cpp

    r94475 r94476  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIAudioControllerEditor class implementation.
     3 * VBox Qt GUI - UISharedClipboardEditor class implementation.
    44 */
    55
     
    2525#include "UICommon.h"
    2626#include "UIConverter.h"
    27 #include "UIAudioControllerEditor.h"
     27#include "UISharedClipboardEditor.h"
    2828
    2929/* COM includes: */
     
    3131
    3232
    33 UIAudioControllerEditor::UIAudioControllerEditor(QWidget *pParent /* = 0 */)
     33UISharedClipboardEditor::UISharedClipboardEditor(QWidget *pParent /* = 0 */)
    3434    : QIWithRetranslateUI<QWidget>(pParent)
    35     , m_enmValue(KAudioControllerType_Max)
     35    , m_enmValue(KClipboardMode_Max)
    3636    , m_pLabel(0)
    3737    , m_pCombo(0)
     
    4040}
    4141
    42 void UIAudioControllerEditor::setValue(KAudioControllerType enmValue)
     42void UISharedClipboardEditor::setValue(KClipboardMode enmValue)
    4343{
    4444    /* Update cached value and
     
    5151}
    5252
    53 KAudioControllerType UIAudioControllerEditor::value() const
     53KClipboardMode UISharedClipboardEditor::value() const
    5454{
    55     return m_pCombo ? m_pCombo->currentData().value<KAudioControllerType>() : m_enmValue;
     55    return m_pCombo ? m_pCombo->currentData().value<KClipboardMode>() : m_enmValue;
    5656}
    5757
    58 int UIAudioControllerEditor::minimumLabelHorizontalHint() const
     58int UISharedClipboardEditor::minimumLabelHorizontalHint() const
    5959{
    6060    return m_pLabel ? m_pLabel->minimumSizeHint().width() : 0;
    6161}
    6262
    63 void UIAudioControllerEditor::setMinimumLayoutIndent(int iIndent)
     63void UISharedClipboardEditor::setMinimumLayoutIndent(int iIndent)
    6464{
    6565    if (m_pLayout)
     
    6767}
    6868
    69 void UIAudioControllerEditor::retranslateUi()
     69void UISharedClipboardEditor::retranslateUi()
    7070{
    7171    if (m_pLabel)
    72         m_pLabel->setText(tr("Audio &Controller:"));
     72        m_pLabel->setText(tr("&Shared Clipboard:"));
    7373    if (m_pCombo)
    7474    {
    7575        for (int i = 0; i < m_pCombo->count(); ++i)
    7676        {
    77             const KAudioControllerType enmType = m_pCombo->itemData(i).value<KAudioControllerType>();
     77            const KClipboardMode enmType = m_pCombo->itemData(i).value<KClipboardMode>();
    7878            m_pCombo->setItemText(i, gpConverter->toString(enmType));
    7979        }
    80         m_pCombo->setToolTip(tr("Selects the type of the virtual sound card. Depending on this value, "
    81                                 "VirtualBox will provide different audio hardware to the virtual machine."));
     80        m_pCombo->setToolTip(tr("Holds which clipboard data will be copied between the guest and the host OS. "
     81                                "This feature requires Guest Additions to be installed in the guest OS."));
    8282    }
    8383}
    8484
    85 void UIAudioControllerEditor::prepare()
     85void UISharedClipboardEditor::prepare()
    8686{
    8787    /* Create main layout: */
     
    129129}
    130130
    131 void UIAudioControllerEditor::populateCombo()
     131void UISharedClipboardEditor::populateCombo()
    132132{
    133133    if (m_pCombo)
     
    138138        /* Load currently supported audio driver types: */
    139139        CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
    140         m_supportedValues = comProperties.GetSupportedAudioControllerTypes();
     140        m_supportedValues = comProperties.GetSupportedClipboardModes();
    141141
    142142        /* Make sure requested value if sane is present as well: */
    143         if (   m_enmValue != KAudioControllerType_Max
     143        if (   m_enmValue != KClipboardMode_Max
    144144            && !m_supportedValues.contains(m_enmValue))
    145145            m_supportedValues.prepend(m_enmValue);
    146146
    147147        /* Update combo with all the supported values: */
    148         foreach (const KAudioControllerType &enmType, m_supportedValues)
     148        foreach (const KClipboardMode &enmType, m_supportedValues)
    149149            m_pCombo->addItem(QString(), QVariant::fromValue(enmType));
    150150
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UISharedClipboardEditor.h

    r94475 r94476  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIAudioControllerEditor class declaration.
     3 * VBox Qt GUI - UISharedClipboardEditor class declaration.
    44 */
    55
     
    1616 */
    1717
    18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UIAudioControllerEditor_h
    19 #define FEQT_INCLUDED_SRC_settings_editors_UIAudioControllerEditor_h
     18#ifndef FEQT_INCLUDED_SRC_settings_editors_UISharedClipboardEditor_h
     19#define FEQT_INCLUDED_SRC_settings_editors_UISharedClipboardEditor_h
    2020#ifndef RT_WITHOUT_PRAGMA_ONCE
    2121# pragma once
     
    3737class QLabel;
    3838
    39 /** QWidget subclass used as an audio controller editor. */
    40 class SHARED_LIBRARY_STUFF UIAudioControllerEditor : public QIWithRetranslateUI<QWidget>
     39/** QWidget subclass used as a shared clipboard editor. */
     40class SHARED_LIBRARY_STUFF UISharedClipboardEditor : public QIWithRetranslateUI<QWidget>
    4141{
    4242    Q_OBJECT;
     
    4545
    4646    /** Constructs editor passing @a pParent to the base-class. */
    47     UIAudioControllerEditor(QWidget *pParent = 0);
     47    UISharedClipboardEditor(QWidget *pParent = 0);
    4848
    4949    /** Defines editor @a enmValue. */
    50     void setValue(KAudioControllerType enmValue);
     50    void setValue(KClipboardMode enmValue);
    5151    /** Returns editor value. */
    52     KAudioControllerType value() const;
     52    KClipboardMode value() const;
    5353
    5454    /** Returns the vector of supported values. */
    55     QVector<KAudioControllerType> supportedValues() const { return m_supportedValues; }
     55    QVector<KClipboardMode> supportedValues() const { return m_supportedValues; }
    5656
    5757    /** Returns minimum layout hint. */
     
    7373
    7474    /** Holds the value to be selected. */
    75     KAudioControllerType  m_enmValue;
     75    KClipboardMode  m_enmValue;
    7676
    7777    /** Holds the vector of supported values. */
    78     QVector<KAudioControllerType>  m_supportedValues;
     78    QVector<KClipboardMode>  m_supportedValues;
    7979
    8080    /** Holds the main layout instance. */
     
    8686};
    8787
    88 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UIAudioControllerEditor_h */
     88#endif /* !FEQT_INCLUDED_SRC_settings_editors_UISharedClipboardEditor_h */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UISnapshotFolderEditor.cpp

    r94475 r94476  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIVRDEAuthLibraryEditor class implementation.
     3 * VBox Qt GUI - UISnapshotFolderEditor class implementation.
    44 */
    55
     
    2323#include "UICommon.h"
    2424#include "UIFilePathSelector.h"
    25 #include "UIVRDEAuthLibraryEditor.h"
     25#include "UISnapshotFolderEditor.h"
    2626
    2727
    28 UIVRDEAuthLibraryEditor::UIVRDEAuthLibraryEditor(QWidget *pParent /* = 0 */)
     28UISnapshotFolderEditor::UISnapshotFolderEditor(QWidget *pParent /* = 0 */)
    2929    : QIWithRetranslateUI<QWidget>(pParent)
    30     , m_strValue(QString())
    3130    , m_pLabel(0)
    3231    , m_pSelector(0)
     
    3534}
    3635
    37 void UIVRDEAuthLibraryEditor::setValue(const QString &strValue)
     36void UISnapshotFolderEditor::setPath(const QString &strPath)
    3837{
    3938    /* Update cached value and
    4039     * editor if value has changed: */
    41     if (m_strValue != strValue)
     40    if (m_strPath != strPath)
    4241    {
    43         m_strValue = strValue;
     42        m_strPath = strPath;
    4443        if (m_pSelector)
    45             m_pSelector->setPath(strValue);
     44            m_pSelector->setPath(m_strPath);
    4645    }
    4746}
    4847
    49 QString UIVRDEAuthLibraryEditor::value() const
     48QString UISnapshotFolderEditor::path() const
    5049{
    51     return m_pSelector ? m_pSelector->path() : m_strValue;
     50    return m_pSelector ? m_pSelector->path() : m_strPath;
    5251}
    5352
    54 int UIVRDEAuthLibraryEditor::minimumLabelHorizontalHint() const
     53void UISnapshotFolderEditor::setInitialPath(const QString &strInitialPath)
     54{
     55    /* Update cached value and
     56     * editor if value has changed: */
     57    if (m_strInitialPath != strInitialPath)
     58    {
     59        m_strInitialPath = strInitialPath;
     60        if (m_pSelector)
     61            m_pSelector->setInitialPath(m_strInitialPath);
     62    }
     63}
     64
     65QString UISnapshotFolderEditor::initialPath() const
     66{
     67    return m_pSelector ? m_pSelector->initialPath() : m_strInitialPath;
     68}
     69
     70int UISnapshotFolderEditor::minimumLabelHorizontalHint() const
    5571{
    5672    return m_pLabel ? m_pLabel->minimumSizeHint().width() : 0;
    5773}
    5874
    59 void UIVRDEAuthLibraryEditor::setMinimumLayoutIndent(int iIndent)
     75void UISnapshotFolderEditor::setMinimumLayoutIndent(int iIndent)
    6076{
    6177    if (m_pLayout)
     
    6379}
    6480
    65 void UIVRDEAuthLibraryEditor::retranslateUi()
     81void UISnapshotFolderEditor::retranslateUi()
    6682{
    6783    if (m_pLabel)
    68         m_pLabel->setText(tr("V&RDP Authentication Library:"));
     84        m_pLabel->setText(tr("S&napshot Folder:"));
    6985    if (m_pSelector)
    70         m_pSelector->setToolTip(tr("Holds the path to the library that provides "
    71                                    "authentication for Remote Display (VRDP) clients."));
     86        m_pSelector->setToolTip(tr("Holds the path where snapshots of this virtual machine will be stored. "
     87                                   "Be aware that snapshots can take quite a lot of storage space."));
    7288}
    7389
    74 void UIVRDEAuthLibraryEditor::prepare()
     90void UISnapshotFolderEditor::prepare()
    7591{
    7692    /* Create main layout: */
     
    95111            if (m_pLabel)
    96112                m_pLabel->setBuddy(m_pSelector);
    97             m_pSelector->setInitialPath(uiCommon().homeFolder());
    98             m_pSelector->setMode(UIFilePathSelector::Mode_File_Open);
    99 
    100113            m_pLayout->addWidget(m_pSelector, 0, 1);
    101114        }
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UISnapshotFolderEditor.h

    r94475 r94476  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIVRDEAuthLibraryEditor class declaration.
     3 * VBox Qt GUI - UISnapshotFolderEditor class declaration.
    44 */
    55
     
    1616 */
    1717
    18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UIVRDEAuthLibraryEditor_h
    19 #define FEQT_INCLUDED_SRC_settings_editors_UIVRDEAuthLibraryEditor_h
     18#ifndef FEQT_INCLUDED_SRC_settings_editors_UISnapshotFolderEditor_h
     19#define FEQT_INCLUDED_SRC_settings_editors_UISnapshotFolderEditor_h
    2020#ifndef RT_WITHOUT_PRAGMA_ONCE
    2121# pragma once
     
    3434class UIFilePathSelector;
    3535
    36 /** QWidget subclass used as a VRDE auth library editor. */
    37 class SHARED_LIBRARY_STUFF UIVRDEAuthLibraryEditor : public QIWithRetranslateUI<QWidget>
     36/** QWidget subclass used as a snapshot folder editor. */
     37class SHARED_LIBRARY_STUFF UISnapshotFolderEditor : public QIWithRetranslateUI<QWidget>
    3838{
    3939    Q_OBJECT;
     
    4242
    4343    /** Constructs editor passing @a pParent to the base-class. */
    44     UIVRDEAuthLibraryEditor(QWidget *pParent = 0);
     44    UISnapshotFolderEditor(QWidget *pParent = 0);
    4545
    46     /** Defines editor @a strValue. */
    47     void setValue(const QString &strValue);
    48     /** Returns editor value. */
    49     QString value() const;
     46    /** Defines editor @a strPath. */
     47    void setPath(const QString &strPath);
     48    /** Returns editor path. */
     49    QString path() const;
     50
     51    /** Defines editor @a strInitialPath. */
     52    void setInitialPath(const QString &strInitialPath);
     53    /** Returns editor initial path. */
     54    QString initialPath() const;
    5055
    5156    /** Returns minimum layout hint. */
     
    6469    void prepare();
    6570
    66     /** Holds the value to be set. */
    67     QString  m_strValue;
     71    /** Holds the path to be set. */
     72    QString  m_strPath;
     73    /** Holds the initial path to be set. */
     74    QString  m_strInitialPath;
    6875
    6976    /** Holds the main layout instance. */
     
    7582};
    7683
    77 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UIVRDEAuthLibraryEditor_h */
     84#endif /* !FEQT_INCLUDED_SRC_settings_editors_UISnapshotFolderEditor_h */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp

    r94445 r94476  
    3030#include "UICommon.h"
    3131#include "UIConverter.h"
     32#include "UIDragAndDropEditor.h"
    3233#include "UIErrorString.h"
    33 #include "UIFilePathSelector.h"
    3434#include "UIMachineDescriptionEditor.h"
    3535#include "UIMachineSettingsGeneral.h"
     
    3737#include "UINameAndSystemEditor.h"
    3838#include "UIProgressObject.h"
     39#include "UISharedClipboardEditor.h"
     40#include "UISnapshotFolderEditor.h"
    3941#include "UITranslator.h"
    4042
     
    131133    , m_pEditorNameAndSystem(0)
    132134    , m_pTabAdvanced(0)
    133     , m_pLabelSnapshotFolder(0)
    134135    , m_pEditorSnapshotFolder(0)
    135     , m_pLabelClipboard(0)
    136     , m_pComboClipboard(0)
    137     , m_pLabelDragAndDrop(0)
    138     , m_pComboDragAndDrop(0)
     136    , m_pEditorClipboard(0)
     137    , m_pEditorDragAndDrop(0)
    139138    , m_pTabDescription(0)
    140139    , m_pEditorDescription(0)
     
    262261    const UIDataSettingsMachineGeneral &oldGeneralData = m_pCache->base();
    263262
    264     /* We are doing that *now* because these combos have
    265      * dynamical content which depends on cashed value: */
    266     repopulateComboClipboardMode();
    267     repopulateComboDnDMode();
    268 
    269263    /* Load old 'Basic' data from cache: */
    270264    AssertPtrReturnVoid(m_pEditorNameAndSystem);
     
    274268    /* Load old 'Advanced' data from cache: */
    275269    AssertPtrReturnVoid(m_pEditorSnapshotFolder);
    276     AssertPtrReturnVoid(m_pComboClipboard);
    277     AssertPtrReturnVoid(m_pComboDragAndDrop);
     270    AssertPtrReturnVoid(m_pEditorClipboard);
     271    AssertPtrReturnVoid(m_pEditorDragAndDrop);
    278272    m_pEditorSnapshotFolder->setPath(oldGeneralData.m_strSnapshotsFolder);
    279273    m_pEditorSnapshotFolder->setInitialPath(oldGeneralData.m_strSnapshotsHomeDir);
    280     const int iClipboardModePosition = m_pComboClipboard->findData(oldGeneralData.m_clipboardMode);
    281     m_pComboClipboard->setCurrentIndex(iClipboardModePosition == -1 ? 0 : iClipboardModePosition);
    282     const int iDnDModePosition = m_pComboDragAndDrop->findData(oldGeneralData.m_dndMode);
    283     m_pComboDragAndDrop->setCurrentIndex(iDnDModePosition == -1 ? 0 : iDnDModePosition);
     274    m_pEditorClipboard->setValue(oldGeneralData.m_clipboardMode);
     275    m_pEditorDragAndDrop->setValue(oldGeneralData.m_dndMode);
    284276
    285277    /* Load old 'Description' data from cache: */
     
    314306    /* Gather new 'Advanced' data: */
    315307    AssertPtrReturnVoid(m_pEditorSnapshotFolder);
    316     AssertPtrReturnVoid(m_pComboClipboard);
    317     AssertPtrReturnVoid(m_pComboDragAndDrop);
     308    AssertPtrReturnVoid(m_pEditorClipboard);
     309    AssertPtrReturnVoid(m_pEditorDragAndDrop);
    318310    newGeneralData.m_strSnapshotsFolder = m_pEditorSnapshotFolder->path();
    319     newGeneralData.m_clipboardMode = m_pComboClipboard->currentData().value<KClipboardMode>();
    320     newGeneralData.m_dndMode = m_pComboDragAndDrop->currentData().value<KDnDMode>();
     311    newGeneralData.m_clipboardMode = m_pEditorClipboard->value();
     312    newGeneralData.m_dndMode = m_pEditorDragAndDrop->value();
    321313
    322314    /* Gather new 'Description' data: */
     
    471463    /* 'Advanced' tab: */
    472464    AssertPtrReturnVoid(m_pEditorSnapshotFolder);
    473     AssertPtrReturnVoid(m_pComboClipboard);
    474     AssertPtrReturnVoid(m_pComboDragAndDrop);
     465    AssertPtrReturnVoid(m_pEditorClipboard);
     466    AssertPtrReturnVoid(m_pEditorDragAndDrop);
    475467    setTabOrder(m_pEditorNameAndSystem, m_pEditorSnapshotFolder);
    476     setTabOrder(m_pEditorSnapshotFolder, m_pComboClipboard);
    477     setTabOrder(m_pComboClipboard, m_pComboDragAndDrop);
     468    setTabOrder(m_pEditorSnapshotFolder, m_pEditorClipboard);
     469    setTabOrder(m_pEditorClipboard, m_pEditorDragAndDrop);
    478470
    479471    /* 'Description' tab: */
    480472    AssertPtrReturnVoid(m_pEditorDescription);
    481     setTabOrder(m_pComboDragAndDrop, m_pEditorDescription);
     473    setTabOrder(m_pEditorDragAndDrop, m_pEditorDescription);
    482474}
    483475
     
    485477{
    486478    m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTabBasic), tr("Basi&c"));
    487     m_pLabelSnapshotFolder->setText(tr("S&napshot Folder:"));
    488     m_pLabelClipboard->setText(tr("&Shared Clipboard:"));
    489     m_pComboClipboard->setToolTip(tr("Selects which clipboard data will be copied between the guest and the host OS. "
    490                                      "This feature requires Guest Additions to be installed in the guest OS."));
    491     m_pLabelDragAndDrop->setText(tr("D&rag'n'Drop:"));
    492     m_pComboDragAndDrop->setToolTip(tr("Selects which data will be copied between the guest and the host OS by drag'n'drop. "
    493                                        "This feature requires Guest Additions to be installed in the guest OS."));
    494479    m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTabAdvanced), tr("A&dvanced"));
    495480    m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTabDescription), tr("D&escription"));
     
    504489    m_pTabWidget->setTabText(m_pTabWidget->indexOf(m_pTabEncryption), tr("Disk Enc&ryption"));
    505490
    506     /* Translate path selector: */
    507     if (m_pEditorSnapshotFolder)
    508         m_pEditorSnapshotFolder->setToolTip(tr("Holds the path where snapshots of this virtual machine will be stored. "
    509                                                "Be aware that snapshots can take quite a lot of storage space."));
    510 
    511     /* Translate Clipboard mode combo: */
    512     AssertPtrReturnVoid(m_pComboClipboard);
    513     for (int iIndex = 0; iIndex < m_pComboClipboard->count(); ++iIndex)
    514     {
    515         const KClipboardMode enmType = m_pComboClipboard->currentData().value<KClipboardMode>();
    516         m_pComboClipboard->setItemText(iIndex, gpConverter->toString(enmType));
    517     }
    518 
    519     /* Translate Drag'n'drop mode combo: */
    520     AssertPtrReturnVoid(m_pComboDragAndDrop);
    521     for (int iIndex = 0; iIndex < m_pComboDragAndDrop->count(); ++iIndex)
    522     {
    523         const KDnDMode enmType = m_pComboDragAndDrop->currentData().value<KDnDMode>();
    524         m_pComboDragAndDrop->setItemText(iIndex, gpConverter->toString(enmType));
    525     }
    526 
    527491    /* Translate Cipher type combo: */
    528492    AssertPtrReturnVoid(m_pComboCipher);
    529493    m_pComboCipher->setItemText(0, tr("Leave Unchanged", "cipher type"));
     494
     495    /* These editors have own labels, but we want them to be properly layouted according to each other: */
     496    int iMinimumLayoutHint = 0;
     497    iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorSnapshotFolder->minimumLabelHorizontalHint());
     498    iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorClipboard->minimumLabelHorizontalHint());
     499    iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorDragAndDrop->minimumLabelHorizontalHint());
     500    m_pEditorSnapshotFolder->setMinimumLayoutIndent(iMinimumLayoutHint);
     501    m_pEditorClipboard->setMinimumLayoutIndent(iMinimumLayoutHint);
     502    m_pEditorDragAndDrop->setMinimumLayoutIndent(iMinimumLayoutHint);
    530503}
    531504
     
    539512
    540513    /* Polish 'Advanced' availability: */
    541     AssertPtrReturnVoid(m_pLabelSnapshotFolder);
    542514    AssertPtrReturnVoid(m_pEditorSnapshotFolder);
    543     AssertPtrReturnVoid(m_pLabelClipboard);
    544     AssertPtrReturnVoid(m_pComboClipboard);
    545     AssertPtrReturnVoid(m_pLabelDragAndDrop);
    546     AssertPtrReturnVoid(m_pComboDragAndDrop);
    547     m_pLabelSnapshotFolder->setEnabled(isMachineOffline());
     515    AssertPtrReturnVoid(m_pEditorClipboard);
     516    AssertPtrReturnVoid(m_pEditorDragAndDrop);
    548517    m_pEditorSnapshotFolder->setEnabled(isMachineOffline());
    549     m_pLabelClipboard->setEnabled(isMachineInValidMode());
    550     m_pComboClipboard->setEnabled(isMachineInValidMode());
    551     m_pLabelDragAndDrop->setEnabled(isMachineInValidMode());
    552     m_pComboDragAndDrop->setEnabled(isMachineInValidMode());
     518    m_pEditorClipboard->setEnabled(isMachineInValidMode());
     519    m_pEditorDragAndDrop->setEnabled(isMachineInValidMode());
    553520
    554521    /* Polish 'Description' availability: */
     
    633600            pLayoutAdvanced->setRowStretch(3, 1);
    634601
    635             /* Prepare snapshot folder label: */
    636             m_pLabelSnapshotFolder = new QLabel(m_pTabAdvanced);
    637             if (m_pLabelSnapshotFolder)
    638             {
    639                 m_pLabelSnapshotFolder->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
    640                 pLayoutAdvanced->addWidget(m_pLabelSnapshotFolder, 0, 0);
    641             }
    642602            /* Prepare snapshot folder editor: */
    643             m_pEditorSnapshotFolder = new UIFilePathSelector(m_pTabAdvanced);
     603            m_pEditorSnapshotFolder = new UISnapshotFolderEditor(m_pTabAdvanced);
    644604            if (m_pEditorSnapshotFolder)
    645             {
    646                 if (m_pLabelSnapshotFolder)
    647                     m_pLabelSnapshotFolder->setBuddy(m_pEditorSnapshotFolder);
    648                 pLayoutAdvanced->addWidget(m_pEditorSnapshotFolder, 0, 1, 1, 2);
    649             }
    650 
    651             /* Prepare clipboard label: */
    652             m_pLabelClipboard = new QLabel(m_pTabAdvanced);
    653             if (m_pLabelClipboard)
    654             {
    655                 m_pLabelClipboard->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
    656                 pLayoutAdvanced->addWidget(m_pLabelClipboard, 1, 0);
    657             }
    658             /* Prepare clipboard combo: */
    659             m_pComboClipboard = new QComboBox(m_pTabAdvanced);
    660             if (m_pComboClipboard)
    661             {
    662                 if (m_pLabelClipboard)
    663                     m_pLabelClipboard->setBuddy(m_pComboClipboard);
    664                 pLayoutAdvanced->addWidget(m_pComboClipboard, 1, 1);
    665             }
    666 
    667             /* Prepare drag&drop label: */
    668             m_pLabelDragAndDrop = new QLabel(m_pTabAdvanced);
    669             if (m_pLabelDragAndDrop)
    670             {
    671                 m_pLabelDragAndDrop->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
    672                 pLayoutAdvanced->addWidget(m_pLabelDragAndDrop, 2, 0);
    673             }
    674             /* Prepare drag&drop combo: */
    675             m_pComboDragAndDrop = new QComboBox(m_pTabAdvanced);
    676             if (m_pComboDragAndDrop)
    677             {
    678                 if (m_pLabelDragAndDrop)
    679                     m_pLabelDragAndDrop->setBuddy(m_pComboDragAndDrop);
    680                 pLayoutAdvanced->addWidget(m_pComboDragAndDrop, 2, 1);
    681             }
     605                pLayoutAdvanced->addWidget(m_pEditorSnapshotFolder, 0, 0);
     606
     607            /* Prepare clipboard editor: */
     608            m_pEditorClipboard = new UISharedClipboardEditor(m_pTabAdvanced);
     609            if (m_pEditorClipboard)
     610                pLayoutAdvanced->addWidget(m_pEditorClipboard, 1, 0);
     611
     612            /* Prepare drag&drop editor: */
     613            m_pEditorDragAndDrop = new UIDragAndDropEditor(m_pTabAdvanced);
     614            if (m_pEditorDragAndDrop)
     615                pLayoutAdvanced->addWidget(m_pEditorDragAndDrop, 2, 0);
    682616        }
    683617
     
    836770    delete m_pCache;
    837771    m_pCache = 0;
    838 }
    839 
    840 void UIMachineSettingsGeneral::repopulateComboClipboardMode()
    841 {
    842     AssertPtrReturnVoid(m_pComboClipboard);
    843     {
    844         /* Clear combo first of all: */
    845         m_pComboClipboard->clear();
    846 
    847         /* Load currently supported Clipboard modes: */
    848         CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
    849         QVector<KClipboardMode> clipboardModes = comProperties.GetSupportedClipboardModes();
    850         /* Take into account currently cached value: */
    851         const KClipboardMode enmCachedValue = m_pCache->base().m_clipboardMode;
    852         if (!clipboardModes.contains(enmCachedValue))
    853             clipboardModes.prepend(enmCachedValue);
    854 
    855         /* Populate combo finally: */
    856         foreach (const KClipboardMode &enmMode, clipboardModes)
    857             m_pComboClipboard->addItem(gpConverter->toString(enmMode), QVariant::fromValue(enmMode));
    858     }
    859 }
    860 
    861 void UIMachineSettingsGeneral::repopulateComboDnDMode()
    862 {
    863     AssertPtrReturnVoid(m_pComboDragAndDrop);
    864     {
    865         /* Clear combo first of all: */
    866         m_pComboDragAndDrop->clear();
    867 
    868         /* Load currently supported DnD modes: */
    869         CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
    870         QVector<KDnDMode> dndModes = comProperties.GetSupportedDnDModes();
    871         /* Take into account currently cached value: */
    872         const KDnDMode enmCachedValue = m_pCache->base().m_dndMode;
    873         if (!dndModes.contains(enmCachedValue))
    874             dndModes.prepend(enmCachedValue);
    875 
    876         /* Populate combo finally: */
    877         foreach (const KDnDMode &enmMode, dndModes)
    878             m_pComboDragAndDrop->addItem(gpConverter->toString(enmMode), QVariant::fromValue(enmMode));
    879     }
    880772}
    881773
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.h

    r94445 r94476  
    3131class QLineEdit;
    3232class QITabWidget;
     33class UIDragAndDropEditor;
    3334class UIMachineDescriptionEditor;
    3435class UINameAndSystemEditor;
    35 
    36 class UIFilePathSelector;
     36class UISharedClipboardEditor;
     37class UISnapshotFolderEditor;
    3738struct UIDataSettingsMachineGeneral;
    3839typedef UISettingsCache<UIDataSettingsMachineGeneral> UISettingsCacheMachineGeneral;
     
    115116    void cleanup();
    116117
    117     /** Repopulates Clipboard mode combo-box. */
    118     void repopulateComboClipboardMode();
    119     /** Repopulates DnD mode combo-box. */
    120     void repopulateComboDnDMode();
    121 
    122118    /** Saves existing general data from cache. */
    123119    bool saveData();
     
    161157
    162158        /** Holds the 'Advanced' tab instance. */
    163         QWidget            *m_pTabAdvanced;
    164         /** Holds the snapshot folder label instance. */
    165         QLabel             *m_pLabelSnapshotFolder;
     159        QWidget                 *m_pTabAdvanced;
    166160        /** Holds the snapshot folder editor instance. */
    167         UIFilePathSelector *m_pEditorSnapshotFolder;
    168         /** Holds the shared clipboard label instance. */
    169         QLabel             *m_pLabelClipboard;
    170         /** Holds the shared clipboard combo instance. */
    171         QComboBox          *m_pComboClipboard;
    172         /** Holds the drag and drop label instance. */
    173         QLabel             *m_pLabelDragAndDrop;
    174         /** Holds the drag and drop combo instance. */
    175         QComboBox          *m_pComboDragAndDrop;
     161        UISnapshotFolderEditor  *m_pEditorSnapshotFolder;
     162        /** Holds the shared clipboard editor instance. */
     163        UISharedClipboardEditor *m_pEditorClipboard;
     164        /** Holds the drag and drop editor instance. */
     165        UIDragAndDropEditor     *m_pEditorDragAndDrop;
    176166
    177167        /** Holds the 'Description' tab instance. */
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