VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/include/VBoxSettingsUtils.h@ 20554

Last change on this file since 20554 was 19103, checked in by vboxsync, 16 years ago

FE/Qt4: Removed obsolete unused dialog (add host interface input dialog).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Revision Author Id
File size: 4.2 KB
Line 
1/** @file
2 *
3 * VBox frontends: Qt4 GUI ("VirtualBox"):
4 * VBoxSettingsUtils class declaration
5 */
6
7/*
8 * Copyright (C) 2006-2008 Sun Microsystems, Inc.
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 *
18 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19 * Clara, CA 95054 USA or visit http://www.sun.com if you need
20 * additional information or have any questions.
21 */
22
23#ifndef __VBoxSettingsUtils_h__
24#define __VBoxSettingsUtils_h__
25
26#include <VBoxGlobal.h>
27
28/* Qt includes */
29#ifdef Q_WS_WIN
30#include <QDialog>
31#include <QLineEdit>
32#include <QPushButton>
33#endif
34#include <QHBoxLayout>
35#include <QLabel>
36#include <QTreeWidget>
37#include <QHeaderView>
38#include <QKeyEvent>
39#include <QTableView>
40
41enum
42{
43 /* mTwUSBFilters column numbers */
44 twUSBFilters_Name = 0,
45};
46
47/**
48 * QTreeWidget class reimplementation to use as boot items table.
49 * It has one unsorted column without header.
50 * Keymapping handlers for ctrl-up & ctrl-down are translated into
51 * boot-items up/down moving signals.
52 * Emits itemToggled() signal when the item changed.
53 */
54class BootItemsTable : public QTreeWidget
55{
56 Q_OBJECT;
57
58public:
59
60 BootItemsTable (QWidget *aParent) : QTreeWidget (aParent)
61 {
62 header()->hide();
63 connect (this, SIGNAL (itemChanged (QTreeWidgetItem *, int)),
64 this, SLOT (onItemChanged()));
65 }
66
67 ~BootItemsTable() {}
68
69signals:
70
71 void moveItemUp();
72 void moveItemDown();
73 void itemToggled();
74
75private slots:
76
77 void onItemChanged()
78 {
79 emit itemToggled();
80 }
81
82 void keyPressEvent (QKeyEvent *aEvent)
83 {
84 if (aEvent->QInputEvent::modifiers () == Qt::ControlModifier)
85 {
86 switch (aEvent->key())
87 {
88 case Qt::Key_Up:
89 emit moveItemUp();
90 return;
91 case Qt::Key_Down:
92 emit moveItemDown();
93 return;
94 default:
95 break;
96 }
97 }
98 QTreeWidget::keyPressEvent (aEvent);
99 }
100};
101
102class USBListItem : public QTreeWidgetItem
103{
104public:
105
106 enum { USBListItemType = 1002 };
107
108 USBListItem (QTreeWidget *aParent)
109 : QTreeWidgetItem (aParent, QStringList (QString::null), USBListItemType)
110 , mId (-1) {}
111
112 USBListItem (QTreeWidget *aParent, QTreeWidgetItem *aPreceding)
113 : QTreeWidgetItem (aParent, aPreceding, USBListItemType)
114 , mId (-1) {}
115
116 int mId;
117};
118
119/**
120 * Table-View class reimplementation to extend standard QTableView.
121 */
122class QITableView : public QTableView
123{
124 Q_OBJECT;
125
126public:
127
128 QITableView (QWidget *aParent) : QTableView (aParent) {}
129
130signals:
131
132 void currentChanged (const QModelIndex &aCurrent);
133
134protected:
135
136 void currentChanged (const QModelIndex &aCurrent,
137 const QModelIndex &aPrevious)
138 {
139 QTableView::currentChanged (aCurrent, aPrevious);
140 emit currentChanged (aCurrent);
141 }
142
143 void focusInEvent (QFocusEvent *aEvent)
144 {
145 /* Restore edit-mode on focus in. */
146 QTableView::focusInEvent (aEvent);
147 if (model()->flags (currentIndex()) & Qt::ItemIsEditable)
148 edit (currentIndex());
149 }
150};
151
152class VBoxWarnIconLabel: public QWidget
153{
154 Q_OBJECT;
155
156public:
157
158 VBoxWarnIconLabel (QWidget *aParent = NULL)
159 : QWidget (aParent)
160 {
161 QHBoxLayout *layout = new QHBoxLayout (this);
162 VBoxGlobal::setLayoutMargin (layout, 0);
163 layout->addWidget (&mIcon);
164 layout->addWidget (&mLabel);
165 setVisible (false);
166 }
167
168 void setWarningPixmap (const QPixmap& aPixmap) { mIcon.setPixmap (aPixmap); }
169 void setWarningText (const QString& aText) { mLabel.setText (aText); }
170
171private:
172
173 QLabel mIcon;
174 QLabel mLabel;
175};
176
177#endif // __VBoxSettingsUtils_h__
178
Note: See TracBrowser for help on using the repository browser.

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