OpenDialog *OpenDialog::instance = NULL;
OpenDialog* OpenDialog::getInstance( QWidget *parent, intf_thread_t *p_intf,
- int _action_flag, bool modal )
+ bool b_rawInstance, int _action_flag, bool b_selectMode )
{
/* Creation */
if( !instance )
- instance = new OpenDialog( parent, p_intf, modal, _action_flag );
- else
+ instance = new OpenDialog( parent, p_intf, b_selectMode, _action_flag );
+ else if( !b_rawInstance )
{
/* Request the instance but change small details:
- Button menu
- Modality on top of the parent dialog */
+ if( b_selectMode )
+ {
+ instance->setWindowModality( Qt::WindowModal );
+ _action_flag = SELECT; /* This should be useless, but we never know
+ if the call is correct */
+ }
instance->i_action_flag = _action_flag;
instance->setMenuAction();
- if( modal ) instance->setWindowModality( Qt::WindowModal );
}
return instance;
}
OpenDialog::OpenDialog( QWidget *parent,
intf_thread_t *_p_intf,
- bool modal,
+ bool b_selectMode,
int _action_flag ) : QVLCDialog( parent, _p_intf )
{
i_action_flag = _action_flag;
- if( modal ) /* Select mode */
+ if( b_selectMode ) /* Select mode */
{
setWindowModality( Qt::WindowModal );
i_action_flag = SELECT;
CONNECT( ui.slaveText, textChanged( QString ), this, updateMRL() );
CONNECT( ui.cacheSpinBox, valueChanged( int ), this, updateMRL() );
CONNECT( ui.startTimeSpinBox, valueChanged( int ), this, updateMRL() );
- BUTTONACT( ui.advancedCheckBox , toggleAdvancedPanel() );
+ BUTTONACT( ui.advancedCheckBox, toggleAdvancedPanel() );
/* Buttons action */
BUTTONACT( playButton, selectSlots() );
playButton->setText( qtr( "&Play" ) );
}
playButton->show();
- playButton->setDefault( true );
selectButton->hide();
+ playButton->setDefault( true );
}
}
-void OpenDialog::showTab( int i_tab=0 )
+void OpenDialog::showTab( int i_tab )
{
ui.Tab->setCurrentIndex( i_tab );
show();
mainMRL.clear();
/* If in Select Mode, reject instead of hiding */
- if( windowModality() != Qt::NonModal ) reject();
+ if( i_action_flag == SELECT ) reject();
else hide();
}
/* If EnterKey is pressed */
void OpenDialog::close()
{
- if( windowModality() != Qt::NonModal )
+ /* If in Select Mode, accept instead of selecting a Slot */
+ if( i_action_flag == SELECT )
accept();
else
selectSlots();
toggleVisible();
mrl = ui.advancedLineInput->text();
- if( windowModality() == Qt::NonModal )
+ if( i_action_flag != SELECT )
{
QStringList tempMRL = SeparateEntries( mrl );
for( size_t i = 0; i < tempMRL.size(); i++ )
#include "ui/open.h"
#include "components/open_panels.hpp"
+enum {
+ OPEN_FILE_TAB,
+ OPEN_DISC_TAB,
+ OPEN_NETWORK_TAB,
+ OPEN_CAPTURE_TAB,
+ OPEN_TAB_MAX
+};
+
+enum {
+ OPEN_AND_PLAY,
+ OPEN_AND_ENQUEUE,
+ OPEN_AND_STREAM,
+ OPEN_AND_SAVE,
+ SELECT /* Special mode to select a MRL (for VLM or similar */
+};
+
+
class QString;
class QTabWidget;
Q_OBJECT;
public:
static OpenDialog * getInstance( QWidget *parent, intf_thread_t *p_intf,
- int _action_flag = 0, bool modal = false );
+ bool b_rawInstance = false, int _action_flag = 0, bool b_selectMode = false );
static void killInstance()
{
}
virtual ~OpenDialog();
- void showTab( int );
+ void showTab( int = OPEN_FILE_TAB );
QString getMRL(){ return mrl; }
public slots:
void transcode();
private:
- OpenDialog( QWidget *parent, intf_thread_t *, bool modal,
+ OpenDialog( QWidget *parent, intf_thread_t *, bool b_selectMode,
int _action_flag = 0 );
static OpenDialog *instance;
/* Same as the open one, but force the enqueue */
void DialogsProvider::PLAppendDialog()
{
- OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf, OPEN_AND_ENQUEUE)
+ OpenDialog::getInstance( p_intf->p_sys->p_mi, p_intf, false, OPEN_AND_ENQUEUE)
->showTab( OPEN_FILE_TAB );
}
void DialogsProvider::openThenStreamingDialogs()
{
- OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf, OPEN_AND_STREAM )
- ->showTab( 0 );
+ OpenDialog::getInstance( p_intf->p_sys->p_mi, p_intf, false, OPEN_AND_STREAM )
+ ->showTab( OPEN_FILE_TAB );
}
void DialogsProvider::openThenTranscodingDialogs()
{
- OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf, OPEN_AND_SAVE )
- ->showTab( 0 );
+ OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf, false, OPEN_AND_SAVE )
+ ->showTab( OPEN_FILE_TAB );
}
/****************************************************************************