blob: 3abec0222c766dca37cf35ddf59ee75ff34b0655 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#include "qmmpfiledialogimpl.h"
#include <QDirModel>
#include <QApplication>
#include <QFileInfo>
#include <QStyle>
QmmpFileDialogImpl::QmmpFileDialogImpl( QWidget * parent, Qt::WindowFlags f) : QDialog(parent,f)
{
setupUi(this);
setAttribute(Qt::WA_QuitOnClose, FALSE);
m_model = new QDirModel(this);
m_model->setSorting(QDir::Type /*| QDir::Name*/);
fileListView->setModel(m_model);
//fileListView->setViewMode(QListView::IconMode);
listToolButton->setChecked(true);
upToolButton->setIcon(qApp->style()->standardIcon(QStyle::SP_ArrowUp));
listToolButton->setIcon(qApp->style()->standardIcon(QStyle::SP_FileDialogListView));
iconToolButton->setIcon(qApp->style()->standardIcon(QStyle::SP_FileDialogDetailedView));
}
QmmpFileDialogImpl::~QmmpFileDialogImpl()
{
}
void QmmpFileDialogImpl::on_lookInComboBox_activated(const QString&)
{
qWarning("TODO: %s %d",__FILE__,__LINE__);
}
void QmmpFileDialogImpl::on_upToolButton_clicked()
{
fileListView->setRootIndex(m_model->parent(fileListView->rootIndex()));
lookInComboBox->setEditText(m_model->filePath(fileListView->rootIndex()));
}
void QmmpFileDialogImpl::on_fileListView_doubleClicked(const QModelIndex& ind)
{
if (ind.isValid())
{
QFileInfo info = m_model->fileInfo(ind);
if (info.isDir())
{
fileListView->setRootIndex(ind);
lookInComboBox->setEditText(m_model->filePath(ind));
}
else
{
QStringList l;
l << m_model->filePath(ind);
emit filesAdded(l);
}
}
}
void QmmpFileDialogImpl::on_fileNameLineEdit_returnPressed()
{
on_addPushButton_clicked();
}
void QmmpFileDialogImpl::on_addPushButton_clicked()
{
QModelIndexList ml = fileListView->selectionModel()->selectedIndexes();
QStringList l;
foreach(QModelIndex i,ml)
l << m_model->filePath(i);
qWarning("!!!!!!!!!");
emit filesAdded(l);
}
void QmmpFileDialogImpl::setModeAndMask(const QString& d,FileDialog::Mode m, const QStringList& mask)
{
if (m == FileDialog::AddFiles)
{
setWindowTitle("Add Files");
m_model->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
m_model->setNameFilters(mask);
}
else if (m == FileDialog::AddDirs)
{
setWindowTitle("Add Dirs");
m_model->setFilter(QDir::AllDirs | QDir::NoDotAndDotDot);
}
else
{
setWindowTitle("Save File");
m_model->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
qWarning("To be implemented...");
}
m_model->setSorting(QDir::Type);
fileListView->setRootIndex(m_model->index(d));
m_model->sort(0);
lookInComboBox->setEditText(QDir::cleanPath(d));
}
void QmmpFileDialogImpl::on_listToolButton_toggled(bool yes)
{
if (yes)
{
iconToolButton->setChecked(false);
fileListView->setViewMode(QListView::ListMode);
fileListView->setGridSize(QSize(-1, -1));
}
}
void QmmpFileDialogImpl::on_iconToolButton_toggled(bool yes)
{
if (yes)
{
listToolButton->setChecked(false);
fileListView->setViewMode(QListView::IconMode);
fileListView->setGridSize(QSize(82, 82));
}
}
|