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
)
25 bool Magic::eventFilter(QObject
*o
, QEvent
*e
)
27 if( e
->type() == QEvent::Show
) {
28 qm
->fadeInWidget( m
);
31 return QObject::eventFilter(o
, e
);
34 void QHandBrakeWizard::fadeInWidget(QWidget
*w
)
36 if( faderWidget
) { faderWidget
->close(); }
37 faderWidget
= new FaderWidget( w
);
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
);