3
* VBox frontends: Qt4 GUI ("VirtualBox"):
4
* VBoxLineTextEdit class definitions
8
* Copyright (C) 2009 Sun Microsystems, Inc.
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.
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.
24
#include "VBoxGlobal.h"
25
#include "VBoxLineTextEdit.h"
26
#include "QIFileDialog.h"
29
#include <QDialogButtonBox>
32
#include <QPushButton>
34
#include <QTextStream>
36
////////////////////////////////////////////////////////////////////////////////
39
VBoxTextEditor::VBoxTextEditor (QWidget *aParent /* = NULL */)
40
: QIWithRetranslateUI<QIDialog> (aParent)
42
QVBoxLayout *mainLayout = new QVBoxLayout (this);
43
mainLayout->setMargin (12);
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()),
61
/* Applying language settings */
65
void VBoxTextEditor::setText (const QString& aText)
67
mTextEdit->setText (aText);
70
QString VBoxTextEditor::text() const
72
return mTextEdit->toPlainText();
75
void VBoxTextEditor::retranslateUi()
77
setWindowTitle (tr ("Edit text"));
78
mOpenBtn->setText (tr ("&Replace..."));
79
mOpenBtn->setToolTip (tr ("Replaces the current text with the content of a file."));
82
void VBoxTextEditor::open()
84
QString fileName = QIFileDialog::getOpenFileName (vboxGlobal().documentsPath(), tr("Text (*.txt);;All (*.*)"), this, tr("Select a file to open..."));
85
if (!fileName.isEmpty())
87
QFile file (fileName);
88
if (file.open(QFile::ReadOnly))
90
QTextStream in (&file);
91
mTextEdit->setPlainText (in.readAll());
97
////////////////////////////////////////////////////////////////////////////////
100
VBoxLineTextEdit::VBoxLineTextEdit (QWidget *aParent /* = NULL */)
101
: QIWithRetranslateUI<QPushButton> (aParent)
103
connect (this, SIGNAL (clicked()),
104
this, SLOT (edit()));
106
setFocusPolicy (Qt::StrongFocus);
110
void VBoxLineTextEdit::retranslateUi()
112
QPushButton::setText (tr ("&Edit"));
115
void VBoxLineTextEdit::edit()
117
VBoxTextEditor te (this);
119
if (te.exec() == QDialog::Accepted)