]> git.sesse.net Git - kdenlive/commitdiff
Show error when problem with DVD button
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 30 Jan 2010 16:10:46 +0000 (16:10 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 30 Jan 2010 16:10:46 +0000 (16:10 +0000)
svn path=/trunk/kdenlive/; revision=4256

src/dvdwizard.cpp
src/dvdwizardmenu.cpp
src/dvdwizardmenu.h
src/widgets/dvdwizardmenu_ui.ui

index 1d0213ceedff3ae1b8bbf03b2541fa292fa1410d..cbde5f1089bbeeb03934c51223304cd8dabbf66a 100644 (file)
@@ -214,7 +214,7 @@ void DvdWizard::generateDvd()
         if (!m_pageMenu->menuMovie()) {
             // create menu vob file
             QListWidgetItem *vobitem =  m_status.job_progress->item(1);
-           m_status.job_progress->setCurrentRow(1);
+            m_status.job_progress->setCurrentRow(1);
             vobitem->setIcon(KIcon("system-run"));
             qApp->processEvents();
 
@@ -262,7 +262,7 @@ void DvdWizard::generateDvd()
 
         // create xml spumux file
         QListWidgetItem *spuitem =  m_status.job_progress->item(2);
-       m_status.job_progress->setCurrentRow(2);
+        m_status.job_progress->setCurrentRow(2);
         spuitem->setIcon(KIcon("system-run"));
         qApp->processEvents();
         QDomDocument doc;
@@ -330,6 +330,7 @@ void DvdWizard::generateDvd()
                 spuitem->setIcon(KIcon("dialog-close"));
                 m_status.error_log->append(result);
                 m_status.error_box->setHidden(false);
+                m_status.button_start->setEnabled(true);
                 kDebug() << "/// RENDERING SPUMUX MENU crashed";
                 return;
             }
@@ -339,6 +340,7 @@ void DvdWizard::generateDvd()
             m_status.error_log->append("<a name=\"result\" /><br><strong>" + i18n("Menu job timed out"));
             m_status.error_log->scrollToAnchor("result");
             m_status.error_box->setHidden(false);
+            m_status.button_start->setEnabled(true);
             return;
         }
 
index 9c0c8a7fecbdae6b7b0a04b67b25204f807fe7fb..4a90c50aa4fa6c9e45bc2fe97721069926712d53 100644 (file)
@@ -20,7 +20,7 @@
 #include "dvdwizardmenu.h"
 
 #include <KDebug>
-
+#include <KColorScheme>
 
 DvdWizardMenu::DvdWizardMenu(const QString &profile, QWidget *parent) :
         QWizardPage(parent),
@@ -31,7 +31,7 @@ DvdWizardMenu::DvdWizardMenu(const QString &profile, QWidget *parent) :
     m_view.play_text->setText(i18n("Play"));
     m_scene = new DvdScene(this);
     m_view.menu_preview->setScene(m_scene);
-
+    m_view.menu_preview->setMouseTracking(true);
     connect(m_view.create_menu, SIGNAL(toggled(bool)), m_view.menu_box, SLOT(setEnabled(bool)));
     connect(m_view.create_menu, SIGNAL(toggled(bool)), this, SIGNAL(completeChanged()));
 
@@ -83,7 +83,6 @@ DvdWizardMenu::DvdWizardMenu(const QString &profile, QWidget *parent) :
     button->setFont(font);
     button->setDefaultTextColor(m_view.text_color->color());
     button->setZValue(4);
-    button->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
     QRectF r = button->sceneBoundingRect();
     m_scene->addItem(button);
     button->setPos((m_width - r.width()) / 2, (m_height - r.height()) / 2);
@@ -111,6 +110,13 @@ DvdWizardMenu::DvdWizardMenu(const QString &profile, QWidget *parent) :
     connect(m_scene, SIGNAL(selectionChanged()), this, SLOT(buttonChanged()));
     connect(m_scene, SIGNAL(changed(const QList<QRectF> &)), this, SIGNAL(completeChanged()));
 
+    // red background for error message
+    KColorScheme scheme(palette().currentColorGroup(), KColorScheme::Window);
+    QPalette p = m_view.error_message->palette();
+    p.setColor(QPalette::Background, scheme.background(KColorScheme::NegativeBackground).color());
+    m_view.error_message->setAutoFillBackground(true);
+    m_view.error_message->setPalette(p);
+
     m_view.menu_box->setEnabled(false);
 
 }
@@ -127,6 +133,7 @@ DvdWizardMenu::~DvdWizardMenu()
 
 bool DvdWizardMenu::isComplete() const
 {
+    m_view.error_message->setHidden(true);
     if (!m_view.create_menu->isChecked()) return true;
     QList <int> targets;
     QList<QGraphicsItem *> list = m_scene->items();
@@ -139,7 +146,11 @@ bool DvdWizardMenu::isComplete() const
             QList<QGraphicsItem *> collisions = button->collidingItems();
             if (!collisions.isEmpty()) {
                 for (int j = 0; j < collisions.count(); j++) {
-                    if (collisions.at(j)->type() == button->type()) return false;
+                    if (collisions.at(j)->type() == button->type()) {
+                        m_view.error_message->setText(i18n("Buttons overlapping"));
+                        m_view.error_message->setHidden(false);
+                        return false;
+                    }
                 }
             }
             targets.append(button->target());
@@ -147,12 +158,18 @@ bool DvdWizardMenu::isComplete() const
     }
     if (buttonCount == 0) {
         // We need at least one button
+        m_view.error_message->setText(i18n("No button in menu"));
+        m_view.error_message->setHidden(false);
         return false;
     }
 
     if (!m_view.background_image->isHidden()) {
         // Make sure user selected a valid image / video file
-        if (!QFile::exists(m_view.background_image->url().path())) return false;
+        if (!QFile::exists(m_view.background_image->url().path())) {
+            m_view.error_message->setText(i18n("Missing background image"));
+            m_view.error_message->setHidden(false);
+            return false;
+        }
     }
 
     // check that we have a "Play all" entry
@@ -160,7 +177,11 @@ bool DvdWizardMenu::isComplete() const
     // ... or that each video file has a button
     for (int i = m_view.target_list->count() - 1; i > 0; i--) {
         // If there is a vob file entry and it has no button assigned, don't allow to go further
-        if (m_view.target_list->itemIcon(i).isNull() == false && !targets.contains(i)) return false;
+        if (m_view.target_list->itemIcon(i).isNull() == false && !targets.contains(i)) {
+            m_view.error_message->setText(i18n("No menu entry for %1", m_view.target_list->itemText(i)));
+            m_view.error_message->setHidden(false);
+            return false;
+        }
     }
     return true;
 }
@@ -232,7 +253,6 @@ void DvdWizardMenu::addButton()
     button->setFont(font);
     button->setDefaultTextColor(m_view.text_color->color());
     button->setZValue(4);
-    button->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
     QRectF r = button->sceneBoundingRect();
     m_scene->addItem(button);
     button->setPos((m_width - r.width()) / 2, (m_height - r.height()) / 2);
@@ -612,7 +632,6 @@ void DvdWizardMenu::loadXml(QDomElement xml)
         button->setBackMenu(e.attribute("backtomenu").toInt());
         button->setDefaultTextColor(m_view.text_color->color());
         button->setZValue(4);
-        button->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
         QRectF r = button->sceneBoundingRect();
         m_scene->addItem(button);
         button->setPos(e.attribute("posx").toDouble(), e.attribute("posy").toDouble());
index 6374d2c3549f58a516a84c6c45af30392f28d196..4e5100fb1453b8099f1875e9aa1c47fa9aa272b5 100644 (file)
@@ -57,8 +57,12 @@ class DvdButton : public QGraphicsTextItem
 {
 
 public:
-    DvdButton(const QString & text): QGraphicsTextItem(text), m_target(0), m_command(QString("jump title 1")), m_backToMenu(false) {}
-    enum { Type = UserType + 1 };
+    DvdButton(const QString & text): QGraphicsTextItem(text), m_target(0), m_command(QString("jump title 1")), m_backToMenu(false) {
+        setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
+#if QT_VERSION >= 0x040600
+        setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
+#endif
+    }
     void setTarget(int t, QString c) {
         m_target = t;
         m_command = c;
@@ -74,7 +78,7 @@ public:
     }
     int type() const {
         // Enable the use of qgraphicsitem_cast with this item.
-        return Type;
+        return UserType + 1;
     }
     void setBackMenu(bool back) {
         m_backToMenu = back;
@@ -89,7 +93,6 @@ protected:
 
     virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) {
         if (change == ItemPositionChange && scene()) {
-
             QPointF newPos = value.toPointF();
             QRectF sceneShape = sceneBoundingRect();
             DvdScene *sc = static_cast < DvdScene * >(scene());
index 78ba60f134fb53ec58970c28569ed3cee0c5334b..a98c48a9348bbb67997542770087428609334f9f 100644 (file)
      <property name="title">
       <string/>
      </property>
-     <layout class="QGridLayout" name="gridLayout_3">
-      <item row="1" column="0">
-       <layout class="QGridLayout" name="gridLayout">
-        <item row="0" column="0">
-         <widget class="QToolButton" name="add_button">
-          <property name="text">
-           <string>A</string>
-          </property>
-          <property name="popupMode">
-           <enum>QToolButton::InstantPopup</enum>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QToolButton" name="delete_button">
-          <property name="text">
-           <string>D</string>
-          </property>
-          <property name="popupMode">
-           <enum>QToolButton::InstantPopup</enum>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="0">
-         <spacer name="verticalSpacer">
-          <property name="orientation">
-           <enum>Qt::Vertical</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>20</width>
-            <height>40</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item row="0" column="1" rowspan="5">
-         <widget class="QGraphicsView" name="menu_preview">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QToolButton" name="zoom_button">
-          <property name="text">
-           <string>...</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QToolButton" name="unzoom_button">
-          <property name="text">
-           <string>...</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item row="0" column="0">
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="0" column="0" colspan="2">
        <widget class="QTabWidget" name="tabWidget">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
         </widget>
        </widget>
       </item>
+      <item row="1" column="0">
+       <widget class="QToolButton" name="add_button">
+        <property name="text">
+         <string>A</string>
+        </property>
+        <property name="popupMode">
+         <enum>QToolButton::InstantPopup</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" rowspan="5">
+       <widget class="QGraphicsView" name="menu_preview">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QToolButton" name="delete_button">
+        <property name="text">
+         <string>D</string>
+        </property>
+        <property name="popupMode">
+         <enum>QToolButton::InstantPopup</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QToolButton" name="zoom_button">
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="0">
+       <widget class="QToolButton" name="unzoom_button">
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="0">
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>135</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="6" column="0" colspan="2">
+       <widget class="QLabel" name="error_message"/>
+      </item>
      </layout>
     </widget>
    </item>