]> git.sesse.net Git - vlc/blob - modules/gui/qt4/components/open.cpp
Qt4 : Some work on OpenDialog. Does not work with files with spaces... More work...
[vlc] / modules / gui / qt4 / components / open.cpp
1 /*****************************************************************************
2  * open.cpp : Panels for the open dialogs
3  ****************************************************************************
4  * Copyright (C) 2006 the VideoLAN team
5  * $Id$
6  *
7  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
8  *          Jean-Baptiste Kempf <jb@videolan.org> 
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24
25
26 #include "qt4.hpp"
27 #include "components/open.hpp"
28
29 #include <QFileDialog>
30 /**************************************************************************
31  * Open panel
32  ***************************************************************************/
33
34 OpenPanel::~OpenPanel()
35 {}
36
37 /**************************************************************************
38  * File open
39  **************************************************************************/
40 FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
41                                 OpenPanel( _parent, _p_intf )
42 {
43     ui.setupUi( this );
44     ui.audioGroupBox->hide();
45
46     BUTTONACT( ui.extraAudioButton, toggleExtraAudio() );
47     BUTTONACT( ui.fileBrowseButton, browseFile() );
48     BUTTONACT( ui.subBrowseButton, browseFileSub() );
49     BUTTONACT( ui.audioBrowseButton, browseFileAudio() );
50     CONNECT( ui.fileInput, editTextChanged(QString ), this, updateMRL());
51 }
52
53 FileOpenPanel::~FileOpenPanel()
54 {}
55
56 void FileOpenPanel::sendUpdate()
57 {}
58
59 QStringList FileOpenPanel::browse()
60 {
61     return QFileDialog::getOpenFileNames( this, qtr("Open File"), "", "" );
62 }
63
64 void FileOpenPanel::browseFile()
65 {
66     //FIXME ! files with spaces
67     QString files = browse().join(" ");
68     ui.fileInput->setEditText( files );
69     ui.fileInput->addItem( files );
70
71     if ( ui.fileInput->count() > 8 ) ui.fileInput->removeItem(0);
72
73     updateMRL();
74 }
75
76 void FileOpenPanel::browseFileSub()
77 {
78     ui.subInput->setEditText( browse().join(" ") );
79
80     updateSubsMRL();
81 }
82
83 void FileOpenPanel::browseFileAudio()
84 {
85     ui.audioFileInput->setEditText( browse().join(" ") );
86 }
87
88 void FileOpenPanel::updateSubsMRL()
89 {
90     QStringList* subsMRL = new QStringList("sub-file=");
91     subsMRL->append( ui.subInput->currentText() );
92     //FIXME !!
93     subsMRL->append( "subsdec-align=" + ui.alignSubComboBox->currentText() );
94     subsMRL->append( "sub-rel-fontsize=" + ui.sizeSubComboBox->currentText() );
95
96     subsMRL->join(" ");
97 }
98
99 void FileOpenPanel::updateMRL()
100 {
101     QString MRL = ui.fileInput->currentText();
102
103     emit(mrlUpdated(MRL));
104 }
105
106 QString FileOpenPanel::getUpdatedMRL()
107 {
108     return ui.fileInput->currentText();
109 }
110
111 void FileOpenPanel::toggleExtraAudio()
112 {
113    if (ui.audioGroupBox->isVisible())
114    {
115        ui.audioGroupBox->hide();
116    }
117    else
118    {
119       ui.audioGroupBox->show();
120    }
121 }
122
123 void FileOpenPanel::clear()
124 {
125     ui.fileInput->setEditText( "");
126     ui.subInput->setEditText( "");
127     ui.audioFileInput->setEditText( "");
128 }
129
130
131
132 /**************************************************************************
133  * Disk open
134  **************************************************************************/
135 DiskOpenPanel::DiskOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
136                                 OpenPanel( _parent, _p_intf )
137 {
138     ui.setupUi( this );
139 }
140
141 DiskOpenPanel::~DiskOpenPanel()
142 {}
143
144 void DiskOpenPanel::sendUpdate()
145 {}
146
147 QString DiskOpenPanel::getUpdatedMRL()
148 {
149
150     //return ui.DiskInput->currentText();
151     return NULL;
152 }
153
154
155
156 /**************************************************************************
157  * Net open
158  **************************************************************************/
159 NetOpenPanel::NetOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
160                                 OpenPanel( _parent, _p_intf )
161 {
162     ui.setupUi( this );
163 }
164
165 NetOpenPanel::~NetOpenPanel()
166 {}
167
168 void NetOpenPanel::sendUpdate()
169 {}
170 /*
171 void NetOpenPanel::sendUpdate()
172 {
173     QString *mrl = new QString();
174     QString *cache = new QString();
175     getUpdatedMRL( mrl, cache );,
176     emit dataUpdated( mrl, cache );
177 }*/
178
179 QString NetOpenPanel::getUpdatedMRL()
180 {
181 //  return ui.NetInput->currentText();
182     return NULL;
183 }
184