]> git.sesse.net Git - kdenlive/commitdiff
Load layouts can now be added as combobox in toolbar
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 12 Jan 2011 20:49:09 +0000 (20:49 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 12 Jan 2011 20:49:09 +0000 (20:49 +0000)
svn path=/trunk/kdenlive/; revision=5318

src/kdenliveui.rc
src/mainwindow.cpp
src/mainwindow.h

index b176f020015b0b9e72df98f33d534a3d99cb74e1..d173667c9987aa359e0c20d80103bdf7ad5865be 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<gui name="kdenlive" version="57">
+<gui name="kdenlive" version="59">
   <ToolBar name="extraToolBar" >
     <text>Extra Toolbar</text>
        <Action name="project_render" />
        <Action name="save_layout3" />
        <Action name="save_layout4" />
       </Menu>
-      <Menu name="layout_load" ><text>Load Layout</text>
-       <Action name="load_layout1" />
-       <Action name="load_layout2" />
-       <Action name="load_layout3" />
-       <Action name="load_layout4" />
-      </Menu>
+      <Action name="load_layouts" />
       <Separator />
       <Action name="show_titlebars" />
       <Action name="maximize_current" />
index 1cdb931bee6737290f710e15049ee29cf821eded..1512c718e8fb1e1b9e71910d48f96ecfdf433ad9 100644 (file)
@@ -381,14 +381,18 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString &
 
     // Prepare layout actions
     KActionCategory *layoutActions = new KActionCategory(i18n("Layouts"), actionCollection());
+    m_loadLayout = new KSelectAction(i18n("Load Layout"), actionCollection());
     for (int i = 1; i < 5; i++) {
-        KAction *load = new KAction(KIcon(), i18n("Load Layout %1").arg(i), this);
+        KAction *load = new KAction(KIcon(), i18n("Layout %1").arg(i), this);
         load->setData("_" + QString::number(i));
-        layoutActions->addAction("load_layout" + QString::number(i), load);
+        load->setCheckable(true);
+        m_loadLayout->addAction(load);
         KAction *save = new KAction(KIcon(), i18n("Save As Layout %1").arg(i), this);
         save->setData("_" + QString::number(i));
         layoutActions->addAction("save_layout" + QString::number(i), save);
     }
+    layoutActions->addAction("load_layouts", m_loadLayout);
+    connect(m_loadLayout, SIGNAL(triggered(QAction*)), this, SLOT(slotLoadLayout(QAction*)));
 
     KAction *action;
     // Stop motion actions. Beware of the order, we MUST use the same order in stopmotion/stopmotion.cpp
@@ -417,10 +421,6 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString &
     /*ScriptingPart* sp = new ScriptingPart(this, QStringList());
     guiFactory()->addClient(sp);*/
 
-
-    QMenu *loadLayout = (QMenu*)(factory()->container("layout_load", this));
-    if (loadLayout)
-        connect(loadLayout, SIGNAL(triggered(QAction*)), this, SLOT(slotLoadLayout(QAction*)));
     QMenu *saveLayout = (QMenu*)(factory()->container("layout_save_as", this));
     if (saveLayout)
         connect(saveLayout, SIGNAL(triggered(QAction*)), this, SLOT(slotSaveLayout(QAction*)));
@@ -1676,12 +1676,11 @@ void MainWindow::slotDisplayActionMessage(QAction *a)
 void MainWindow::loadLayouts()
 {
     QMenu *saveLayout = (QMenu*)(factory()->container("layout_save_as", this));
-    QMenu *loadLayout = (QMenu*)(factory()->container("layout_load", this));
-    if (loadLayout == NULL || saveLayout == NULL) return;
+    if (m_loadLayout == NULL || saveLayout == NULL) return;
     KSharedConfigPtr config = KGlobal::config();
     KConfigGroup layoutGroup(config, "Layouts");
     QStringList entries = layoutGroup.keyList();
-    QList<QAction *> loadActions = loadLayout->actions();
+    QList<QAction *> loadActions = m_loadLayout->actions();
     QList<QAction *> saveActions = saveLayout->actions();
     for (int i = 1; i < 5; i++) {
         // Rename the layouts actions
index a5f22924a0ef4645190e8f4f1537ad19e6f4105f..1e2e3ab59bd60bbf3b5603e36e5990329b567998 100644 (file)
@@ -255,6 +255,7 @@ private:
     KAction *m_loopZone;
     KAction *m_playZone;
     KAction *m_loopClip;
+    KSelectAction *m_loadLayout;
     StatusBarMessageLabel *m_messageLabel;
     QActionGroup *m_clipTypeGroup;
     KActionCollection *m_effectsActionCollection;