]> git.sesse.net Git - kdenlive/blobdiff - src/rgbparade.cpp
RGB parade:
[kdenlive] / src / rgbparade.cpp
index 200a2abb8940c6a56d95b0ee5a3c8898755b281e..0ae2ab0e16dcb3eb3c7a6e02d81e59e3e79650d2 100644 (file)
@@ -19,17 +19,44 @@ RGBParade::RGBParade(Monitor *projMonitor, Monitor *clipMonitor, QWidget *parent
 {
     ui = new Ui::RGBParade_UI();
     ui->setupUi(this);
-    init();
+
+    ui->paintMode->addItem(i18n("RGB"), QVariant(RGBParadeGenerator::PaintMode_RGB));
+    ui->paintMode->addItem(i18n("RGB 2"), QVariant(RGBParadeGenerator::PaintMode_RGB2));
+
+    bool b = true;
+    b &= connect(ui->paintMode, SIGNAL(currentIndexChanged(int)), this, SLOT(forceUpdateScope()));
+    Q_ASSERT(b);
 
     m_rgbParadeGenerator = new RGBParadeGenerator();
+    init();
 }
 
 RGBParade::~RGBParade()
 {
+    writeConfig();
+
     delete ui;
     delete m_rgbParadeGenerator;
 }
 
+void RGBParade::readConfig()
+{
+    AbstractScopeWidget::readConfig();
+
+    KSharedConfigPtr config = KGlobal::config();
+    KConfigGroup scopeConfig(config, configName());
+    ui->paintMode->setCurrentIndex(scopeConfig.readEntry("paintmode", 0));
+}
+
+void RGBParade::writeConfig()
+{
+    KSharedConfigPtr config = KGlobal::config();
+    KConfigGroup scopeConfig(config, configName());
+    scopeConfig.writeEntry("paintmode", ui->paintMode->currentIndex());
+    scopeConfig.sync();
+}
+
+
 QString RGBParade::widgetName() const { return "RGB Parade"; }
 
 QRect RGBParade::scopeRect()
@@ -43,7 +70,9 @@ QImage RGBParade::renderScope(uint accelerationFactor, QImage qimage)
 {
     QTime start = QTime::currentTime();
     start.start();
-    QImage parade = m_rgbParadeGenerator->calculateRGBParade(m_scopeRect.size(), qimage,
+
+    int paintmode = ui->paintMode->itemData(ui->paintMode->currentIndex()).toInt();
+    QImage parade = m_rgbParadeGenerator->calculateRGBParade(m_scopeRect.size(), qimage, (RGBParadeGenerator::PaintMode) paintmode,
                                                     true, accelerationFactor);
     emit signalScopeRenderingFinished(start.elapsed(), accelerationFactor);
     return parade;