Adjust logo in NewFileDialog and OptionsDialog to palette #89

This commit is contained in:
Florian Märkl 2017-12-03 15:46:22 +01:00
parent fde759b6ae
commit f7cb84994a
6 changed files with 823 additions and 826 deletions

View File

@ -58,6 +58,8 @@ static QString formatBytecount(const long bytecount)
return stream.readAll(); return stream.readAll();
} }
#include "utils/Helpers.h"
NewFileDialog::NewFileDialog(QWidget *parent) : NewFileDialog::NewFileDialog(QWidget *parent) :
QDialog(parent), QDialog(parent),
ui(new Ui::NewFileDialog) ui(new Ui::NewFileDialog)
@ -67,6 +69,9 @@ NewFileDialog::NewFileDialog(QWidget *parent) :
ui->recentsListWidget->addAction(ui->actionRemove_item); ui->recentsListWidget->addAction(ui->actionRemove_item);
ui->recentsListWidget->addAction(ui->actionClear_all); ui->recentsListWidget->addAction(ui->actionClear_all);
QColor logoColor = (palette().window().color().value() < 127) ? QColor(255, 255, 255) : QColor(0, 0, 0);
ui->logoSvgWidget->load(qhelpers::applyColorToSvg(":/img/cutter.svg", logoColor));
fillRecentFilesList(); fillRecentFilesList();
bool projectsExist = fillProjectsList(); bool projectsExist = fillProjectsList();

View File

@ -14,58 +14,38 @@
<string>Open File</string> <string>Open File</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing"> <item>
<number>5</number> <layout class="QVBoxLayout" name="verticalLayout_6">
</property>
<property name="leftMargin"> <property name="leftMargin">
<number>5</number> <number>8</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>5</number> <number>8</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>5</number> <number>8</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>5</number> <number>8</number>
</property> </property>
<item alignment="Qt::AlignHCenter"> <item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="Logo"> <widget class="QSvgWidget" name="logoSvgWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>96</width> <width>88</width>
<height>96</height> <height>88</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>96</width> <width>88</width>
<height>96</height> <height>88</height>
</size> </size>
</property> </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/img/cutter.svg</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="margin">
<number>8</number>
</property>
</widget> </widget>
</item> </item>
</layout>
</item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing"> <property name="spacing">
@ -462,6 +442,14 @@
</property> </property>
</action> </action>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QSvgWidget</class>
<extends>QWidget</extends>
<header>qsvgwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources> <resources>
<include location="../resources.qrc"/> <include location="../resources.qrc"/>
<include location="../resources.qrc"/> <include location="../resources.qrc"/>

View File

@ -25,6 +25,9 @@ OptionsDialog::OptionsDialog(MainWindow *main):
ui->progressBar->setVisible(0); ui->progressBar->setVisible(0);
ui->statusLabel->setVisible(0); ui->statusLabel->setVisible(0);
QColor logoColor = (palette().window().color().value() < 127) ? QColor(255, 255, 255) : QColor(0, 0, 0);
ui->logoSvgWidget->load(qhelpers::applyColorToSvg(":/img/cutter.svg", logoColor));
ui->analSlider->setValue(defaultAnalLevel); ui->analSlider->setValue(defaultAnalLevel);
// Fill the plugins combo // Fill the plugins combo
@ -121,7 +124,6 @@ void OptionsDialog::setupAndStartAnalysis(int level, QList<QString> advanced)
ui->analSlider->setValue(level); ui->analSlider->setValue(level);
this->setEnabled(0); this->setEnabled(0);
ui->logo->setEnabled(true);
// Show Progress Bar // Show Progress Bar
ui->progressBar->setEnabled(1); ui->progressBar->setEnabled(1);

View File

@ -6,12 +6,12 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>576</width> <width>400</width>
<height>1167</height> <height>1143</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -34,75 +34,42 @@
margin-bottom: 5px; margin-bottom: 5px;
}</string> }</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_5"> <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum> <enum>QLayout::SetMinAndMaxSize</enum>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property> </property>
<item> <item>
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_9">
<property name="spacing"> <property name="leftMargin">
<number>5</number> <number>8</number>
</property>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>8</number>
</property>
<property name="rightMargin">
<number>8</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>8</number>
</property> </property>
<item alignment="Qt::AlignHCenter"> <item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="logo"> <widget class="QSvgWidget" name="logoSvgWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>96</width> <width>88</width>
<height>96</height> <height>88</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>96</width> <width>88</width>
<height>96</height> <height>88</height>
</size> </size>
</property> </property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/img/cutter.svg</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="margin">
<number>8</number>
</property>
</widget> </widget>
</item> </item>
</layout>
</item>
<item> <item>
<widget class="QFrame" name="frame"> <widget class="QFrame" name="frame">
<property name="sizePolicy"> <property name="sizePolicy">
@ -833,10 +800,6 @@
</layout> </layout>
</widget> </widget>
</item> </item>
</layout>
</item>
</layout>
</item>
<item> <item>
<widget class="QLabel" name="statusLabel"> <widget class="QLabel" name="statusLabel">
<property name="sizePolicy"> <property name="sizePolicy">
@ -929,6 +892,14 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QSvgWidget</class>
<extends>QWidget</extends>
<header>qsvgwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources> <resources>
<include location="../resources.qrc"/> <include location="../resources.qrc"/>
</resources> </resources>

View File

@ -9,7 +9,6 @@
#include <QAbstractItemView> #include <QAbstractItemView>
#include <QAbstractButton> #include <QAbstractButton>
#include <QDockWidget> #include <QDockWidget>
#include <QtGui/QtGui>
static QAbstractItemView::ScrollMode scrollMode() static QAbstractItemView::ScrollMode scrollMode()
@ -128,4 +127,33 @@ namespace qhelpers
/ fontMetrics.lineSpacing(); / fontMetrics.lineSpacing();
} }
QByteArray applyColorToSvg(const QString &filename, QColor color)
{
static QRegularExpression styleRegExp("(?:style=\".*fill:(.*?);.*?\")|(?:fill=\"(.*?)\")");
QString replaceStr = QString("#%1").arg(color.rgb() & 0xffffff, 6, 16, QLatin1Char('0'));
int replaceStrLen = replaceStr.length();
QFile file(filename);
file.open(QIODevice::ReadOnly);
QString xml = QString::fromUtf8(file.readAll());
int offset = 0;
while(true)
{
QRegularExpressionMatch match = styleRegExp.match(xml, offset);
if (!match.hasMatch())
{
break;
}
int captureIndex = match.captured(1).isNull() ? 2 : 1;
xml.replace(match.capturedStart(captureIndex), match.capturedLength(captureIndex), replaceStr);
offset = match.capturedStart(captureIndex) + replaceStrLen;
}
return xml.toUtf8();
}
} // end namespace } // end namespace

View File

@ -2,6 +2,7 @@
#define QHELPERS_H #define QHELPERS_H
#include <QString> #include <QString>
#include <QColor>
#include <QSizePolicy> #include <QSizePolicy>
class QPlainTextEdit; class QPlainTextEdit;
@ -40,6 +41,8 @@ namespace qhelpers
int getMaxFullyDisplayedLines(QPlainTextEdit *plainTextEdit); int getMaxFullyDisplayedLines(QPlainTextEdit *plainTextEdit);
QByteArray applyColorToSvg(const QString &filename, QColor color);
} }
#endif // HELPERS_H #endif // HELPERS_H