Commit f6a424fe authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Qt4: dialog_Fatal back-end (both modal and non-modal)

(Feel free to move/cleanup)
parent b47ec401
...@@ -56,12 +56,14 @@ ...@@ -56,12 +56,14 @@
#include <QLabel> #include <QLabel>
#include <QGroupBox> #include <QGroupBox>
#include <QPushButton> #include <QPushButton>
#include <QMessageBox>
#include <assert.h> #include <assert.h>
#include <vlc_keys.h> /* Wheel event */ #include <vlc_keys.h> /* Wheel event */
#include <vlc_vout.h> #include <vlc_vout.h>
#include <vlc_dialog.h> #include <vlc_dialog.h>
#include "dialogs/errors.hpp"
/* Callback prototypes */ /* Callback prototypes */
static int PopupMenuCB( vlc_object_t *p_this, const char *psz_variable, static int PopupMenuCB( vlc_object_t *p_this, const char *psz_variable,
...@@ -70,8 +72,6 @@ static int IntfShowCB( vlc_object_t *p_this, const char *psz_variable, ...@@ -70,8 +72,6 @@ static int IntfShowCB( vlc_object_t *p_this, const char *psz_variable,
vlc_value_t old_val, vlc_value_t new_val, void *param ); vlc_value_t old_val, vlc_value_t new_val, void *param );
static int InteractCallback( vlc_object_t *, const char *, vlc_value_t, static int InteractCallback( vlc_object_t *, const char *, vlc_value_t,
vlc_value_t, void *); vlc_value_t, void *);
static int DialogCallback( vlc_object_t *, const char *,
vlc_value_t, vlc_value_t, void *);
MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf ) MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
{ {
...@@ -206,6 +206,9 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf ) ...@@ -206,6 +206,9 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
var_AddCallback( p_intf, "interaction", InteractCallback, this ); var_AddCallback( p_intf, "interaction", InteractCallback, this );
interaction_Register( p_intf ); interaction_Register( p_intf );
connect( this, SIGNAL(fatalDialog( const struct dialog_fatal_t * )),
this, SLOT(displayFatalDialog( const struct dialog_fatal_t * )),
Qt::BlockingQueuedConnection );
var_Create( p_intf, "dialog-fatal", VLC_VAR_ADDRESS ); var_Create( p_intf, "dialog-fatal", VLC_VAR_ADDRESS );
var_AddCallback( p_intf, "dialog-fatal", DialogCallback, this ); var_AddCallback( p_intf, "dialog-fatal", DialogCallback, this );
dialog_Register( p_intf ); dialog_Register( p_intf );
...@@ -1232,21 +1235,29 @@ static int InteractCallback( vlc_object_t *p_this, ...@@ -1232,21 +1235,29 @@ static int InteractCallback( vlc_object_t *p_this,
return VLC_SUCCESS; return VLC_SUCCESS;
} }
static int DialogCallback( vlc_object_t *p_this, int MainInterface::DialogCallback( vlc_object_t *p_this,
const char *type, vlc_value_t previous, const char *type, vlc_value_t previous,
vlc_value_t value, void *data ) vlc_value_t value, void *data )
{ {
MainInterface *self = (MainInterface *)data; MainInterface *self = (MainInterface *)data;
const dialog_fatal_t *dialog = (const dialog_fatal_t *)value.p_address; const dialog_fatal_t *dialog = (const dialog_fatal_t *)value.p_address;
if (!strcmp (type, "dialog-fatal"))
printf ("ERROR: %s\n %s\n", dialog->title, dialog->message);
/* FIXME!!! */
(void) previous; (void) previous;
emit self->fatalDialog (dialog);
return VLC_SUCCESS; return VLC_SUCCESS;
} }
void MainInterface::displayFatalDialog (const dialog_fatal_t *dialog)
{
if (dialog->modal)
QMessageBox::critical (NULL, qfu(dialog->title), qfu(dialog->message),
QMessageBox::Ok);
else
if (config_GetInt (p_intf, "qt-error-dialogs"))
ErrorsDialog::getInstance (p_intf)->addError(qfu(dialog->title),
qfu(dialog->message));
}
/***************************************************************************** /*****************************************************************************
* PopupMenuCB: callback triggered by the intf-popupmenu playlist variable. * PopupMenuCB: callback triggered by the intf-popupmenu playlist variable.
* We don't show the menu directly here because we don't want the * We don't show the menu directly here because we don't want the
......
...@@ -49,6 +49,7 @@ class FullscreenControllerWidget; ...@@ -49,6 +49,7 @@ class FullscreenControllerWidget;
class SpeedControlWidget; class SpeedControlWidget;
class QMenu; class QMenu;
class QSize; class QSize;
struct dialog_fatal_t;
enum { enum {
CONTROLS_VISIBLE = 0x1, CONTROLS_VISIBLE = 0x1,
...@@ -150,6 +151,11 @@ private: ...@@ -150,6 +151,11 @@ private:
virtual void wheelEvent( QWheelEvent * ); virtual void wheelEvent( QWheelEvent * );
virtual void resizeEvent( QResizeEvent * event ); virtual void resizeEvent( QResizeEvent * event );
static int DialogCallback( vlc_object_t *, const char *, vlc_value_t,
vlc_value_t, void * );
private slots:
void displayFatalDialog( const struct dialog_fatal_t * );
public slots: public slots:
void undockPlaylist(); void undockPlaylist();
void dockPlaylist( pl_dock_e i_pos = PL_BOTTOM ); void dockPlaylist( pl_dock_e i_pos = PL_BOTTOM );
...@@ -188,6 +194,7 @@ signals: ...@@ -188,6 +194,7 @@ signals:
void askUpdate(); void askUpdate();
void minimalViewToggled( bool ); void minimalViewToggled( bool );
void fullscreenInterfaceToggled( bool ); void fullscreenInterfaceToggled( bool );
void fatalDialog( const struct dialog_fatal_t * );
}; };
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment