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 } |