#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,
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 )
{
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 );
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
class SpeedControlWidget;
class QMenu;
class QSize;
+struct dialog_fatal_t;
enum {
CONTROLS_VISIBLE = 0x1,
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 );
void askUpdate();
void minimalViewToggled( bool );
void fullscreenInterfaceToggled( bool );
+ void fatalDialog( const struct dialog_fatal_t * );
};
#endif