aboutsummaryrefslogtreecommitdiff
path: root/src/ui/fft.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/fft.c')
0 files changed, 0 insertions, 0 deletions
r02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> 2017-10-07 17:56:23 +0000 committer trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> 2017-10-07 17:56:23 +0000 changed contact information' href='/qmmp/commit/src/plugins/FileDialogs/TwoPanelFileDialog/twopanelfiledialogimpl.h?id=41c8a60a2ebe4696a17704b81ddf06f3c7b88023'>41c8a60a2
806aa8dd1
















ac64d9ea0

806aa8dd1
ac64d9ea0
806aa8dd1





912dd0717
41c8a60a2
912dd0717
ac64d9ea0
806aa8dd1


b917024aa
806aa8dd1
ac64d9ea0
806aa8dd1
912dd0717

806aa8dd1

912dd0717
806aa8dd1




806aa8dd1
48698c0f1
806aa8dd1
3206842d6
ef99559c8
806aa8dd1

806aa8dd1

8a6f98263
912dd0717


806aa8dd1

ac64d9ea0
806aa8dd1

806aa8dd1





b917024aa
806aa8dd1



8a6f98263
806aa8dd1











8a6f98263
806aa8dd1

















ac64d9ea0
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
                                                                           
                                                                           
                                                                           
















                                                                            

                                
 
                                  





                              
   
                                         
   
                                             


            
                                                      
 
                              
 

                                                                                          

        
                                                               




                                                                           
                                                     
                                                                    
                                                               
                                
                                 

                                            

                                             
                                                


                                                      

                                 
                                

                          





                                       
                                                                                                                                



                              
                                                                  











                                                                                           
                                                             

















                                                                                                             
                                 
/**************************************************************************
*   Copyright (C) 2016 by Ilya Kotov                                      *
*   forkotov02@ya.ru                                                      *
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
*   This program is distributed in the hope that it will be useful,       *
*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
*   GNU General Public License for more details.                          *
*                                                                         *
*   You should have received a copy of the GNU General Public License     *
*   along with this program; if not, write to the                         *
*   Free Software Foundation, Inc.,                                       *
*   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
***************************************************************************/

#ifndef TWOPANELFILEDIALOGIMPL_H
#define TWOPANELFILEDIALOGIMPL_H

#include "ui_twopanelfiledialog.h"
#include <QDialog>
#include <QCompleter>
#include <QAbstractItemView>
#include <qmmpui/filedialog.h>
#include <QFileSystemModel>

/*!
 *  @author Ilya Kotov <forkotov02@ya.ru>
 */
class TwoPanelFileDialogImpl : public QDialog
{
    Q_OBJECT
public:
    TwoPanelFileDialogImpl(QWidget *parent = nullptr);

    ~TwoPanelFileDialogImpl();

    void setModeAndMask(const QString &path, FileDialog::Mode m, const QStringList& mask);
    QStringList selectedFiles() const;

signals:
    void filesSelected(const QStringList &selected, bool play);

private slots:
    void updateDirSelection(const QItemSelection&s, const QItemSelection&);
    void updateFileSelection();
    void on_dirListView_doubleClicked(const QModelIndex&ind);
    void on_lookInComboBox_activated(const QString&);
    void on_fileListWidget_itemDoubleClicked(QListWidgetItem *item);
    void on_fileNameLineEdit_textChanged (const QString &text);
    void on_addButton_clicked();
    void on_playButton_clicked();
    void on_fileTypeComboBox_activated(int);

private:
    void updateFileList(const QString &path);
    void hideEvent (QHideEvent *event) override;
    void addToHistory(const QString &path);
    void addFiles(const QStringList &list, bool play);

    int m_mode;
    QFileSystemModel* m_dirModel;
    Ui::TwoPanelFileDialog m_ui;
    QStringList m_history;
    QStringList m_filters;
};

class PathCompleter : public QCompleter
{
    Q_OBJECT
public:
    PathCompleter(QAbstractItemModel *model, QAbstractItemView *itemView, QObject *parent = nullptr) : QCompleter(model, parent)
    {
        m_itemView = itemView;
    }

    QString pathFromIndex(const QModelIndex &index) const override
    {
        const QFileSystemModel *fileModel = static_cast<const QFileSystemModel *>(model());
        QString currentLocation = fileModel->filePath(m_itemView->rootIndex());
        QString path = fileModel->filePath(index);
        if (path.startsWith(currentLocation))
        {
            path = path.mid(currentLocation.length() + 1);
        }
        return path;
    }


    QStringList splitPath(const QString &path) const override
    {