]> git.sesse.net Git - vlc/blob - modules/gui/qt4/components/open.cpp
Simplification of Advanced Open
[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
45     BUTTONACT( ui.fileBrowseButton, browseFile() );
46     BUTTONACT( ui.subBrowseButton, browseFileSub() );
47     BUTTONACT( ui.audioBrowseButton, browseFileAudio() );
48     CONNECT( ui.fileInput, editTextChanged(QString ), this, updateMRL());
49 }
50
51 FileOpenPanel::~FileOpenPanel()
52 {}
53
54 void FileOpenPanel::sendUpdate()
55 {}
56
57 QStringList FileOpenPanel::browse()
58 {
59     return QFileDialog::getOpenFileNames( this, qtr("Open File"), "", "" );
60 }
61
62 void FileOpenPanel::browseFile()
63 {
64     //FIXME ! files with spaces
65     QString files = browse().join(" ");
66     ui.fileInput->setEditText( files );
67     ui.fileInput->addItem( files );
68
69     if ( ui.fileInput->count() > 8 ) ui.fileInput->removeItem(0);
70
71     updateMRL();
72 }
73
74 void FileOpenPanel::browseFileSub()
75 {
76     ui.subInput->setEditText( browse().join(" ") );
77
78     updateSubsMRL();
79 }
80
81 void FileOpenPanel::browseFileAudio()
82 {
83     ui.audioFileInput->setEditText( browse().join(" ") );
84 }
85
86 void FileOpenPanel::updateSubsMRL()
87 {
88     QStringList* subsMRL = new QStringList("sub-file=");
89     subsMRL->append( ui.subInput->currentText() );
90     //FIXME !!
91     subsMRL->append( "subsdec-align=" + ui.alignSubComboBox->currentText() );
92     subsMRL->append( "sub-rel-fontsize=" + ui.sizeSubComboBox->currentText() );
93
94     subsMRL->join(" ");
95 }
96
97 void FileOpenPanel::updateMRL()
98 {
99     QString MRL = ui.fileInput->currentText();
100
101     emit(mrlUpdated(MRL));
102 }
103
104 QString FileOpenPanel::getUpdatedMRL()
105 {
106     return ui.fileInput->currentText();
107 }
108
109 void FileOpenPanel::clear()
110 {
111     ui.fileInput->setEditText( "");
112     ui.subInput->setEditText( "");
113     ui.audioFileInput->setEditText( "");
114 }
115
116
117
118 /**************************************************************************
119  * Disk open
120  **************************************************************************/
121 DiskOpenPanel::DiskOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
122                                 OpenPanel( _parent, _p_intf )
123 {
124     ui.setupUi( this );
125 }
126
127 DiskOpenPanel::~DiskOpenPanel()
128 {}
129
130 void DiskOpenPanel::sendUpdate()
131 {}
132
133 QString DiskOpenPanel::getUpdatedMRL()
134 {
135
136     //return ui.DiskInput->currentText();
137     return NULL;
138 }
139
140
141
142 /**************************************************************************
143  * Net open
144  **************************************************************************/
145 NetOpenPanel::NetOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
146                                 OpenPanel( _parent, _p_intf )
147 {
148     ui.setupUi( this );
149 }
150
151 NetOpenPanel::~NetOpenPanel()
152 {}
153
154 void NetOpenPanel::sendUpdate()
155 {}
156 /*
157 void NetOpenPanel::sendUpdate()
158 {
159     QString *mrl = new QString();
160     QString *cache = new QString();
161     getUpdatedMRL( mrl, cache );,
162     emit dataUpdated( mrl, cache );
163 }*/
164
165 QString NetOpenPanel::getUpdatedMRL()
166 {
167 //  return ui.NetInput->currentText();
168     return NULL;
169 }
170