aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.cpp159
-rw-r--r--src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.h3
2 files changed, 57 insertions, 105 deletions
diff --git a/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.cpp b/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.cpp
index 8bb10a022..f82fff715 100644
--- a/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.cpp
+++ b/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.cpp
@@ -99,25 +99,45 @@ ClassicFileDialogImpl::~ClassicFileDialogImpl()
QStringList ClassicFileDialogImpl::selectedFiles ()
{
- /*QStringList l;
+ QStringList l;
if (m_mode == FileDialog::SaveFile)
{
- l << m_model->filePath(fileListView->rootIndex()) + "/" + fileNameLineEdit->text();
- qDebug("%s",qPrintable(l[0]));
+ QModelIndexList indexes = m_ui.dirListView->selectionModel()->selectedRows(0);
+ if(!indexes.isEmpty() && indexes.first().isValid())
+ {
+ l << m_dirModel->filePath(indexes.first()) + "/" + m_ui.fileNameLineEdit->text();
+ }
+ }
+ else if(m_mode == FileDialog::AddDir || m_mode == FileDialog::AddDirs)
+ {
+ foreach (QModelIndex index, m_ui.dirListView->selectionModel()->selectedRows(0))
+ {
+ if(index.isValid() && (m_dirModel->fileName(index) != ".."))
+ {
+ l << m_dirModel->filePath(index);
+ }
+ }
}
else
{
- QModelIndexList ml = fileListView->selectionModel()->selectedIndexes();
- foreach(QModelIndex i,ml)
- l << m_model->filePath(i);
+ foreach (QListWidgetItem *item, m_ui.fileListWidget->selectedItems())
+ {
+ l << item->data(Qt::UserRole).toString();
+ }
}
- return l;*/
+ return l;
}
void ClassicFileDialogImpl::updateDirSelection(const QItemSelection &s, const QItemSelection &)
{
m_ui.fileListWidget->clear();
+ if(m_mode == FileDialog::AddDir || m_mode == FileDialog::AddDirs)
+ {
+ m_ui.addButton->setEnabled(!selectedFiles().isEmpty());
+ return;
+ }
+
if(s.indexes().isEmpty())
return;
@@ -281,11 +301,6 @@ void ClassicFileDialogImpl::on_fileListView_doubleClicked(const QModelIndex& ind
}*/
}
-void ClassicFileDialogImpl::on_fileNameLineEdit_returnPressed()
-{
- qWarning("TODO: %s %d", __FILE__, __LINE__);
-}
-
void ClassicFileDialogImpl::on_fileNameLineEdit_textChanged (const QString &text)
{
/*if (m_mode == FileDialog::SaveFile)
@@ -304,33 +319,15 @@ void ClassicFileDialogImpl::on_fileNameLineEdit_textChanged (const QString &text
fileListView->selectionModel()->select(index, QItemSelectionModel::Select);*/
}
-void ClassicFileDialogImpl::on_addPushButton_clicked()
+void ClassicFileDialogImpl::on_addButton_clicked()
{
- /*QStringList l;
- if (m_mode != FileDialog::SaveFile)
- {
- QModelIndexList ml;
- /*if (stackedWidget->currentIndex() == 0)
- ml = fileListView->selectionModel()->selectedIndexes();
- else
- ml = treeView->selectionModel()->selectedIndexes();*/
- /*foreach(QModelIndex i,ml)
- {
- if (!l.contains(m_model->filePath(i)))
- l << m_model->filePath(i);
- }
- if (!l.isEmpty())
- {
- addToHistory(l[0]);
- addFiles(l);
- return;
- }
- }
- else
+ QStringList l = selectedFiles();
+
+ if(!l.isEmpty())
{
- l << m_model->filePath(fileListView->rootIndex()) + "/" + fileNameLineEdit->text();
+ addToHistory(l.first());
addFiles(l);
- }*/
+ }
}
void ClassicFileDialogImpl::setModeAndMask(const QString& path, FileDialog::Mode m, const QStringList& mask)
@@ -379,6 +376,7 @@ void ClassicFileDialogImpl::setModeAndMask(const QString& path, FileDialog::Mode
m_ui.fileTypeComboBox->addItems(mask);
m_ui.fileTypeComboBox->setEnabled(true);
on_fileTypeComboBox_activated(0);
+ m_ui.dirListView->setSelectionMode(QAbstractItemView::SingleSelection);
if(m == FileDialog::AddFile)
m_ui.fileListWidget->setSelectionMode(QAbstractItemView::SingleSelection);
else
@@ -400,61 +398,22 @@ void ClassicFileDialogImpl::setModeAndMask(const QString& path, FileDialog::Mode
m_ui.dirListView->setSelectionMode (QAbstractItemView::ExtendedSelection);
break;
}
- //case FileDialog::AddFiles:
- //case FileDialog::AddDirs:
- //case FileDialog::AddDirsFiles:
- //case FileDialog::SaveFile:
- default:
- ;
- }
-
-
- /*if (m == FileDialog::SaveFile)
+ case FileDialog::SaveFile:
{
- if (path.endsWith('/'))
- path.remove(path.size()-1, 1);
- path = path.left(path.lastIndexOf ('/'));
- fileName = d.section('/', -1);
- m_ui.fileNameLineEdit->setText(fileName);
- m_ui.addButton->setEnabled(!fileName.isEmpty());
+ m_ui.fileListWidget->setVisible(false);
+ m_ui.playButton->setVisible(false);
m_ui.addButton->setText(tr("Save"));
+ m_ui.fileTypeComboBox->clear();
+ m_ui.fileTypeComboBox->addItems(mask);
+ m_ui.fileTypeComboBox->setEnabled(true);
+ on_fileTypeComboBox_activated(0);
+ m_ui.dirListView->setSelectionMode(QAbstractItemView::SingleSelection);
+ m_ui.fileListWidget->setSelectionMode(QAbstractItemView::SingleSelection);
+ break;
}
- if (!QFile::exists(path))
- path = QDir::home ().path ();
- if (m_dirModel->filePath(m_ui.dirListView->rootIndex()) != path)
- {
- //m_ui.fileListView->setRootIndex(m_fileModel->index(path));
- m_ui.dirListView->setRootIndex(m_dirModel->index(path));
- m_dirModel->setRootPath(path);
- }
-
- if (m == FileDialog::AddDirs || m == FileDialog::AddDir)
- {
- //m_model->setFilter(QDir::AllDirs | QDir::NoDotAndDotDot); //dirs only
- //fileTypeComboBox->addItem(tr("Directories"));
- //fileTypeComboBox->setEnabled(false);
- }
- else
- {
- //m_model->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
- //fileTypeComboBox->setEnabled(true);
- //fileTypeComboBox->addItems(mask);
- //on_fileTypeComboBox_activated(0);
- }
-
- //set selection mode
- if (m == FileDialog::AddDir || m == FileDialog::AddFile || m == FileDialog::SaveFile)
- {
- m_ui.fileListView->setSelectionMode (QAbstractItemView::SingleSelection);
- //treeView->setSelectionMode (QAbstractItemView::SingleSelection);
+ default:
+ ;
}
- else
- {
- m_ui.fileListView->setSelectionMode (QAbstractItemView::ExtendedSelection);
- //treeView->setSelectionMode (QAbstractItemView::ExtendedSelection);
- }*/
-
- //m_ui.lookInComboBox->setEditText(QDir::cleanPath(path));
}
void ClassicFileDialogImpl::on_fileTypeComboBox_activated(int index)
@@ -463,13 +422,10 @@ void ClassicFileDialogImpl::on_fileTypeComboBox_activated(int index)
m_ui.fileListWidget->clear();
- QModelIndexList indexes = m_ui.dirListView->selectionModel()->selectedIndexes();
-
- QModelIndex modelIndex = indexes.first();
-
- if(modelIndex.isValid())
- updateFileList(m_dirModel->filePath(modelIndex));
+ QModelIndexList indexes = m_ui.dirListView->selectionModel()->selectedRows(0);
+ if(!indexes.isEmpty() && indexes.first().isValid())
+ updateFileList(m_dirModel->filePath(indexes.first()));
}
void ClassicFileDialogImpl::updateFileList(const QString &path)
@@ -516,20 +472,17 @@ void ClassicFileDialogImpl::addToHistory(const QString &path)
void ClassicFileDialogImpl::addFiles(const QStringList &list)
{
- /*if (list.isEmpty())
- return;
if (!isModal())
{
emit filesAdded(list);
- //if (closeOnAddToolButton->isChecked())
- // reject();
+ accept();
}
else if (m_mode == FileDialog::SaveFile)
{
//check file extension
- QString f_name = fileNameLineEdit->text();
+ QString f_name = m_ui.fileNameLineEdit->text();
bool contains = false;
- foreach(QString str, qt_clean_filter_list(fileTypeComboBox->currentText()))
+ foreach(QString str, qt_clean_filter_list(m_ui.fileTypeComboBox->currentText()))
{
QRegExp regExp(str);
regExp.setPatternSyntax(QRegExp::Wildcard);
@@ -542,13 +495,13 @@ void ClassicFileDialogImpl::addFiles(const QStringList &list)
//add extensio to file name
if (!contains)
{
- QString ext = qt_clean_filter_list(fileTypeComboBox->currentText())[0];
+ QString ext = qt_clean_filter_list(m_ui.fileTypeComboBox->currentText())[0];
ext.remove("*");
if (!ext.isEmpty() && ext != ".")
{
f_name.append(ext);
qDebug("ClassicFileDialogImpl: added file extension");
- fileNameLineEdit->setText(f_name);
+ m_ui.fileNameLineEdit->setText(f_name);
return;
}
}
@@ -558,7 +511,7 @@ void ClassicFileDialogImpl::addFiles(const QStringList &list)
{
if (QMessageBox::question (this, windowTitle (),
tr("%1 already exists.\nDo you want to replace it?")
- .arg(fileNameLineEdit->text()),
+ .arg(m_ui.fileNameLineEdit->text()),
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok)
accept();
else
@@ -568,5 +521,5 @@ void ClassicFileDialogImpl::addFiles(const QStringList &list)
accept();
}
else
- accept();*/
+ accept();
}
diff --git a/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.h b/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.h
index a10cb5e72..3af02bcc3 100644
--- a/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.h
+++ b/src/plugins/FileDialogs/ClassicFileDialog/classicfiledialogimpl.h
@@ -52,9 +52,8 @@ private slots:
void on_upToolButton_clicked();
void on_fileListView_doubleClicked(const QModelIndex&);
void on_treeView_doubleClicked(const QModelIndex&);
- void on_fileNameLineEdit_returnPressed();
void on_fileNameLineEdit_textChanged (const QString &text);
- void on_addPushButton_clicked();
+ void on_addButton_clicked();
void on_fileTypeComboBox_activated(int);