VirtualBox

Ignore:
Timestamp:
Feb 21, 2007 10:08:04 PM (18 years ago)
Author:
vboxsync
Message:

1758: Implement Shared Folders UI

Fixed buttons disappearing during scaling whats-this label in VMSharedFolders Settings.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/include/QIRichLabel.h

    r382 r1017  
    7878
    7979   void setFont( const QFont &f );
     80   void setFixedHeight (int);
    8081
    8182public slots:
     
    8889   void         clear();
    8990
     91protected slots:
     92   void         putToClipBoard();
     93
    9094protected:
    9195   void         drawContents ( QPainter * );
     
    96100   void         contextMenuEvent (QContextMenuEvent*);
    97101
    98 protected slots:
    99    void         putToClipBoard();
     102signals:
     103   void         textChanged();
    100104
    101105private slots:
     
    116120   QPicture   *lpicture;
    117121   QMovie     *lmovie;
    118    QAction    *copyAction;
    119122   QPopupMenu *popupMenu;
    120123   QWidget    *lbuddy;
     
    123126   uint        autoresize:1;
    124127   uint        scaledcontents :1;
     128   uint        baseheight;
    125129   TextFormat  textformat;
    126130   QAccel     *accel;
  • trunk/src/VBox/Frontends/VirtualBox/src/QIRichLabel.cpp

    r382 r1017  
    9292void QIRichLabel::init()
    9393{
     94   baseheight = 0;
    9495   lpixmap = 0;
    9596   lmovie = 0;
     
    107108   d = new QLabelPrivate;
    108109
    109    copyAction = new QAction (this, "copyAction");
     110   QAction *copyAction = new QAction (this, "copyAction");
    110111   connect (copyAction, SIGNAL (activated()),
    111112      this, SLOT (putToClipBoard()));
     
    114115   popupMenu = new QPopupMenu (this, "contextMenu");
    115116   copyAction->addTo (popupMenu);
     117}
     118
     119
     120void QIRichLabel::setFixedHeight (int aHeight)
     121{
     122    baseheight = aHeight;
     123    QFrame::setFixedHeight (baseheight);
    116124}
    117125
     
    156164   }
    157165
    158   // If there is QSimpleRichText:
    159   if (useRichText)
    160       setFocusPolicy (doc ? QWidget::StrongFocus : QWidget::NoFocus);
    161 
    162166   updateLabel (osh);
     167
     168   if (baseheight == 0)
     169       baseheight = heightForWidth (width());
     170   if ((int)baseheight < heightForWidth (width()))
     171       QFrame::setFixedHeight (heightForWidth (width()));
     172   else
     173       QFrame::setFixedHeight (baseheight);
     174   emit textChanged();
    163175}
    164176
     
    441453void QIRichLabel::contextMenuEvent (QContextMenuEvent *aEvent)
    442454{
    443    popupMenu->popup(aEvent->globalPos());
     455   if (hasFocus())
     456      popupMenu->popup(aEvent->globalPos());
    444457}
    445458
     
    548561         QString filteredText = compressText();
    549562         doc = new QSimpleRichText (filteredText, font());
    550          doc->setWidth (p, cr.width());
     563         /* focus indent */
     564         int xo = 3;
     565         doc->setWidth (p, cr.width() - 2*xo);
    551566         int rh = doc->height();
    552567         int yo = 0;
    553          int xo = 3;
    554568         if (align & AlignVCenter)
    555569            yo = (cr.height()-rh)/2;
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxDiskImageManagerDlg.ui.h

    r1015 r1017  
    399399    QIRichLabel *infoLabel = new QIRichLabel (root, "infoPane");
    400400
     401    /* Setup focus policy <strong> default for info pane */
     402    infoLabel->setFocusPolicy (QWidget::StrongFocus);
     403
    401404    /* prevent the name columns from being expanded */
    402405    nameLabel->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed);
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui

    r924 r1017  
    24672467                </widget>
    24682468            </hbox>
    2469         </widget>
    2470         <widget class="QLabel" row="2" column="1">
    2471             <property name="name">
    2472                 <cstring>whatsThisLabel</cstring>
    2473             </property>
    2474             <property name="sizePolicy">
    2475                 <sizepolicy>
    2476                     <hsizetype>7</hsizetype>
    2477                     <vsizetype>0</vsizetype>
    2478                     <horstretch>0</horstretch>
    2479                     <verstretch>0</verstretch>
    2480                 </sizepolicy>
    2481             </property>
    2482             <property name="minimumSize">
    2483                 <size>
    2484                     <width>0</width>
    2485                     <height>0</height>
    2486                 </size>
    2487             </property>
    2488             <property name="backgroundMode">
    2489                 <enum>PaletteMidlight</enum>
    2490             </property>
    2491             <property name="paletteForegroundColor">
    2492                 <color>
    2493                     <red>75</red>
    2494                     <green>75</green>
    2495                     <blue>75</blue>
    2496                 </color>
    2497             </property>
    2498             <property name="frameShape">
    2499                 <enum>Box</enum>
    2500             </property>
    2501             <property name="frameShadow">
    2502                 <enum>Sunken</enum>
    2503             </property>
    2504             <property name="margin">
    2505                 <number>7</number>
    2506             </property>
    2507             <property name="scaledContents">
    2508                 <bool>false</bool>
    2509             </property>
    2510             <property name="alignment">
    2511                 <set>WordBreak|AlignJustify|AlignTop</set>
    2512             </property>
    25132469        </widget>
    25142470    </grid>
     
    26862642    <include location="local" impldecl="in implementation">VBoxDiskImageManagerDlg.h</include>
    26872643    <include location="local" impldecl="in implementation">VBoxMediaComboBox.h</include>
     2644    <include location="local" impldecl="in implementation">QIRichLabel.h</include>
    26882645</includes>
    26892646<forwards>
     
    26922649    <forward>class VBoxUSBMenu</forward>
    26932650    <forward>class VBoxSharedFoldersSettings</forward>
     2651    <forward>class QIRichLabel</forward>
    26942652</forwards>
    26952653<variables>
     
    27242682    <variable access="private">VBoxMediaComboBox *cbISOFloppy;</variable>
    27252683    <variable access="private">VBoxUSBMenu *usbDevicesMenu;</variable>
     2684    <variable access="private">QIRichLabel *whatsThisLabel;</variable>
    27262685</variables>
    27272686<slots>
     
    27592718    <slot>cdMediaChanged()</slot>
    27602719    <slot>fdMediaChanged()</slot>
     2720    <slot>processAdjustSize()</slot>
    27612721</slots>
    27622722<functions>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h

    r951 r1017  
    265265    connect (whatsThisTimer, SIGNAL (timeout()), this, SLOT (updateWhatsThis()));
    266266    whatsThisCandidate = NULL;
     267
     268    whatsThisLabel = new QIRichLabel (this, "whatsThisLabel");
     269    VBoxVMSettingsDlgLayout->addWidget (whatsThisLabel, 2, 1);
     270
     271    whatsThisLabel->setFocusPolicy (QWidget::NoFocus);
     272    whatsThisLabel->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Fixed);
     273    whatsThisLabel->setBackgroundMode (QLabel::PaletteMidlight);
     274    whatsThisLabel->setFrameShape (QLabel::Box);
     275    whatsThisLabel->setFrameShadow (QLabel::Sunken);
     276    whatsThisLabel->setMargin (7);
     277    whatsThisLabel->setScaledContents (FALSE);
     278    whatsThisLabel->setAlignment (int (QLabel::WordBreak |
     279                                       QLabel::AlignJustify |
     280                                       QLabel::AlignTop));
     281
    267282    whatsThisLabel->setTextFormat (Qt::RichText);
    268     whatsThisLabel->setMinimumHeight (whatsThisLabel->frameWidth() * 2 +
    269                                       6 /* seems that RichText adds some margin */ +
    270                                       whatsThisLabel->fontMetrics().lineSpacing() * 3);
     283    whatsThisLabel->setFixedHeight (whatsThisLabel->frameWidth() * 2 +
     284                                    6 /* seems that RichText adds some margin */ +
     285                                    whatsThisLabel->fontMetrics().lineSpacing() * 3);
    271286    whatsThisLabel->setMinimumWidth (whatsThisLabel->frameWidth() * 2 +
    272287                                     6 /* seems that RichText adds some margin */ +
    273288                                     whatsThisLabel->fontMetrics().width ('m') * 40);
     289    connect (whatsThisLabel, SIGNAL (textChanged()), this, SLOT (processAdjustSize()));
    274290
    275291    /*
     
    655671
    656672    VBoxGlobal::centerWidget (this, parentWidget());
     673}
     674
     675void VBoxVMSettingsDlg::processAdjustSize()
     676{
     677    int newHeight = minimumSize().height();
     678    int oldHeight = height();
     679    if (newHeight > oldHeight)
     680        resize (minimumSize());
    657681}
    658682
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