20 #include <QToolButton> 22 #include <QFileDialog> 24 #include <QGridLayout> 34 , mButtonVisible( true )
40 , mStorageMode( GetFile )
41 , mRelativeStorage( Absolute )
50 mLinkLabel =
new QLabel(
this );
56 mLinkLabel->
setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
67 mFileWidgetButton->
setText(
"..." );
68 connect( mFileWidgetButton, SIGNAL( clicked() ),
this, SLOT( openFileDialog() ) );
69 layout->
addWidget( mFileWidgetButton, 0, 1, 2, 1 );
85 if ( path ==
QSettings().value(
"qgis/nullValue",
"NULL" ) )
91 mLinkLabel->
setText( toUrl( path ) );
108 mDialogTitle = title;
123 return mButtonVisible;
132 void QgsFileWidget::textEdited(
const QString& path )
135 mLinkLabel->
setText( toUrl( path ) );
183 return mRelativeStorage;
191 void QgsFileWidget::openFileDialog()
202 else if ( !mFilePath.
isEmpty() )
204 oldPath = relativePath( mFilePath,
false );
216 oldPath = settings.
value(
"/UI/lastExternalResourceWidgetDefaultPath", defPath ).
toString();
224 title = !mDialogTitle.
isEmpty() ? mDialogTitle :
tr(
"Select a file" );
229 title = !mDialogTitle.
isEmpty() ? mDialogTitle :
tr(
"Select a directory" );
242 settings.
setValue(
"/UI/lastFileNameWidgetDir",
QFileInfo( fileName ).absolutePath() );
246 settings.
setValue(
"/UI/lastFileNameWidgetDir", fileName );
250 fileName = relativePath( fileName,
true );
271 if ( removeRelative )
293 QString urlStr = relativePath( path,
false );
304 rep =
QString(
"<a href=\"%1\">%2</a>" ).
arg( pathStr, path );
309 rep =
QString(
"<a href=\"%1\">%2</a>" ).
arg( pathStr, fileName );
QString toNativeSeparators(const QString &pathName)
QString getExistingDirectory(QWidget *parent, const QString &caption, const QString &dir, QFlags< QFileDialog::Option > options)
void setText(const QString &)
void setOpenExternalLinks(bool open)
QString toString(QFlags< QUrl::FormattingOption > options) const
QString tr(const char *sourceText, const char *disambiguation, int n)
void setValue(const QString &key, const QVariant &value)
void setTextFormat(Qt::TextFormat)
Lineedit with builtin clear button.
void setText(const QString &)
void setMargin(int margin)
QString cleanPath(const QString &path)
QVariant value(const QString &key, const QVariant &defaultValue) const
static QgsProject * instance()
access to canonical QgsProject instance
void setText(const QString &text)
QString getOpenFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFlags< QFileDialog::Option > options)
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const