source: smplayer/trunk/src/filepropertiesdialog.cpp@ 136

Last change on this file since 136 was 124, checked in by Silvan Scherrer, 13 years ago

SMPlayer: 0.7.1 trunk update

  • Property svn:eol-style set to LF
File size: 5.8 KB
Line 
1/* smplayer, GUI front-end for mplayer.
2 Copyright (C) 2006-2012 Ricardo Villalba <rvm@users.sourceforge.net>
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/
18
19#include "filepropertiesdialog.h"
20#include <QListWidget>
21#include <QLineEdit>
22#include <QTextEdit>
23#include <QPushButton>
24#include "images.h"
25#include "infofile.h"
26
27
28FilePropertiesDialog::FilePropertiesDialog( QWidget* parent, Qt::WindowFlags f )
29 : QDialog(parent, f)
30{
31 setupUi(this);
32
33 // Setup buttons
34 okButton = buttonBox->button(QDialogButtonBox::Ok);
35 cancelButton = buttonBox->button(QDialogButtonBox::Cancel);
36 applyButton = buttonBox->button(QDialogButtonBox::Apply);
37 connect( applyButton, SIGNAL(clicked()), this, SLOT(apply()) );
38
39 codecs_set = FALSE;
40
41 // Read codec info from InfoReader:
42 InfoReader *i = InfoReader::obj();
43 setCodecs( i->vcList(), i->acList(), i->demuxerList() );
44
45 retranslateStrings();
46}
47
48FilePropertiesDialog::~FilePropertiesDialog() {
49}
50
51void FilePropertiesDialog::setMediaData(MediaData md) {
52 media_data = md;
53 showInfo();
54}
55
56void FilePropertiesDialog::showInfo() {
57 InfoFile info;
58 info_edit->setText( info.getInfo(media_data) );
59}
60
61void FilePropertiesDialog::retranslateStrings() {
62 retranslateUi(this);
63
64 setWindowIcon( Images::icon("logo") );
65
66 showInfo();
67
68 // Qt 4.2 doesn't update the buttons' text
69#if QT_VERSION < 0x040300
70 okButton->setText( tr("OK") );
71 cancelButton->setText( tr("Cancel") );
72 applyButton->setText( tr("Apply") );
73#endif
74
75}
76
77void FilePropertiesDialog::accept() {
78 qDebug("FilePropertiesDialog::accept");
79
80 hide();
81 setResult( QDialog::Accepted );
82 emit applied();
83}
84
85void FilePropertiesDialog::apply() {
86 qDebug("FilePropertiesDialog::apply");
87
88 setResult( QDialog::Accepted );
89 emit applied();
90}
91
92void FilePropertiesDialog::setCodecs(InfoList vc, InfoList ac, InfoList demuxer)
93{
94 vclist = vc;
95 aclist = ac;
96 demuxerlist = demuxer;
97
98 InfoList::iterator it;
99
100 for ( it = vclist.begin(); it != vclist.end(); ++it ) {
101 vc_listbox->addItem( (*it).name() +" - "+ (*it).desc() );
102 }
103
104 for ( it = aclist.begin(); it != aclist.end(); ++it ) {
105 ac_listbox->addItem( (*it).name() +" - "+ (*it).desc() );
106 }
107
108 for ( it = demuxerlist.begin(); it != demuxerlist.end(); ++it ) {
109 demuxer_listbox->addItem( (*it).name() +" - "+ (*it).desc() );
110 }
111
112 codecs_set = TRUE;
113}
114
115void FilePropertiesDialog::setDemuxer(QString demuxer, QString original_demuxer) {
116 qDebug("FilePropertiesDialog::setDemuxer");
117 if (!original_demuxer.isEmpty()) orig_demuxer = original_demuxer;
118 int pos = find(demuxer, demuxerlist );
119 if (pos != -1) demuxer_listbox->setCurrentRow(pos);
120
121 qDebug(" * demuxer: '%s', pos: %d", demuxer.toUtf8().data(), pos );
122}
123
124QString FilePropertiesDialog::demuxer() {
125 int pos = demuxer_listbox->currentRow();
126 if ( pos < 0 )
127 return "";
128 else
129 return demuxerlist[pos].name();
130}
131
132void FilePropertiesDialog::setVideoCodec(QString vc, QString original_vc) {
133 qDebug("FilePropertiesDialog::setVideoCodec");
134 if (!original_vc.isEmpty()) orig_vc = original_vc;
135 int pos = find(vc, vclist );
136 if (pos != -1) vc_listbox->setCurrentRow(pos);
137
138 qDebug(" * vc: '%s', pos: %d", vc.toUtf8().data(), pos );
139}
140
141QString FilePropertiesDialog::videoCodec() {
142 int pos = vc_listbox->currentRow();
143 if ( pos < 0 )
144 return "";
145 else
146 return vclist[pos].name();
147}
148
149void FilePropertiesDialog::setAudioCodec(QString ac, QString original_ac) {
150 qDebug("FilePropertiesDialog::setAudioCodec");
151 if (!original_ac.isEmpty()) orig_ac = original_ac;
152 int pos = find(ac, aclist );
153 if (pos != -1) ac_listbox->setCurrentRow(pos);
154
155 qDebug(" * ac: '%s', pos: %d", ac.toUtf8().data(), pos );
156}
157
158QString FilePropertiesDialog::audioCodec() {
159 int pos = ac_listbox->currentRow();
160 if ( pos < 0 )
161 return "";
162 else
163 return aclist[pos].name();
164}
165
166void FilePropertiesDialog::on_resetDemuxerButton_clicked() {
167 setDemuxer( orig_demuxer );
168}
169
170void FilePropertiesDialog::on_resetACButton_clicked() {
171 setAudioCodec( orig_ac );
172}
173
174void FilePropertiesDialog::on_resetVCButton_clicked() {
175 setVideoCodec( orig_vc );
176}
177
178int FilePropertiesDialog::find(QString s, InfoList &list) {
179 qDebug("FilePropertiesDialog::find");
180
181 int n=0;
182 InfoList::iterator it;
183
184 for ( it = list.begin(); it != list.end(); ++it ) {
185 //qDebug(" * item: '%s', s: '%s'", (*it).name().toUtf8().data(), s.toUtf8().data());
186 if ((*it).name() == s) return n;
187 n++;
188 }
189 return -1;
190}
191
192void FilePropertiesDialog::setMplayerAdditionalArguments(QString args) {
193 mplayer_args_edit->setText(args);
194}
195
196QString FilePropertiesDialog::mplayerAdditionalArguments() {
197 return mplayer_args_edit->text();
198}
199
200void FilePropertiesDialog::setMplayerAdditionalVideoFilters(QString s) {
201 mplayer_vfilters_edit->setText(s);
202}
203
204QString FilePropertiesDialog::mplayerAdditionalVideoFilters() {
205 return mplayer_vfilters_edit->text();
206}
207
208void FilePropertiesDialog::setMplayerAdditionalAudioFilters(QString s) {
209 mplayer_afilters_edit->setText(s);
210}
211
212QString FilePropertiesDialog::mplayerAdditionalAudioFilters() {
213 return mplayer_afilters_edit->text();
214}
215
216// Language change stuff
217void FilePropertiesDialog::changeEvent(QEvent *e) {
218 if (e->type() == QEvent::LanguageChange) {
219 retranslateStrings();
220 } else {
221 QDialog::changeEvent(e);
222 }
223}
224
225#include "moc_filepropertiesdialog.cpp"
Note: See TracBrowser for help on using the repository browser.