#include <KMessageWidget>
#endif
+#include "dvdwizardvob.h"
#include "ui_dvdwizardmenu_ui.h"
class DvdScene : public QGraphicsScene
{
-
+ Q_OBJECT
public:
DvdScene(QObject * parent = 0): QGraphicsScene(parent) {
m_width = 0; m_height = 0;
private:
int m_width;
int m_height;
+
+protected:
+ void mouseReleaseEvent( QGraphicsSceneMouseEvent * mouseEvent ) {
+ QGraphicsScene::mouseReleaseEvent(mouseEvent);
+ emit sceneChanged();
+ }
+signals:
+ void sceneChanged();
+};
+
+class DvdButtonUnderline : public QGraphicsRectItem
+{
+
+public:
+ DvdButtonUnderline( const QRectF & rect, QGraphicsItem * parent = 0 ) : QGraphicsRectItem(rect, parent) {}
+
+ int type() const {
+ // Enable the use of qgraphicsitem_cast with this item.
+ return UserType + 2;
+ }
};
class DvdButton : public QGraphicsTextItem
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
#endif
}
- void setTarget(int t, QString c) {
+ void setTarget(int t, const QString &c) {
m_target = t;
m_command = c;
}
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) {
if (change == ItemPositionChange && scene()) {
- QPointF newPos = value.toPointF();
+ QPoint newPos = value.toPoint();
QRectF sceneShape = sceneBoundingRect();
DvdScene *sc = static_cast < DvdScene * >(scene());
- newPos.setX(qMax(newPos.x(), (qreal)0));
- newPos.setY(qMax(newPos.y(), (qreal)0));
- if (newPos.x() + sceneShape.width() > sc->width()) newPos.setX(sc->width() - sceneShape.width());
- if (newPos.y() + sceneShape.height() > sc->height()) newPos.setY(sc->height() - sceneShape.height());
+ newPos.setX(qMax(newPos.x(), 0));
+ newPos.setY(qMax(newPos.y(), 0));
+ if (newPos.x() + sceneShape.width() > sc->width())
+ newPos.setX(sc->width() - sceneShape.width());
+ if (newPos.y() + sceneShape.height() > sc->height())
+ newPos.setY(sc->height() - sceneShape.height());
sceneShape.translate(newPos - pos());
QList<QGraphicsItem*> list = scene()->items(sceneShape, Qt::IntersectsItemShape);
list.removeAll(this);
if (!list.isEmpty()) {
- for (int i = 0; i < list.count(); i++) {
- if (list.at(i)->type() == Type) return pos();
+ for (int i = 0; i < list.count(); ++i) {
+ if (list.at(i)->type() == Type)
+ return pos();
}
}
return newPos;
Q_OBJECT
public:
- explicit DvdWizardMenu(const QString &profile, QWidget * parent = 0);
+ explicit DvdWizardMenu(DVDFORMAT format, QWidget * parent = 0);
virtual ~DvdWizardMenu();
virtual bool isComplete() const;
bool createMenu() const;
- void createBackgroundImage(const QString &overlayMenu, const QString &img1);
- void createButtonImages(const QString &img1, const QString &img2, const QString &img3);
- void setTargets(QStringList list, QStringList targetlist);
- QMap <QString, QRect> buttonsInfo();
+ void createBackgroundImage(const QString &img1, bool letterbox);
+ void createButtonImages(const QString &selected_image, const QString &highlighted_image, bool letterbox);
+ void setTargets(const QStringList &list, const QStringList &targetlist);
+ QMap <QString, QRect> buttonsInfo(bool letterbox = false);
bool loopMovie() const;
bool menuMovie() const;
QString menuMoviePath() const;
- bool isPalMenu() const;
- void changeProfile(bool isPal);
+ int menuMovieLength() const;
+ void changeProfile(DVDFORMAT format);
QDomElement toXml() const;
- void loadXml(QDomElement xml);
+ void loadXml(DVDFORMAT format, const QDomElement &xml);
void prepareUnderLines();
void resetUnderLines();
private:
Ui::DvdWizardMenu_UI m_view;
- bool m_isPal;
+ DVDFORMAT m_format;
DvdScene *m_scene;
QGraphicsPixmapItem *m_background;
QGraphicsRectItem *m_color;
int m_width;
int m_height;
QSize m_finalSize;
+ int m_movieLength;
#if KDE_IS_VERSION(4,7,0)
KMessageWidget *m_menuMessage;
#endif
void setButtonTarget(int ix);
void deleteButton();
void updateColor();
- void updateColor(QColor c);
+ void updateColor(const QColor &c);
void updateUnderlineColor(QColor c);
void setBackToMenu(bool backToMenu);
void slotZoom();