~ubuntu-branches/ubuntu/raring/virtualbox-ose/raring

« back to all changes in this revision

Viewing changes to src/VBox/Frontends/VirtualBox/src/widgets/VBoxLineTextEdit.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-12-18 16:44:29 UTC
  • mfrom: (0.3.3 upstream) (0.4.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091218164429-jd34ccexpv5na11a
Tags: 3.1.2-dfsg-1ubuntu1
* Merge from Debian unstable (LP: #498219), remaining changes:
  - Disable update action
    - debian/patches/u01-disable-update-action.dpatch
  - VirtualBox should go in Accessories, not in System tools (LP: #288590)
    - debian/virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add Apport hook
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Add Launchpad integration
    - debian/control
    - debian/lpi-bug.xpm
    - debian/patches/u02-lp-integration.dpatch
* Fixes the following bugs:
  - Kernel module fails to build with Linux >= 2.6.32 (LP: #474625)
  - X.Org drivers need to be rebuilt against X-Server 1.7 (LP: #495935)
  - The *-source packages try to build the kernel modules even though the
    kernel headers aren't available (LP: #473334)
* Replace *-source packages with transitional packages for *-dkms.
* Adapt u01-disable-update-action.dpatch and u02-lp-integration.dpatch for
  new upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/** @file
 
2
 *
 
3
 * VBox frontends: Qt4 GUI ("VirtualBox"):
 
4
 * VBoxLineTextEdit class definitions
 
5
 */
 
6
 
 
7
/*
 
8
 * Copyright (C) 2009 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
/* VBox includes */
 
24
#include "VBoxGlobal.h"
 
25
#include "VBoxLineTextEdit.h"
 
26
#include "QIFileDialog.h"
 
27
 
 
28
/* Qt includes */
 
29
#include <QDialogButtonBox>
 
30
#include <QFile>
 
31
#include <QLineEdit>
 
32
#include <QPushButton>
 
33
#include <QTextEdit>
 
34
#include <QTextStream>
 
35
 
 
36
////////////////////////////////////////////////////////////////////////////////
 
37
// VBoxTextEditor
 
38
 
 
39
VBoxTextEditor::VBoxTextEditor (QWidget *aParent /* = NULL */)
 
40
  : QIWithRetranslateUI<QIDialog> (aParent)
 
41
{
 
42
    QVBoxLayout *mainLayout = new QVBoxLayout (this);
 
43
    mainLayout->setMargin (12);
 
44
 
 
45
    /* We need a text editor */
 
46
    mTextEdit = new QTextEdit (this);
 
47
    mainLayout->addWidget (mTextEdit);
 
48
    /* and some buttons to interact with */
 
49
    mButtonBox = new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
 
50
    mOpenBtn = new QPushButton (this);
 
51
    mButtonBox->addButton (mOpenBtn, QDialogButtonBox::ActionRole);
 
52
    mainLayout->addWidget (mButtonBox);
 
53
    /* Connect the buttons so that they are useful */
 
54
    connect (mButtonBox, SIGNAL (accepted()),
 
55
             this, SLOT (accept()));
 
56
    connect (mButtonBox, SIGNAL (rejected()),
 
57
             this, SLOT (reject()));
 
58
    connect (mOpenBtn, SIGNAL (clicked()),
 
59
             this, SLOT (open()));
 
60
 
 
61
    /* Applying language settings */
 
62
    retranslateUi();
 
63
}
 
64
 
 
65
void VBoxTextEditor::setText (const QString& aText)
 
66
{
 
67
    mTextEdit->setText (aText);
 
68
}
 
69
 
 
70
QString VBoxTextEditor::text() const
 
71
{
 
72
    return mTextEdit->toPlainText();
 
73
}
 
74
 
 
75
void VBoxTextEditor::retranslateUi()
 
76
{
 
77
    setWindowTitle (tr ("Edit text"));
 
78
    mOpenBtn->setText (tr ("&Replace..."));
 
79
    mOpenBtn->setToolTip (tr ("Replaces the current text with the content of a file."));
 
80
}
 
81
 
 
82
void VBoxTextEditor::open()
 
83
{
 
84
    QString fileName = QIFileDialog::getOpenFileName (vboxGlobal().documentsPath(), tr("Text (*.txt);;All (*.*)"), this, tr("Select a file to open..."));
 
85
    if (!fileName.isEmpty())
 
86
    {
 
87
        QFile file (fileName);
 
88
        if (file.open(QFile::ReadOnly))
 
89
        {
 
90
            QTextStream in (&file);
 
91
            mTextEdit->setPlainText (in.readAll());
 
92
        }
 
93
    }
 
94
 
 
95
}
 
96
 
 
97
////////////////////////////////////////////////////////////////////////////////
 
98
// VBoxLineTextEdit
 
99
 
 
100
VBoxLineTextEdit::VBoxLineTextEdit (QWidget *aParent /* = NULL */)
 
101
  : QIWithRetranslateUI<QPushButton> (aParent)
 
102
{
 
103
    connect (this, SIGNAL (clicked()),
 
104
             this, SLOT (edit()));
 
105
 
 
106
    setFocusPolicy (Qt::StrongFocus);
 
107
    retranslateUi();
 
108
}
 
109
 
 
110
void VBoxLineTextEdit::retranslateUi()
 
111
{
 
112
    QPushButton::setText (tr ("&Edit"));
 
113
}
 
114
 
 
115
void VBoxLineTextEdit::edit()
 
116
{
 
117
    VBoxTextEditor te (this);
 
118
    te.setText (mText);
 
119
    if (te.exec() == QDialog::Accepted)
 
120
        mText = te.text();
 
121
}
 
122