diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-07-11 13:25:45 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-07-11 13:25:45 +0000 |
| commit | 9d9a0e202c31e034eb748a9d411795ea80aabd46 (patch) | |
| tree | 681103f062c93e34193fcb7e2257790dbd8f113d /src | |
| parent | 35b2986d14c2abc6949da8fa111157dfea70d3ba (diff) | |
| download | qmmp-9d9a0e202c31e034eb748a9d411795ea80aabd46.tar.gz qmmp-9d9a0e202c31e034eb748a9d411795ea80aabd46.tar.bz2 qmmp-9d9a0e202c31e034eb748a9d411795ea80aabd46.zip | |
some file dialog fixes
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@453 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialogimpl.cpp | 50 |
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()) { |
