aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/FileDialogs/QmmpFileDialog
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/FileDialogs/QmmpFileDialog')
-rw-r--r--src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialogimpl.cpp50
1 files changed, 42 insertions, 8 deletions
diff --git a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialogimpl.cpp b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialogimpl.cpp
index c8da014e0..55ef890a5 100644
--- a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialogimpl.cpp
+++ b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialogimpl.cpp
@@ -117,7 +117,7 @@ void QmmpFileDialogImpl::on_lookInComboBox_activated(const QString &path)
void QmmpFileDialogImpl::on_upToolButton_clicked()
{
- if(!m_model->parent(fileListView->rootIndex()).isValid())
+ if (!m_model->parent(fileListView->rootIndex()).isValid())
return;
fileListView->setRootIndex(m_model->parent(fileListView->rootIndex()));
treeView->setRootIndex(fileListView->rootIndex());
@@ -196,13 +196,22 @@ void QmmpFileDialogImpl::on_fileNameLineEdit_textChanged (const QString &text)
void QmmpFileDialogImpl::on_addPushButton_clicked()
{
- QModelIndexList ml = fileListView->selectionModel()->selectedIndexes();
QStringList l;
- foreach(QModelIndex i,ml)
- l << m_model->filePath(i);
- if (!l.isEmpty())
+ if (m_mode != FileDialog::SaveFile)
+ {
+ QModelIndexList ml = fileListView->selectionModel()->selectedIndexes();
+ foreach(QModelIndex i,ml)
+ l << m_model->filePath(i);
+ if (!l.isEmpty())
+ {
+ addToHistory(l[0]);
+ addFiles(l);
+ return;
+ }
+ }
+ else
{
- addToHistory(l[0]);
+ l << m_model->filePath(fileListView->rootIndex()) + "/" + fileNameLineEdit->text();
addFiles(l);
}
}
@@ -377,8 +386,33 @@ void QmmpFileDialogImpl::addFiles(const QStringList &list)
}
else if (m_mode == FileDialog::SaveFile)
{
- //TODO check file extension
- QFileInfo info(m_model->filePath(fileListView->rootIndex()) + "/" + fileNameLineEdit->text());
+ //check file extension
+ QString f_name = fileNameLineEdit->text();
+ bool contains = FALSE;
+ foreach(QString str, qt_clean_filter_list(fileTypeComboBox->currentText()))
+ {
+ QRegExp regExp(str);
+ regExp.setPatternSyntax(QRegExp::Wildcard);
+ if (f_name.contains(regExp))
+ {
+ contains = TRUE;
+ break;
+ }
+ }
+ //add extensio to file name
+ if (!contains)
+ {
+ QString ext = qt_clean_filter_list(fileTypeComboBox->currentText())[0];
+ ext.remove("*");
+ if (!ext.isEmpty() && ext != ".")
+ {
+ f_name.append(ext);
+ qDebug("QmmpFileDialogImpl: added file extension");
+ fileNameLineEdit->setText(f_name);
+ return;
+ }
+ }
+ QFileInfo info(list[0]);
if (info.exists())
{