aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Misc/FileDialogs/QmmpFileDialog/qmmpfiledialogimpl.cpp
blob: 984cc72047ccbc7289afbf97d050f27d30b97bf1 (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
#include "qmmpfiledialogimpl.h"

#include <QDirModel>
#include <QFileInfo>

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);
} 

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::Dirs | QDir::Files | QDir::NoDotAndDotDot);
    }
    else if(m == FileDialog::AddDirs)
    {
        setWindowTitle("Add Dirs");
        m_model->setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
    }
    else
    {
        setWindowTitle("Save File");
        m_model->setFilter(QDir::Dirs | 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(d);
}

void QmmpFileDialogImpl::on_listToolButton_toggled(bool yes)
{
    if(yes)
    {
        iconToolButton->setChecked(false);
        fileListView->setViewMode(QListView::ListMode);
    }
}

void QmmpFileDialogImpl::on_iconToolButton_toggled(bool yes)
{
    if(yes)
    {
        listToolButton->setChecked(false);
        fileListView->setViewMode(QListView::IconMode);
    }
}