Much better B-frame muxing frame-reordering. This will preserve the sps/pps info...
[HandBrake.git] / qt4 / qhandbrakewizard.cpp
blobc6de00c956e4f0102c8d18ea9a88467d4ef7d2ee
1 #include <QtGui>
2 #include <QtDBus>
4 #include "qhandbrakewizard.h"
5 #include "qhandbrake.h"
6 #include "faderwidget.h"
7 #include "scanwidget.h"
8 #include "encodewidget.h"
11 #define HAL_SERVICE "org.freedesktop.Hal"
12 #define HAL_PATH_MANAGER "/org/freedesktop/Hal/Manager"
13 #define HAL_PATH_DEVICE "/org/freedesktop/Hal/Device"
14 #define HAL_OBJECT_MANAGER "org.freedesktop.Hal.Manager"
15 #define HAL_OBJECT_DEVICE "org.freedesktop.Hal.Device"
18 Magic::Magic(QWidget *w, QHandBrakeWizard *q, QObject *p)
19 : QObject(p)
21 m = w;
22 qm = q;
25 bool Magic::eventFilter(QObject *o, QEvent *e)
27 if( e->type() == QEvent::Show ) {
28 qm->fadeInWidget( m );
29 return false;
31 return QObject::eventFilter(o, e);
34 void QHandBrakeWizard::fadeInWidget(QWidget *w)
36 if( faderWidget ) { faderWidget->close(); }
37 faderWidget = new FaderWidget( w );
38 faderWidget->start();
41 QHandBrakeWizard::QHandBrakeWizard(QStackedWidget *parent)
42 : QStackedWidget(parent)
44 qhb = new QHandBrake(this);
46 scanWidget = new ScanWidget;
47 encodeWidget = new EncodeWidget;
49 scanWidget->setObjectName("scanWidget");
50 encodeWidget->setObjectName("encodeWidget");
52 scanWidget->installEventFilter(new Magic(scanWidget, this, this));
53 encodeWidget->installEventFilter(new Magic(encodeWidget, this, this));
55 addWidget(scanWidget);
57 connect(scanWidget, SIGNAL(scanDVD(const QString)), qhb, SLOT(startScan(const QString)));
58 connect(scanWidget, SIGNAL(scanningDone()), SLOT(activateEncodePage()));
59 connect(qhb, SIGNAL(scanProgress(int, int)), scanWidget, SLOT(setProgress(int, int)));
60 connect(encodeWidget, SIGNAL(convert()), qhb, SLOT(encode()));
62 if( QDBusConnection::systemBus().isConnected() )
64 QDBusConnection::systemBus().connect( HAL_SERVICE, HAL_PATH_MANAGER, HAL_OBJECT_MANAGER, "DeviceAdded", scanWidget, SLOT( updateVolumeList( QString ) ) );
65 QDBusConnection::systemBus().connect( HAL_SERVICE, HAL_PATH_MANAGER, HAL_OBJECT_MANAGER, "DeviceRemoved", scanWidget, SLOT( updateVolumeList( QString ) ) );
69 void QHandBrakeWizard::activateScanPage()
71 setCurrentWidget(scanWidget);
74 void QHandBrakeWizard::activateEncodePage()
76 addWidget(encodeWidget);
78 encodeWidget->setModel( qhb->titleListModel() );
80 setCurrentWidget(encodeWidget);