lbajardsilogic@228: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@228: lbajardsilogic@228: /* Sound Access lbajardsilogic@228: EASAIER client application. lbajardsilogic@228: Silogic 2007. Laure Bajard. lbajardsilogic@228: lbajardsilogic@228: This program is free software; you can redistribute it and/or lbajardsilogic@228: modify it under the terms of the GNU General Public License as lbajardsilogic@228: published by the Free Software Foundation; either version 2 of the lbajardsilogic@228: License, or (at your option) any later version. See the file lbajardsilogic@228: COPYING included with this distribution for more information. lbajardsilogic@228: */ lbajardsilogic@228: lbajardsilogic@228: #include lbajardsilogic@228: #include lbajardsilogic@228: #include lbajardsilogic@228: lbajardsilogic@228: #include "BrowseLineEdit.h" lbajardsilogic@228: lbajardsilogic@228: BrowseLineEdit::BrowseLineEdit(void) : QWidget() lbajardsilogic@228: { lbajardsilogic@228: QHBoxLayout *mainLayout = new QHBoxLayout; lbajardsilogic@228: mainLayout->setSpacing(0); lbajardsilogic@228: mainLayout->setMargin(0); lbajardsilogic@228: lbajardsilogic@228: m_lineEdit = new QLineEdit(); lbajardsilogic@228: m_browseButton = new QPushButton(tr("&Browse...")); lbajardsilogic@228: lbajardsilogic@228: connect(m_lineEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(textChanged(const QString &))); lbajardsilogic@228: lbajardsilogic@228: connect(m_browseButton, SIGNAL(clicked()), this, SLOT(browse())); lbajardsilogic@228: lbajardsilogic@228: mainLayout->addWidget(m_lineEdit); lbajardsilogic@228: mainLayout->addSpacing(10); lbajardsilogic@228: mainLayout->addWidget(m_browseButton); lbajardsilogic@228: lbajardsilogic@228: setLayout(mainLayout); lbajardsilogic@228: lbajardsilogic@228: } lbajardsilogic@228: lbajardsilogic@228: BrowseLineEdit::~BrowseLineEdit(void) lbajardsilogic@228: { lbajardsilogic@228: } lbajardsilogic@228: lbajardsilogic@228: void BrowseLineEdit::browse() lbajardsilogic@228: { lbajardsilogic@228: QString curPath = m_lineEdit->text(); lbajardsilogic@228: lbajardsilogic@228: QString path = QFileDialog::getOpenFileName(this, tr("Select file"), curPath); lbajardsilogic@228: lbajardsilogic@228: if (path.isEmpty()) return; lbajardsilogic@228: lbajardsilogic@228: if (!(QFileInfo(path).exists() && lbajardsilogic@228: QFileInfo(path).isFile() && lbajardsilogic@228: QFileInfo(path).isReadable())) lbajardsilogic@228: { lbajardsilogic@228: QMessageBox::critical(this, tr("Failed to open file"), tr("File \"%1\" does not exist or is not a readable file").arg(path)); lbajardsilogic@228: return; lbajardsilogic@228: } lbajardsilogic@228: lbajardsilogic@228: m_lineEdit->setText(path); lbajardsilogic@228: lbajardsilogic@228: }