* open.cpp : Panels for the open dialogs
****************************************************************************
* Copyright (C) 2006-2007 the VideoLAN team
+ * Copyright (C) 2007 Société des arts technologiques
+ * Copyright (C) 2007 Savoir-faire Linux
* $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
* Jean-Baptiste Kempf <jb@videolan.org>
+ * Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>
*
* 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
// Make this QFileDialog a child of tempWidget from the ui.
dialogBox = new FileOpenBox( ui.tempWidget, NULL,
qfu( p_intf->p_libvlc->psz_homedir ), fileTypes );
+
dialogBox->setFileMode( QFileDialog::ExistingFiles );
dialogBox->setAcceptMode( QFileDialog::AcceptOpen );
char *psz_filepath = config_GetPsz( p_intf, "qt-filedialog-path" );
if( psz_filepath )
{
- dialogBox->setDirectory( QString::fromUtf8( psz_filepath ) );
+ dialogBox->setDirectory( qfu( psz_filepath ) );
delete psz_filepath;
}
/* Ugly hacks to get the good Widget */
//This lineEdit is the normal line in the fileDialog.
-#if QT_VERSION >= 0x040300
+#if QT43
lineFileEdit = findChildren<QLineEdit*>()[2];
#else
lineFileEdit = findChildren<QLineEdit*>()[3];
#endif
- lineFileEdit->hide();
+// lineFileEdit->hide();
/* Make a list of QLabel inside the QFileDialog to access the good ones */
QList<QLabel *> listLabel = findChildren<QLabel*>();
/* Change the text that was uncool in the usual box */
listLabel[5]->setText( qtr( "Filter:" ) );
+
+ QListView *fileListView = findChildren<QListView*>().first();
#if WIN32
- /* QFileDialog is quite buggy make it brerable on win32 by tweaking
+ /* QFileDialog is quite buggy make it brerable on win32 by tweaking
the followin */
- QListView *fileListView = findChildren<QListView*>().first();
fileListView->setLayoutMode(QListView::Batched);
fileListView->setViewMode(QListView::ListMode);
fileListView->setResizeMode(QListView::Adjust);
BUTTONACT( ui.subBrowseButton, browseFileSub() );
BUTTONACT( ui.subCheckBox, toggleSubtitleFrame());
+#if QT43
+ CONNECT( fileListView, clicked( QModelIndex ), this, updateMRL() );
+#else
CONNECT( ui.fileInput, editTextChanged( QString ), this, updateMRL() );
+#endif
CONNECT( ui.subInput, editTextChanged( QString ), this, updateMRL() );
CONNECT( ui.alignSubComboBox, currentIndexChanged( int ), this,
updateMRL() );
void FileOpenPanel::updateMRL()
{
+ msg_Dbg( p_intf, "I was here" );
QString mrl = ui.fileInput->currentText();
if( ui.subCheckBox->isChecked() ) {
}
-
/**************************************************************************
* Open Network streams and URL pages *
**************************************************************************/
QString addr = ui.addressText->text();
QString proto = ui.protocolCombo->itemData( idx ).toString();
- ui.timeShift->setEnabled( idx >= 4 );
- ui.ipv6->setEnabled( idx == 4 );
- ui.addressText->setEnabled( idx != 4 );
- ui.portSpin->setEnabled( idx >= 4 );
+ ui.timeShift->setEnabled( idx >= 5 );
+ ui.ipv6->setEnabled( idx == 5 );
+ ui.addressText->setEnabled( idx != 5 );
+ ui.portSpin->setEnabled( idx >= 5 );
/* If we already have a protocol in the address, replace it */
if( addr.contains( "://")) {
QString addr = ui.addressText->text();
int proto = ui.protocolCombo->currentIndex();
- if( addr.contains( "://") && proto != 4 ) {
+ if( addr.contains( "://") && proto != 5 ) {
mrl = addr;
} else {
switch( proto ) {
case 0:
- case 1:
mrl = "http://" + addr;
+ case 1:
+ mrl = "https://" + addr;
emit methodChanged("http-caching");
break;
case 3:
CuMRL( v4lFreq, valueChanged ( int ) );
CuMRL( v4lNormBox, currentIndexChanged ( int ) );
+ /*******
+ * JACK *
+ *******/
+ addModuleAndLayouts( JACK_DEVICE, jack, "JACK Audio Connection Kit" );
+
+ /* Jack Main panel */
+ /* Channels */
+ QLabel *jackChannelsLabel = new QLabel( qtr( "Channels :" ) );
+ jackDevLayout->addWidget( jackChannelsLabel, 1, 0 );
+
+ jackChannels = new QSpinBox;
+ setSpinBoxFreq( jackChannels );
+ jackChannels->setMaximum(255);
+ jackChannels->setValue(2);
+ jackChannels->setAlignment( Qt::AlignRight );
+ jackDevLayout->addWidget( jackChannels, 1, 1 );
+
+ /* Jack Props panel */
+
+ /* Selected ports */
+ QLabel *jackPortsLabel = new QLabel( qtr( "Selected ports :" ) );
+ jackPropLayout->addWidget( jackPortsLabel, 0 , 0 );
+
+ jackPortsSelected = new QLineEdit( qtr( ".*") );
+ jackPortsSelected->setAlignment( Qt::AlignRight );
+ jackPropLayout->addWidget( jackPortsSelected, 0, 1 );
+
+ /* Caching */
+ QLabel *jackCachingLabel = new QLabel( qtr( "Input caching :" ) );
+ jackPropLayout->addWidget( jackCachingLabel, 1 , 0 );
+ jackCaching = new QSpinBox;
+ setSpinBoxFreq( jackCaching );
+ jackCaching->setSuffix( " ms" );
+ jackCaching->setValue(1000);
+ jackCaching->setAlignment( Qt::AlignRight );
+ jackPropLayout->addWidget( jackCaching, 1 , 1 );
+
+ /* Pace */
+ jackPace = new QCheckBox(qtr( "Use VLC pace" ));
+ jackPropLayout->addWidget( jackPace, 2, 1 );
+
+ /* Auto Connect */
+ jackConnect = new QCheckBox( qtr( "Auto connnection" ));
+ jackPropLayout->addWidget( jackConnect, 3, 1 );
+
+ /* Jack CONNECTs */
+ CuMRL( jackChannels, valueChanged( int ) );
+ CuMRL( jackCaching, valueChanged( int ) );
+ CuMRL( jackPace, stateChanged( int ) );
+ CuMRL( jackConnect, stateChanged( int ) );
+ CuMRL( jackPortsSelected, textChanged( QString ) );
+
/************
* PVR *
************/
/**********
* Screen *
**********/
-
addModuleAndLayouts( SCREEN_DEVICE, screen, "Desktop" );
QLabel *screenLabel = new QLabel( "This option will open your own "
"desktop in order to save or stream it.");
screenLabel->setWordWrap( true );
screenDevLayout->addWidget( screenLabel, 0, 0 );
-
/* General connects */
connect( ui.deviceCombo, SIGNAL( activated( int ) ),
stackedDevLayout, SLOT( setCurrentIndex( int ) ) );
QString mrl = "";
int i_devicetype = ui.deviceCombo->itemData(
ui.deviceCombo->currentIndex() ).toInt();
- msg_Dbg( p_intf, "Capture Type: %i", i_devicetype );
switch( i_devicetype )
{
case V4L_DEVICE:
mrl += " :v4l-norm=" + QString("%1").arg( v4lNormBox->currentIndex() );
mrl += " :v4l-frequency=" + QString("%1").arg( v4lFreq->value() );
break;
+ case JACK_DEVICE:
+ mrl = "jack://";
+ mrl += "channels=" + QString("%1").arg( jackChannels->value() );
+ mrl += ":ports=" + jackPortsSelected->text();
+ mrl += " --jack-input-caching=" + QString("%1").arg( jackCaching->value() );
+ if ( jackPace->isChecked() )
+ {
+ mrl += " --jack-input-use-vlc-pace";
+ }
+ if ( jackConnect->isChecked() )
+ {
+ mrl += " --jack-input-auto-connect";
+ }
+ break;
case PVR_DEVICE:
mrl = "pvr://";
mrl += " :pvr-device=" + pvrDevice->text();
}
/**
- * Update the Buttons (show/hide) for the GUI as all device type don't
+ * Update the Buttons (show/hide) for the GUI as all device type don't
* use the same ui. elements.
**/
void CaptureOpenPanel::updateButtons()