]> git.sesse.net Git - kdenlive/commitdiff
Adjust plugin to show only when used producer is present, hack around resulting count...
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 11 Apr 2009 17:28:56 +0000 (17:28 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 11 Apr 2009 17:28:56 +0000 (17:28 +0000)
svn path=/trunk/kdenlive/; revision=3286

plugins/sampleplugin/countdown_ui.ui
plugins/sampleplugin/sampleplugin.cpp
plugins/sampleplugin/sampleplugin.h

index ce360549579890b1d89f87507bd1b87f00d087f1..d536ea3b58fb5619976049b2018dab1b83049ff6 100644 (file)
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>288</width>
-    <height>98</height>
+    <width>384</width>
+    <height>139</height>
    </rect>
   </property>
   <property name="windowTitle" >
      </property>
     </widget>
    </item>
-   <item row="0" column="2" >
+   <item row="0" column="1" >
     <widget class="KUrlRequester" name="path" />
    </item>
    <item row="1" column="0" >
-    <widget class="QLabel" name="label_2" >
+    <widget class="QLabel" name="duration_label" >
      <property name="text" >
       <string>Duration (seconds)</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="0" colspan="3" >
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="orientation" >
-      <enum>Qt::Horizontal</enum>
+   <item row="1" column="1" >
+    <widget class="KIntSpinBox" name="duration" >
+     <property name="maximum" >
+      <number>10000</number>
      </property>
-     <property name="standardButtons" >
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     <property name="value" >
+      <number>10</number>
      </property>
     </widget>
    </item>
    <item row="2" column="0" >
+    <widget class="QLabel" name="font_label" >
+     <property name="text" >
+      <string>Font</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="1" >
+    <widget class="KIntSpinBox" name="font" >
+     <property name="maximum" >
+      <number>10000</number>
+     </property>
+     <property name="value" >
+      <number>500</number>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0" >
     <spacer name="verticalSpacer" >
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
-   <item row="1" column="2" >
-    <widget class="KIntSpinBox" name="duration" >
-     <property name="maximum" >
-      <number>10000</number>
+   <item row="4" column="0" colspan="2" >
+    <widget class="QDialogButtonBox" name="buttonBox" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
      </property>
-     <property name="value" >
-      <number>10</number>
+     <property name="standardButtons" >
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
      </property>
     </widget>
    </item>
index bdec16e54396653f29f46c51f357cb01a13328c8..347658b657ad765bda29d044ee8a4d1a28e7d899 100644 (file)
 #include <QDomDocument>
 #include <QInputDialog>
 
-QStringList SamplePlugin::generators() const
+QStringList SamplePlugin::generators(const QStringList producers) const
 {
-    return QStringList() << i18n("Countdown") << i18n("Noise");
+    QStringList result;
+    if (producers.contains("pango")) result << i18n("Countdown");
+    if (producers.contains("noise")) result << i18n("Noise");
+    return result;
 }
 
 
-KUrl SamplePlugin::generatedClip(const QString &generator, const KUrl &projectFolder, const QStringList &/*lumaNames*/, const QStringList &/*lumaFiles*/, const double fps, const int /*width*/, const int /*height*/)
+KUrl SamplePlugin::generatedClip(const QString &generator, const KUrl &projectFolder, const QStringList &/*lumaNames*/, const QStringList &/*lumaFiles*/, const double fps, const int /*width*/, const int height)
 {
     QString prePath;
     if (generator == i18n("Noise")) {
@@ -49,10 +52,17 @@ KUrl SamplePlugin::generatedClip(const QString &generator, const KUrl &projectFo
         counter = QString::number(ct).rightJustified(5, '0', false);
     }
     QDialog d;
-    if (generator == i18n("Noise")) d.setWindowTitle(tr("Create Noise Clip"));
-    else d.setWindowTitle(tr("Create Countdown Clip"));
     Ui::CountDown_UI view;
     view.setupUi(&d);
+    if (generator == i18n("Noise")) {
+        d.setWindowTitle(tr("Create Noise Clip"));
+        view.font_label->setHidden(true);
+        view.font->setHidden(true);
+    } else {
+        d.setWindowTitle(tr("Create Countdown Clip"));
+        view.font->setValue(height);
+    }
+
     QString clipFile = prePath + counter + ".westley";
     view.path->setPath(clipFile);
     if (d.exec() == QDialog::Accepted) {
@@ -72,7 +82,11 @@ KUrl SamplePlugin::generatedClip(const QString &generator, const KUrl &projectFo
                 prod.setAttribute("mlt_service", "pango");
                 prod.setAttribute("in", "0");
                 prod.setAttribute("out", QString::number((int) fps));
-                prod.setAttribute("markup", QString::number(view.duration->value() - i));
+                prod.setAttribute("text", QString::number(view.duration->value() - i));
+                //FIXME: the font and pad values are approximate, the pango producer seems unable
+                // to produce a predictable frame size.
+                prod.setAttribute("font", QString::number(view.font->value()) + "px");
+                //prod.setAttribute("pad", 50);
                 playlist.appendChild(prod);
             }
         }
index 64289c3317632dabda05d46f9e2a34415c19224a..e7bc0acd005aebaf23872b79183d10b3ad752584 100644 (file)
@@ -34,7 +34,7 @@ class SamplePlugin : public QObject, public ClipGenerator
     Q_INTERFACES(ClipGenerator)
 
 public:
-    QStringList generators() const;
+    QStringList generators(const QStringList producers = QStringList()) const;
     KUrl generatedClip(const QString &generator, const KUrl &projectFolder, const QStringList &lumaNames, const QStringList &lumaFiles, const double fps, const int width, const int height);
 };