X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdvdwizardvob.h;h=1208ff39b9f76e5dda68d05e14cf61514a7c3a2f;hb=9ad93a6f43ea95f4f43acd9bdd226ec2253621e1;hp=58698cf0a2018286a5d4b14ecbe1197eed520c8c;hpb=2005170ed9eb93b8ebe05cb269bea77c98c4ec13;p=kdenlive diff --git a/src/dvdwizardvob.h b/src/dvdwizardvob.h index 58698cf0..1208ff39 100644 --- a/src/dvdwizardvob.h +++ b/src/dvdwizardvob.h @@ -24,28 +24,72 @@ #include "ui_dvdwizardvob_ui.h" #include - -#if KDE_IS_VERSION(4,2,0) #include -#endif - #include +#if KDE_IS_VERSION(4,7,0) +#include +#endif + #include +#include +#include + +enum DVDFORMAT { PAL, PAL_WIDE, NTSC, NTSC_WIDE }; + +class DvdViewDelegate : public QStyledItemDelegate +{ + Q_OBJECT +public: + DvdViewDelegate(QWidget *parent) : QStyledItemDelegate(parent) {} + + void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const { + if (index.column() == 0) { + painter->save(); + QStyleOptionViewItemV4 opt(option); + QRect r1 = option.rect; + QStyle *style = opt.widget ? opt.widget->style() : QApplication::style(); + const int textMargin = style->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; + style->drawPrimitive(QStyle::PE_PanelItemViewItem, &opt, painter, opt.widget); + + QPixmap pixmap = qVariantValue(index.data(Qt::DecorationRole)); + QPoint pixmapPoint(r1.left() + textMargin, r1.top() + (r1.height() - pixmap.height()) / 2); + painter->drawPixmap(pixmapPoint, pixmap); + int decoWidth = pixmap.width() + 2 * textMargin; + + QFont font = painter->font(); + font.setBold(true); + painter->setFont(font); + int mid = (int)((r1.height() / 2)); + r1.adjust(decoWidth, 0, 0, -mid); + QRect r2 = option.rect; + r2.adjust(decoWidth, mid, 0, 0); + painter->drawText(r1, Qt::AlignLeft | Qt::AlignBottom, KUrl(index.data().toString()).fileName()); + font.setBold(false); + painter->setFont(font); + QString subText = index.data(Qt::UserRole).toString(); + QRectF bounding; + painter->drawText(r2, Qt::AlignLeft | Qt::AlignVCenter , subText, &bounding); + painter->restore(); + } else QStyledItemDelegate::paint(painter, option, index); + } +}; + class DvdWizardVob : public QWizardPage { Q_OBJECT public: - DvdWizardVob(const QString &profile, QWidget * parent = 0); + explicit DvdWizardVob(QWidget * parent = 0); virtual ~DvdWizardVob(); virtual bool isComplete() const; QStringList selectedUrls() const; void setUrl(const QString &url); QString introMovie() const; - bool isPal() const; - bool isWide() const; + DVDFORMAT dvdFormat() const; + const QString dvdProfile() const; int duration(int ix) const; QStringList durations() const; QStringList chapters() const; @@ -53,17 +97,19 @@ public: void clear(); void updateChapters(QMap chaptersdata); void setIntroMovie(const QString& path); + static QString getDvdProfile(DVDFORMAT format); private: Ui::DvdWizardVob_UI m_view; QString m_errorMessage; - -#if KDE_IS_VERSION(4,2,0) KCapacityBar *m_capacityBar; +#if KDE_IS_VERSION(4,7,0) + KMessageWidget *m_warnMessage; #endif public slots: void slotAddVobFile(KUrl url = KUrl(), const QString &chapters = QString()); + void slotCheckProfiles(); private slots: void slotCheckVobList();