#include <QAction>
#include <QKeyEvent>
#include <QInputDialog>
+#include <QDesktopWidget>
#include <stdlib.h>
m_clipMonitor->setupMenu(static_cast<QMenu*>(factory()->container("monitor_go", this)), m_playZone, m_loopZone, static_cast<QMenu*>(factory()->container("marker_menu", this)));
m_projectList->setupGeneratorMenu(static_cast<QMenu*>(factory()->container("generators", this)), static_cast<QMenu*>(factory()->container("transcoders", this)));
- // build effects menus
QAction *action;
+ // build themes menus
+ QMenu *themesMenu = static_cast<QMenu*>(factory()->container("themes_menu", this));
+ action = new QAction(i18n("Default"), this);
+ themesMenu->addAction(action);
+ fprintf(stderr, "THEMES: %s\n", KStandardDirs::installPath("data").toUtf8().data());
+ KGlobal::dirs()->addResourceDir("themes", KStandardDirs::installPath("data") + QString("kdenlive/themes"));
+ QStringList themes = KGlobal::dirs()->findAllResources("themes", QString(), KStandardDirs::Recursive | KStandardDirs::NoDuplicates);
+ for (QStringList::const_iterator it = themes.constBegin(); it != themes.constEnd(); ++it) {
+ QFileInfo fi(*it);
+ action = new QAction(fi.fileName(), this);
+ action->setData(*it);
+ themesMenu->addAction(action);
+ }
+ connect(themesMenu, SIGNAL(triggered(QAction *)), this, SLOT(slotChangePalette(QAction*)));
+
+ // build effects menus
QMenu *videoEffectsMenu = static_cast<QMenu*>(factory()->container("video_effects_menu", this));
QStringList effectInfo;
toolbar->setMovable(false);
m_toolGroup = new QActionGroup(this);
statusBar()->setStyleSheet(QString("QStatusBar QLabel {font-size:%1pt;} QStatusBar::item { border: 0px; font-size:%1pt;padding:0px; }").arg(statusBar()->font().pointSize()));
- QString style1 = "QToolBar { border: 0px } QToolButton {background-color: rgba(230, 230, 230, 220); border-style: inset; border:1px solid #999999;border-radius: 3px;margin: 0px 3px;padding: 0px;} QToolButton:checked { background-color: rgba(224, 224, 0, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;}";
+ QString style1 = "QToolBar { border: 0px } QToolButton { border-style: inset; border:1px solid #999999;border-radius: 3px;margin: 0px 3px;padding: 0px;} QToolButton:checked { background-color: rgba(224, 224, 0, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;}";
m_buttonSelectTool = new KAction(KIcon("kdenlive-select-tool"), i18n("Selection tool"), this);
m_buttonSelectTool->setShortcut(i18nc("Selection tool shortcut", "s"));
m_transitionConfig->updateProjectFormat(m_activeDocument->mltProfile(), m_activeDocument->timecode(), m_activeDocument->tracksList());
}
+void MainWindow::slotChangePalette(QAction *action)
+{
+ // Load the theme file
+ QString theme = action->data().toString();
+
+ // Make palette for all widgets.
+ QPalette plt;
+ if (theme.isEmpty())
+ plt = QApplication::desktop()->palette();
+ else {
+ KConfig confFile(theme, KConfig::SimpleConfig);
+ plt = kapp->palette();
+ int h, s, v;
+ const QColor fg(confFile.entryMap().value("TextRegularColor"));
+ const QColor bg(confFile.entryMap().value("BaseColor"));
+
+ bg.getHsv(&h, &s, &v);
+ v += (v < 128) ? + 50 : -50;
+ v &= 255; //ensures 0 <= v < 256
+ const QColor highlight = QColor::fromHsv(h, s, v);
+
+ fg.getHsv(&h, &s, &v);
+ v += (v < 128) ? + 150 : -150;
+ v &= 255; //ensures 0 <= v < 256
+ const QColor alternate = QColor::fromHsv(h, s, v);
+
+ plt.setColor(QPalette::Active, QPalette::Base, bg);
+ plt.setColor(QPalette::Active, QPalette::AlternateBase, alternate);
+ plt.setColor(QPalette::Active, QPalette::Background, bg.dark(115));
+ plt.setColor(QPalette::Active, QPalette::Foreground, fg);
+ plt.setColor(QPalette::Active, QPalette::Highlight, highlight);
+ plt.setColor(QPalette::Active, QPalette::HighlightedText, confFile.entryMap().value("TextSelectedColor"));
+ plt.setColor(QPalette::Active, QPalette::Dark, Qt::darkGray);
+ plt.setColor(QPalette::Active, QPalette::Button, bg);
+ plt.setColor(QPalette::Active, QPalette::ButtonText, fg);
+ plt.setColor(QPalette::Active, QPalette::Text, fg);
+ plt.setColor(QPalette::Active, QPalette::Link, confFile.entryMap().value("TextSpecialRegularColor"));
+ plt.setColor(QPalette::Active, QPalette::LinkVisited, confFile.entryMap().value("TextSpecialSelectedColor"));
+
+ plt.setColor(QPalette::Inactive, QPalette::Base, bg);
+ plt.setColor(QPalette::Inactive, QPalette::AlternateBase, alternate);
+ plt.setColor(QPalette::Inactive, QPalette::Background, bg.dark(115));
+ plt.setColor(QPalette::Inactive, QPalette::Foreground, fg);
+ plt.setColor(QPalette::Inactive, QPalette::Highlight, highlight);
+ plt.setColor(QPalette::Inactive, QPalette::HighlightedText, confFile.entryMap().value("TextSelectedColor"));
+ plt.setColor(QPalette::Inactive, QPalette::Dark, Qt::darkGray);
+ plt.setColor(QPalette::Inactive, QPalette::Button, bg);
+ plt.setColor(QPalette::Inactive, QPalette::ButtonText, fg);
+ plt.setColor(QPalette::Inactive, QPalette::Text, fg);
+ plt.setColor(QPalette::Inactive, QPalette::Link, confFile.entryMap().value("TextSpecialRegularColor"));
+ plt.setColor(QPalette::Inactive, QPalette::LinkVisited, confFile.entryMap().value("TextSpecialSelectedColor"));
+
+ plt.setColor(QPalette::Disabled, QPalette::Base, bg);
+ plt.setColor(QPalette::Disabled, QPalette::AlternateBase, alternate);
+ plt.setColor(QPalette::Disabled, QPalette::Background, bg.dark(115));
+ plt.setColor(QPalette::Disabled, QPalette::Foreground, fg);
+ plt.setColor(QPalette::Disabled, QPalette::Highlight, highlight);
+ plt.setColor(QPalette::Disabled, QPalette::HighlightedText, confFile.entryMap().value("TextSelectedColor"));
+ plt.setColor(QPalette::Disabled, QPalette::Dark, Qt::darkGray);
+ plt.setColor(QPalette::Disabled, QPalette::Button, bg);
+ plt.setColor(QPalette::Disabled, QPalette::ButtonText, fg);
+ plt.setColor(QPalette::Disabled, QPalette::Text, fg);
+ plt.setColor(QPalette::Disabled, QPalette::Link, confFile.entryMap().value("TextSpecialRegularColor"));
+ plt.setColor(QPalette::Disabled, QPalette::LinkVisited, confFile.entryMap().value("TextSpecialSelectedColor"));
+
+ /*
+ cg.setColor(QColorGroup::Light, ThemeEngine::instance()->textRegColor());
+ cg.setColor(QColorGroup::Midlight, ThemeEngine::instance()->textRegColor());
+ cg.setColor(QColorGroup::Mid, ThemeEngine::instance()->textRegColor());
+ cg.setColor(QColorGroup::Shadow, ThemeEngine::instance()->textRegColor());
+ */
+ }
+
+ kapp->setPalette(plt);
+}
+
+
#include "mainwindow.moc"
+
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>EffectList_UI</class>
- <widget class="QWidget" name="EffectList_UI" >
- <property name="geometry" >
+ <widget class="QWidget" name="EffectList_UI">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<height>296</height>
</rect>
</property>
- <layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="0" >
- <widget class="KComboBox" name="type_combo" >
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="KComboBox" name="type_combo">
<item>
- <property name="text" >
+ <property name="text">
<string>All</string>
</property>
</item>
<item>
- <property name="text" >
+ <property name="text">
<string>Video</string>
</property>
</item>
<item>
- <property name="text" >
+ <property name="text">
<string>Audio</string>
</property>
</item>
<item>
- <property name="text" >
+ <property name="text">
<string>Custom</string>
</property>
</item>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="KListWidgetSearchLine" name="search_effect" />
+ <item row="0" column="1">
+ <widget class="KListWidgetSearchLine" name="search_effect"/>
</item>
- <item row="0" column="2" >
- <widget class="QToolButton" name="buttonInfo" >
- <property name="enabled" >
+ <item row="0" column="2">
+ <widget class="QToolButton" name="buttonInfo">
+ <property name="enabled">
<bool>true</bool>
</property>
- <property name="text" >
+ <property name="text">
<string/>
</property>
</widget>
</item>
- <item row="1" column="0" colspan="3" >
- <widget class="QSplitter" name="splitter" >
- <property name="orientation" >
+ <item row="1" column="0" colspan="3">
+ <widget class="QSplitter" name="splitter">
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <widget class="QFrame" name="effectlistframe" >
- <property name="frameShape" >
- <enum>QFrame::StyledPanel</enum>
+ <widget class="QFrame" name="effectlistframe">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
- <property name="frameShadow" >
+ <property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
- <widget class="QLabel" name="infopanel" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <widget class="QLabel" name="infopanel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="frameShape" >
+ <property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
- <property name="frameShadow" >
+ <property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
- <property name="text" >
+ <property name="text">
<string/>
</property>
- <property name="alignment" >
+ <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
- <property name="wordWrap" >
+ <property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</widget>
</item>
</layout>
- <zorder>type_combo</zorder>
- <zorder>search_effect</zorder>
- <zorder>buttonInfo</zorder>
- <zorder>effectlistframe</zorder>
- <zorder>infopanel</zorder>
- <zorder>infopanel</zorder>
- <zorder>splitter</zorder>
</widget>
<customwidgets>
+ <customwidget>
+ <class>KLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>klineedit.h</header>
+ </customwidget>
<customwidget>
<class>KComboBox</class>
<extends>QComboBox</extends>
<header>klistwidgetsearchline.h</header>
</customwidget>
</customwidgets>
+ <tabstops>
+ <tabstop>type_combo</tabstop>
+ <tabstop>search_effect</tabstop>
+ <tabstop>buttonInfo</tabstop>
+ </tabstops>
<resources/>
<connections/>
</ui>