VirtualBox

儲存庫 vbox 的更動 18397


忽略:
時間撮記:
2009-3-27 下午02:11:10 (16 年 以前)
作者:
vboxsync
訊息:

FE/Qt4-OVF: changed file selector in the import wizard

位置:
trunk/src/VBox/Frontends/VirtualBox
檔案:
修改 4 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Frontends/VirtualBox/include/VBoxFilePathSelectorWidget.h

    r17714 r18397  
    2424#define __VBoxFilePathSelectorWidget_h__
    2525
     26/* VBox includes */
    2627#include "QIWithRetranslateUI.h"
    2728
     
    2930#include <QComboBox>
    3031
     32/* VBox forward declarations */
     33class QILabel;
     34
     35/* Qt forward declarations */
    3136class QFileIconProvider;
    3237class QAction;
     38class QPushButton;
     39
     40////////////////////////////////////////////////////////////////////////////////
     41// VBoxFilePathSelectorWidget
    3342
    3443class VBoxFilePathSelectorWidget: public QIWithRetranslateUI<QComboBox>
     
    121130};
    122131
     132////////////////////////////////////////////////////////////////////////////////
     133// VBoxEmptyFileSelector
     134
     135class VBoxEmptyFileSelector: public QIWithRetranslateUI<QWidget>
     136{
     137    Q_OBJECT;
     138
     139public:
     140    VBoxEmptyFileSelector (QWidget *aParent = NULL);
     141
     142    void setPath (const QString& aPath);
     143    QString path() const;
     144
     145    bool isModified () const { return mIsModified; }
     146    void resetModified () { mIsModified = false; }
     147
     148    void setFileDialogTitle (const QString& aTitle);
     149    QString fileDialogTitle() const;
     150
     151    void setFileFilters (const QString& aFilters);
     152    QString fileFilters() const;
     153
     154    void setHomeDir (const QString& aDir);
     155    QString homeDir() const;
     156
     157signals:
     158    void pathChanged (QString);
     159
     160protected:
     161    void retranslateUi();
     162
     163private slots:
     164    void choose();
     165
     166private:
     167    /* Private member vars */
     168    QILabel *mLabel;
     169    QPushButton *mSelectButton;
     170    QString mFileDialogTitle;
     171    QString mFileFilters;
     172    QString mHomeDir;
     173    bool mIsModified;
     174    QString mPath;
     175};
     176
    123177#endif /* __VBoxFilePathSelectorWidget_h__ */
    124178
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxFilePathSelectorWidget.cpp

    r17715 r18397  
    2323#include "VBoxFilePathSelectorWidget.h"
    2424#include "VBoxGlobal.h"
     25#include "QILabel.h"
    2526
    2627/* Qt includes */
     
    3233#include <QLineEdit>
    3334#include <QTimer>
     35#include <QPushButton>
     36
     37////////////////////////////////////////////////////////////////////////////////
     38// VBoxFilePathSelectorWidget
    3439
    3540enum
     
    388393        case Mode_File_Save:
    389394            {
    390                 path = VBoxGlobal::getSaveFileName (initDir, mFileFilters, parentWidget(), mFileDialogTitle); 
     395                path = VBoxGlobal::getSaveFileName (initDir, mFileFilters, parentWidget(), mFileDialogTitle);
    391396                if (!path.isEmpty() && QFileInfo (path).suffix().isEmpty())
    392397                    path = QString ("%1.%2").arg (path).arg (mDefaultSaveExt);
     
    551556}
    552557
     558////////////////////////////////////////////////////////////////////////////////
     559// VBoxEmptyFileSelector
     560
     561VBoxEmptyFileSelector::VBoxEmptyFileSelector (QWidget *aParent /* = NULL */)
     562    : QIWithRetranslateUI<QWidget> (aParent)
     563    , mHomeDir (QDir::current().absolutePath())
     564      , mIsModified (false)
     565{
     566    QHBoxLayout *mainLayout = new QHBoxLayout (this);
     567    mainLayout->setMargin (0);
     568
     569    mSelectButton = new QPushButton (this);
     570    mainLayout->addWidget (mSelectButton);
     571
     572    mLabel = new QILabel (this);
     573    mLabel->setWordWrap (true);
     574    mainLayout->addWidget (mLabel, 2);
     575
     576    connect (mSelectButton, SIGNAL (clicked()),
     577             this, SLOT (choose()));
     578
     579    retranslateUi();
     580}
     581
     582void VBoxEmptyFileSelector::setPath (const QString& aPath)
     583{
     584    mLabel->setText (QString ("<compact elipsis=\"start\">%1</compact>").arg (aPath));
     585    mPath = aPath;
     586}
     587
     588QString VBoxEmptyFileSelector::path() const
     589{
     590    return mPath;
     591}
     592
     593void VBoxEmptyFileSelector::setFileDialogTitle (const QString& aTitle)
     594{
     595    mFileDialogTitle = aTitle;
     596}
     597
     598QString VBoxEmptyFileSelector::fileDialogTitle() const
     599{
     600    return mFileDialogTitle;
     601}
     602
     603void VBoxEmptyFileSelector::setFileFilters (const QString& aFilters)
     604{
     605    mFileFilters = aFilters;
     606}
     607
     608QString VBoxEmptyFileSelector::fileFilters() const
     609{
     610    return mFileFilters;
     611}
     612
     613void VBoxEmptyFileSelector::setHomeDir (const QString& aDir)
     614{
     615    mHomeDir = aDir;
     616}
     617
     618QString VBoxEmptyFileSelector::homeDir() const
     619{
     620    return mHomeDir;
     621}
     622
     623void VBoxEmptyFileSelector::retranslateUi()
     624{
     625    mSelectButton->setText (tr ("&Choose..."));
     626}
     627
     628void VBoxEmptyFileSelector::choose()
     629{
     630    QString path = mPath;
     631
     632    /* Preparing initial directory. */
     633    QString initDir = path.isNull() ? mHomeDir :
     634        VBoxGlobal::getFirstExistingDir (path);
     635    if (initDir.isNull())
     636        initDir = mHomeDir;
     637
     638    path = VBoxGlobal::getOpenFileName (initDir, mFileFilters, parentWidget(), mFileDialogTitle);
     639    if (!path.isEmpty())
     640    {
     641        setPath (path);
     642        mIsModified = true;
     643        emit pathChanged (path);
     644    }
     645}
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxImportApplianceWzd.cpp

    r18392 r18397  
    125125
    126126    /* Configure the file selector */
    127     mFileSelector->setMode (VBoxFilePathSelectorWidget::Mode_File_Open);
    128     mFileSelector->setResetEnabled (false);
    129127    mFileSelector->setFileDialogTitle (tr ("Select an appliance to import"));
    130128    mFileSelector->setFileFilters (tr ("Open Virtualization Format (%1)").arg ("*.ovf"));
    131129    mFileSelector->setHomeDir (vboxGlobal().documentsPath());
    132 #ifdef Q_WS_MAC
    133     /* Editable boxes are uncommon on the Mac */
    134     mFileSelector->setEditable (false);
    135 #endif /* Q_WS_MAC */
    136130
    137131    /* Validator for the file selector page */
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxImportApplianceWzd.ui

    r18390 r18397  
    2424    <x>0</x>
    2525    <y>0</y>
    26     <width>550</width>
    27     <height>380</height>
     26    <width>547</width>
     27    <height>430</height>
    2828   </rect>
    2929  </property>
     
    3838    <widget class="QStackedWidget" name="mPageStack">
    3939     <property name="currentIndex">
    40       <number>1</number>
     40      <number>0</number>
    4141     </property>
    4242     <widget class="QWidget" name="mFileSelectPage">
     
    116116          </widget>
    117117         </item>
     118         <item row="1" column="1">
     119          <widget class="VBoxEmptyFileSelector" name="mFileSelector" native="true"/>
     120         </item>
    118121         <item row="2" column="1">
    119122          <spacer name="spacer">
     
    123126           <property name="sizeHint" stdset="0">
    124127            <size>
    125              <width>408</width>
    126              <height>258</height>
    127             </size>
    128            </property>
    129           </spacer>
    130          </item>
    131          <item row="1" column="1">
    132           <widget class="VBoxFilePathSelectorWidget" name="mFileSelector"/>
     128             <width>406</width>
     129             <height>68</height>
     130            </size>
     131           </property>
     132          </spacer>
    133133         </item>
    134134        </layout>
     
    378378  </customwidget>
    379379  <customwidget>
    380    <class>VBoxFilePathSelectorWidget</class>
    381    <extends>QComboBox</extends>
    382    <header>VBoxFilePathSelectorWidget.h</header>
    383   </customwidget>
    384   <customwidget>
    385380   <class>VBoxImportApplianceWgt</class>
    386381   <extends>QWidget</extends>
    387382   <header>VBoxImportApplianceWgt.h</header>
     383   <container>1</container>
     384  </customwidget>
     385  <customwidget>
     386   <class>VBoxEmptyFileSelector</class>
     387   <extends>QWidget</extends>
     388   <header>VBoxFilePathSelectorWidget.h</header>
    388389   <container>1</container>
    389390  </customwidget>
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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