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 @@
#include <QLabel>
#include <QGroupBox>
#include <QPushButton>
#include <QMessageBox>
#include <assert.h>
#include <vlc_keys.h> /* Wheel event */
#include <vlc_vout.h>
#include <vlc_dialog.h>
#include "dialogs/errors.hpp"
/* Callback prototypes */
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,
vlc_value_t old_val, vlc_value_t new_val, void *param );
static int InteractCallback( vlc_object_t *, const char *, vlc_value_t,
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 )
{
......@@ -206,6 +206,9 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
var_AddCallback( p_intf, "interaction", InteractCallback, this );
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_AddCallback( p_intf, "dialog-fatal", DialogCallback, this );
dialog_Register( p_intf );
......@@ -1232,21 +1235,29 @@ static int InteractCallback( vlc_object_t *p_this,
return VLC_SUCCESS;
}
static int DialogCallback( vlc_object_t *p_this,
const char *type, vlc_value_t previous,
vlc_value_t value, void *data )
int MainInterface::DialogCallback( vlc_object_t *p_this,
const char *type, vlc_value_t previous,
vlc_value_t value, void *data )
{
MainInterface *self = (MainInterface *)data;
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;
emit self->fatalDialog (dialog);
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.
* We don't show the menu directly here because we don't want the
......
......@@ -49,6 +49,7 @@ class FullscreenControllerWidget;
class SpeedControlWidget;
class QMenu;
class QSize;
struct dialog_fatal_t;
enum {
CONTROLS_VISIBLE = 0x1,
......@@ -150,6 +151,11 @@ private:
virtual void wheelEvent( QWheelEvent * );
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:
void undockPlaylist();
void dockPlaylist( pl_dock_e i_pos = PL_BOTTOM );
......@@ -188,6 +194,7 @@ signals:
void askUpdate();
void minimalViewToggled( bool );
void fullscreenInterfaceToggled( bool );
void fatalDialog( const struct dialog_fatal_t * );
};
#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