aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-07-11 13:25:45 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-07-11 13:25:45 +0000
commit9d9a0e202c31e034eb748a9d411795ea80aabd46 (patch)
tree681103f062c93e34193fcb7e2257790dbd8f113d
parent35b2986d14c2abc6949da8fa111157dfea70d3ba (diff)
downloadqmmp-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
-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())
{