1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-10-06 23:03:22 +02:00
GPXSee/src/fileselectwidget.cpp

44 lines
1.1 KiB
C++
Raw Normal View History

2016-10-12 22:37:40 +02:00
#include <QPushButton>
2016-10-11 03:17:30 +02:00
#include <QToolButton>
2016-05-24 03:01:22 +02:00
#include <QFileDialog>
#include <QHBoxLayout>
2016-05-28 07:39:40 +02:00
#include <QFileInfo>
#include <QApplication>
#include <QFontMetrics>
2016-05-24 03:01:22 +02:00
#include "fileselectwidget.h"
FileSelectWidget::FileSelectWidget(QWidget *parent) : QWidget(parent)
{
2016-05-28 07:39:40 +02:00
QFontMetrics fm(QApplication::font());
2016-05-24 03:01:22 +02:00
_edit = new QLineEdit();
2016-05-28 07:39:40 +02:00
_edit->setMinimumWidth(fm.boundingRect(QDir::homePath()).width());
2016-10-12 22:37:40 +02:00
#ifdef Q_OS_WIN32
_button = new QPushButton("...");
_button->setMaximumWidth(_button->sizeHint().width() / 2);
#else // Q_OS_WIN32
2016-10-11 03:17:30 +02:00
_button = new QToolButton();
_button->setText("...");
2016-10-12 22:37:40 +02:00
#endif // Q_OS_WIN32
2016-05-24 03:01:22 +02:00
connect(_button, SIGNAL(clicked()), this, SLOT(browse()));
QHBoxLayout *layout = new QHBoxLayout();
layout->setMargin(0);
layout->addWidget(_edit);
layout->addWidget(_button);
setLayout(layout);
2016-10-12 22:37:40 +02:00
QSizePolicy p(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
setSizePolicy(p);
2016-05-24 03:01:22 +02:00
}
void FileSelectWidget::browse()
{
2016-05-28 07:39:40 +02:00
QFileInfo fi(_edit->text());
2016-05-24 03:01:22 +02:00
QString fileName = QFileDialog::getSaveFileName(this, tr("Select file"),
2016-05-28 07:39:40 +02:00
fi.dir().absolutePath(), _filter);
2016-05-24 03:01:22 +02:00
if (!fileName.isEmpty())
_edit->setText(fileName);
}