diff options
Diffstat (limited to 'src/plugins/debugger/startexternaldialog.cpp')
-rw-r--r-- | src/plugins/debugger/startexternaldialog.cpp | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/src/plugins/debugger/startexternaldialog.cpp b/src/plugins/debugger/startexternaldialog.cpp new file mode 100644 index 0000000000..c87982ab1d --- /dev/null +++ b/src/plugins/debugger/startexternaldialog.cpp @@ -0,0 +1,124 @@ +/*************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** +** Non-Open Source Usage +** +** Licensees may use this file in accordance with the Qt Beta Version +** License Agreement, Agreement version 2.2 provided with the Software or, +** alternatively, in accordance with the terms contained in a written +** agreement between you and Nokia. +** +** GNU General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the packaging +** of this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** +** http://www.fsf.org/licensing/licenses/info/GPLv2.html and +** http://www.gnu.org/copyleft/gpl.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt GPL Exception version +** 1.2, included in the file GPL_EXCEPTION.txt in this package. +** +***************************************************************************/ +#include "startexternaldialog.h" + +#include <QtGui/QFileDialog> +#include <QtGui/QPushButton> + +using namespace Debugger::Internal; + +StartExternalDialog::StartExternalDialog(QWidget *parent) + : QDialog(parent) +{ + setupUi(this); + buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); + + //execLabel->setHidden(false); + //execEdit->setHidden(false); + //browseButton->setHidden(false); + + execLabel->setText(tr("Executable:")); + argLabel->setText(tr("Arguments:")); + + connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + + connect(browseButton, SIGNAL(clicked()), + this, SLOT(onBrowseButton())); +} + +void StartExternalDialog::setExecutableFile(const QString &str) +{ + execEdit->setText(str); +} + +void StartExternalDialog::setExecutableArguments(const QString &str) +{ + argsEdit->setText(str); +} + +QString StartExternalDialog::executableFile() const +{ + return execEdit->text(); +} + +QString StartExternalDialog::executableArguments() const +{ + return argsEdit->text(); + /* + bool inQuotes = false; + QString args = argsEdit->text(); + QChar current; + QChar last; + QString arg; + + QStringList result; + if (!args.isEmpty()) + result << QLatin1String("--args"); + result << execEdit->text(); + + for(int i=0; i<args.length(); ++i) { + current = args.at(i); + + if (current == QLatin1Char('\"') && last != QLatin1Char('\\')) { + if (inQuotes && !arg.isEmpty()) { + result << arg; + arg.clear(); + } + inQuotes = !inQuotes; + } else if (!inQuotes && current == QLatin1Char(' ')) { + arg = arg.trimmed(); + if (!arg.isEmpty()) { + result << arg; + arg.clear(); + } + } else { + arg += current; + } + + last = current; + } + + if (!arg.isEmpty()) + result << arg; + + return result; + */ +} + +void StartExternalDialog::onBrowseButton() +{ + QString fileName = QFileDialog::getOpenFileName(this, tr("Select Executable"), + execEdit->text()); + execEdit->setText(fileName); +} |