annotate widgets/BrowseLineEdit.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents a6b881972a62
children
rev   line source
lbajardsilogic@228 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@228 2
lbajardsilogic@228 3 /* Sound Access
lbajardsilogic@228 4 EASAIER client application.
lbajardsilogic@228 5 Silogic 2007. Laure Bajard.
lbajardsilogic@228 6
lbajardsilogic@228 7 This program is free software; you can redistribute it and/or
lbajardsilogic@228 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@228 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@228 10 License, or (at your option) any later version. See the file
lbajardsilogic@228 11 COPYING included with this distribution for more information.
lbajardsilogic@228 12 */
lbajardsilogic@228 13
lbajardsilogic@228 14 #include <QFileDialog>
lbajardsilogic@228 15 #include <QMessageBox>
lbajardsilogic@228 16 #include <QHBoxLayout>
lbajardsilogic@228 17
lbajardsilogic@228 18 #include "BrowseLineEdit.h"
lbajardsilogic@228 19
lbajardsilogic@228 20 BrowseLineEdit::BrowseLineEdit(void) : QWidget()
lbajardsilogic@228 21 {
lbajardsilogic@228 22 QHBoxLayout *mainLayout = new QHBoxLayout;
lbajardsilogic@228 23 mainLayout->setSpacing(0);
lbajardsilogic@228 24 mainLayout->setMargin(0);
lbajardsilogic@228 25
lbajardsilogic@228 26 m_lineEdit = new QLineEdit();
lbajardsilogic@228 27 m_browseButton = new QPushButton(tr("&Browse..."));
lbajardsilogic@228 28
lbajardsilogic@228 29 connect(m_lineEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(textChanged(const QString &)));
lbajardsilogic@228 30
lbajardsilogic@228 31 connect(m_browseButton, SIGNAL(clicked()), this, SLOT(browse()));
lbajardsilogic@228 32
lbajardsilogic@228 33 mainLayout->addWidget(m_lineEdit);
lbajardsilogic@228 34 mainLayout->addSpacing(10);
lbajardsilogic@228 35 mainLayout->addWidget(m_browseButton);
lbajardsilogic@228 36
lbajardsilogic@228 37 setLayout(mainLayout);
lbajardsilogic@228 38
lbajardsilogic@228 39 }
lbajardsilogic@228 40
lbajardsilogic@228 41 BrowseLineEdit::~BrowseLineEdit(void)
lbajardsilogic@228 42 {
lbajardsilogic@228 43 }
lbajardsilogic@228 44
lbajardsilogic@228 45 void BrowseLineEdit::browse()
lbajardsilogic@228 46 {
lbajardsilogic@228 47 QString curPath = m_lineEdit->text();
lbajardsilogic@228 48
lbajardsilogic@228 49 QString path = QFileDialog::getOpenFileName(this, tr("Select file"), curPath);
lbajardsilogic@228 50
lbajardsilogic@228 51 if (path.isEmpty()) return;
lbajardsilogic@228 52
lbajardsilogic@228 53 if (!(QFileInfo(path).exists() &&
lbajardsilogic@228 54 QFileInfo(path).isFile() &&
lbajardsilogic@228 55 QFileInfo(path).isReadable()))
lbajardsilogic@228 56 {
lbajardsilogic@228 57 QMessageBox::critical(this, tr("Failed to open file"), tr("File \"%1\" does not exist or is not a readable file").arg(path));
lbajardsilogic@228 58 return;
lbajardsilogic@228 59 }
lbajardsilogic@228 60
lbajardsilogic@228 61 m_lineEdit->setText(path);
lbajardsilogic@228 62
lbajardsilogic@228 63 }