VirtualBox

Changeset 1177 in vbox


Ignore:
Timestamp:
Mar 4, 2007 9:05:35 AM (18 years ago)
Author:
vboxsync
Message:

1848: Add comment field
Issue resolved as designed

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

Legend:

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

    r984 r1177  
    7474# Sources containing local definitions of classes that use the Q_OBJECT macro
    7575ifneq ($(BUILD_TARGET),win)
    76 VirtualBox_QT_MOCSRCS = src/COMDefs.cpp
     76VirtualBox_QT_MOCSRCS = src/COMDefs.cpp \
     77                                                src/VBoxSelectorWnd.cpp
    7778endif
    7879
  • trunk/src/VBox/Frontends/VirtualBox/include/VBoxSelectorWnd.h

    r1000 r1177  
    3838class VBoxSnapshotsWgt;
    3939class VBoxVMDetailsView;
     40class VBoxVMDescriptionPage;
    4041
    4142class QLabel;
     
    6465
    6566    void vmNew();
    66     void vmSettings (const QString &category = QString::null);
     67    void vmSettings (const QString &category = QString::null, int = 0);
    6768    void vmDelete();
    6869    void vmStart();
     
    7273    void refreshVMList();
    7374    void refreshVMItem (const QUuid &aID, bool aDetails,
    74                                           bool aSnapshots);
     75                                          bool aSnapshots,
     76                                          bool aDescription);
    7577
    7678    void showHelpContents();
     
    9092
    9193    void vmListBoxCurrentChanged (bool aRefreshDetails = true,
    92                                   bool aRefreshSnapshots = true);
     94                                  bool aRefreshSnapshots = true,
     95                                  bool aRefreshDescription = true);
    9396    void mediaEnumFinished (const VBoxMediaList &);
    9497
     
    123126    VBoxVMDetailsView *vmDetailsView;
    124127    VBoxSnapshotsWgt *vmSnapshotsWgt;
     128    VBoxVMDescriptionPage *vmDescriptionPage;
    125129
    126130    QValueList <CSession> sessions;
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxSelectorWnd.cpp

    r1121 r1177  
    194194        mRefreshButton->setUsesTextLabel (true);
    195195    }
     196}
     197
     198// VBoxVMDescriptionPage class
     199////////////////////////////////////////////////////////////////////////////////
     200
     201/**
     202 *  Comments page widget to represent VM comments.
     203 */
     204class VBoxVMDescriptionPage : public QWidget
     205{
     206    Q_OBJECT
     207
     208public:
     209
     210    VBoxVMDescriptionPage (VBoxSelectorWnd *, const char *);
     211    ~VBoxVMDescriptionPage() {}
     212
     213    void setMachine (const CMachine &);
     214
     215    void languageChange();
     216
     217private slots:
     218
     219    void goToSettings();
     220
     221private:
     222
     223    VBoxSelectorWnd *mParent;
     224    QToolButton *mBtnEdit;
     225    QTextBrowser *mBrowser;
     226};
     227
     228VBoxVMDescriptionPage::VBoxVMDescriptionPage (VBoxSelectorWnd *aParent,
     229                                              const char *aName)
     230    : QWidget (aParent, aName), mParent (aParent)
     231    , mBtnEdit (0), mBrowser (0)
     232{
     233    /* main layout creation */
     234    QVBoxLayout *mainLayout = new QVBoxLayout (this, 10, 10, "mainLayout");
     235    /* mBrowser creation */
     236    mBrowser = new QTextBrowser (this, "mBrowser");
     237    mBrowser->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding);
     238    mBrowser->setFocusPolicy (QWidget::StrongFocus);
     239    mBrowser->setLinkUnderline (false);
     240    mBrowser->setFrameShape (QFrame::NoFrame);
     241    mBrowser->setPaper (backgroundBrush());
     242    mainLayout->addWidget (mBrowser);
     243    /* button layout creation */
     244    QHBoxLayout *btnLayout = new QHBoxLayout (mainLayout, 10, "btnLayout");
     245    QSpacerItem *spacer = new QSpacerItem (0, 0,
     246                                           QSizePolicy::Expanding,
     247                                           QSizePolicy::Minimum);
     248    btnLayout->addItem (spacer);
     249    /* button creation */
     250    mBtnEdit = new QToolButton (this, "mBtnEdit");
     251    mBtnEdit->setFocusPolicy (QWidget::StrongFocus);
     252    mBtnEdit->setIconSet (VBoxGlobal::iconSet ("edit_shared_folder_16px.png",
     253                          "edit_shared_folder_disabled_16px.png"));
     254    mBtnEdit->setTextPosition (QToolButton::BesideIcon);
     255    mBtnEdit->setUsesTextLabel (true);
     256    connect (mBtnEdit, SIGNAL (clicked()), this, SLOT (goToSettings()));
     257    btnLayout->addWidget (mBtnEdit);
     258
     259    /* apply language settings */
     260    languageChange();
     261}
     262
     263void VBoxVMDescriptionPage::setMachine (const CMachine &aMachine)
     264{
     265    mBrowser->setText (aMachine.GetDescription());
     266}
     267
     268void VBoxVMDescriptionPage::languageChange()
     269{
     270    mBtnEdit->setTextLabel (tr ("Edit"));
     271    mBtnEdit->setAccel (QString ("Ctrl+E"));
     272}
     273
     274void VBoxVMDescriptionPage::goToSettings()
     275{
     276    mParent->vmSettings ("#general", 2);
    196277}
    197278
     
    308389                         QString::null);
    309390
     391    /* VM comments page */
     392    vmDescriptionPage = new VBoxVMDescriptionPage (this, "vmDescriptionPage");
     393    vmTabWidget->addTab (vmDescriptionPage,
     394                         VBoxGlobal::iconSet ("edit_shared_folder_16px.png"),
     395                         QString::null);
     396
    310397    /* add actions to the toolbar */
    311398
     
    526613 *      VBoxVMSettingsDlg::setup().
    527614 */
    528 void VBoxSelectorWnd::vmSettings (const QString &category /* = QString::null */)
     615void VBoxSelectorWnd::vmSettings (const QString &category, int aSubPage)
    529616{
    530617    VBoxVMListBoxItem *item = (VBoxVMListBoxItem *) vmListBox->selectedItem();
     
    543630    VBoxVMSettingsDlg dlg (this, "VBoxVMSettingsDlg");
    544631    dlg.getFromMachine (m);
    545     dlg.setup (category);
     632    dlg.setup (category, aSubPage);
    546633
    547634    if (dlg.exec() == QDialog::Accepted)
     
    736823    AssertMsgReturn (item, ("Item must be always selected here"), (void) 0);
    737824
    738     refreshVMItem (item->id(), true /* aDetails */, true /* aSnapshots */);
     825    refreshVMItem (item->id(), true, true, true);
    739826}
    740827
     
    746833
    747834void VBoxSelectorWnd::refreshVMItem (const QUuid &aID, bool aDetails,
    748                                                        bool aSnapshots)
     835                                                       bool aSnapshots,
     836                                                       bool aDescription)
    749837{
    750838    vmListBox->refresh (aID);
    751839    VBoxVMListBoxItem *item = (VBoxVMListBoxItem *) vmListBox->selectedItem();
    752840    if (item && item->id() == aID)
    753         vmListBoxCurrentChanged (aDetails, aSnapshots);
     841        vmListBoxCurrentChanged (aDetails, aSnapshots, aDescription);
    754842}
    755843
     
    822910    vmTabWidget->changeTab (vmDetailsView, tr ("&Details"));
    823911    vmTabWidget->changeTab (vmSnapshotsWgt, tr ("&Snapshots"));
     912    vmTabWidget->changeTab (vmDescriptionPage, tr ("Des&cription"));
    824913
    825914    /* ensure the details and screenshot view are updated */
     
    893982
    894983    vmDetailsView->languageChange();
     984    vmDescriptionPage->languageChange();
    895985}
    896986
     
    900990
    901991void VBoxSelectorWnd::vmListBoxCurrentChanged (bool aRefreshDetails,
    902                                                bool aRefreshSnapshots)
     992                                               bool aRefreshSnapshots,
     993                                               bool aRefreshDescription)
    903994{
    904995    if ( !vmListBox->selectedItem() && vmListBox->currentItem() >= 0 )
     
    9311022            vmSnapshotsWgt->setMachine (m);
    9321023        }
     1024        if (aRefreshDescription)
     1025        {
     1026            vmDescriptionPage->setMachine (m);
     1027        }
    9331028
    9341029        CEnums::MachineState state = item->state();
     
    9391034        vmDetailsView->setEnabled (modifyEnabled);
    9401035        vmSnapshotsWgt->setEnabled (!running);
     1036        vmDescriptionPage->setEnabled (!running);
    9411037
    9421038        /* enable/disable modify actions */
     
    10411137void VBoxSelectorWnd::machineStateChanged (const VBoxMachineStateChangeEvent &e)
    10421138{
    1043     refreshVMItem (e.id, false /* aDetails */, false /* aSnapshots */);
     1139    refreshVMItem (e.id, false, false, false);
    10441140}
    10451141
    10461142void VBoxSelectorWnd::machineDataChanged (const VBoxMachineDataChangeEvent &e)
    10471143{
    1048     refreshVMItem (e.id, true /* aDetails */, false /* aSnapshots */);
     1144    refreshVMItem (e.id, true, false, true);
    10491145}
    10501146
     
    10751171void VBoxSelectorWnd::sessionStateChanged (const VBoxSessionStateChangeEvent &e)
    10761172{
    1077     refreshVMItem (e.id, false /* aDetails */, false /* aSnapshots */);
     1173    refreshVMItem (e.id, false, false, false);
    10781174}
    10791175
    10801176void VBoxSelectorWnd::snapshotChanged (const VBoxSnapshotEvent &aEvent)
    10811177{
    1082     refreshVMItem (aEvent.machineId, false, true);
    1083 }
     1178    refreshVMItem (aEvent.machineId, false, true, false);
     1179}
     1180
     1181#include "VBoxSelectorWnd.moc"
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui

    r1062 r1177  
    11821182                            </grid>
    11831183                        </widget>
     1184                        <widget class="QWidget">
     1185                            <property name="name">
     1186                                <cstring>description</cstring>
     1187                            </property>
     1188                            <attribute name="title">
     1189                                <string>&amp;Description</string>
     1190                            </attribute>
     1191                            <vbox>
     1192                                <property name="name">
     1193                                    <cstring>unnamed</cstring>
     1194                                </property>
     1195                                <property name="margin">
     1196                                    <number>10</number>
     1197                                </property>
     1198                                <property name="spacing">
     1199                                    <number>10</number>
     1200                                </property>
     1201                                <widget class="QGroupBox">
     1202                                    <property name="name">
     1203                                        <cstring>gbDescription</cstring>
     1204                                    </property>
     1205                                    <property name="title">
     1206                                        <string>Virtual Machine &amp;Description</string>
     1207                                    </property>
     1208                                    <vbox>
     1209                                        <property name="name">
     1210                                            <cstring>unnamed</cstring>
     1211                                        </property>
     1212                                        <widget class="QTextEdit">
     1213                                            <property name="name">
     1214                                                <cstring>teDescription</cstring>
     1215                                            </property>
     1216                                        </widget>
     1217                                    </vbox>
     1218                                </widget>
     1219                            </vbox>
     1220                        </widget>
    11841221                    </widget>
    11851222                </vbox>
     
    18041841                                </property>
    18051842                                <property name="whatsThis" stdset="0">
    1806                                     <string>Controls the audio output driver. The &lt;b&gt;Null Audio Driver&lt;/b&gt; 
     1843                                    <string>Controls the audio output driver. The &lt;b&gt;Null Audio Driver&lt;/b&gt;
    18071844makes the guest see an audio card, however every access to it will be ignored.</string>
    18081845                                </property>
     
    27222759<functions>
    27232760    <function access="private">init()</function>
    2724     <function>setup( const QString &amp; category )</function>
     2761    <function>setup( const QString &amp;, int )</function>
    27252762    <function>getFromMachine( const CMachine &amp; machine )</function>
    27262763    <function returnType="COMResult">putBackToMachine()</function>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h

    r1074 r1177  
    822822 *      sign.
    823823 */
    824 void VBoxVMSettingsDlg::setup (const QString &category)
    825 {
    826     if (category)
    827     {
    828         QListViewItem *item = listView->findItem (category, listView_Link);
     824void VBoxVMSettingsDlg::setup (const QString &aCategory, int aSubPage)
     825{
     826    if (!aCategory.isNull())
     827    {
     828        QListViewItem *item = listView->findItem (aCategory, listView_Link);
    829829        if (item)
     830        {
    830831            listView->setSelected (item, true);
     832            QObjectList *list = widgetStack->visibleWidget()->queryList ("QTabWidget");
     833            for (QObject *obj = list->first(); obj != NULL; obj = list->next())
     834            {
     835                QTabWidget *tabStack = static_cast<QTabWidget*> (obj);
     836                tabStack->setCurrentPage (aSubPage);
     837            }
     838        }
    831839    }
    832840}
     
    10661074    /* Saved state folder */
    10671075    leSnapshotFolder->setText (machine.GetSnapshotFolder());
     1076
     1077    /* Description */
     1078    teDescription->setText (machine.GetDescription());
    10681079
    10691080    /* hard disk images */
     
    13801391        cmachine.SetSnapshotFolder (leSnapshotFolder->text());
    13811392
     1393    /* Description */
     1394    cmachine.SetDescription (teDescription->text());
     1395
    13821396    /* hard disk images */
    13831397    {
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