finished work on FTW
hopefully
|
@ -57,7 +57,15 @@ FileTransferWidget::FileTransferWidget(QWidget *parent, ToxFile file)
|
|||
update();
|
||||
});
|
||||
|
||||
setColor(Style::getColor(Style::LightGrey), false);
|
||||
buttonColorAnimation = new QVariantAnimation(this);
|
||||
buttonColorAnimation->setDuration(500);
|
||||
buttonColorAnimation->setEasingCurve(QEasingCurve::OutCubic);
|
||||
connect(buttonColorAnimation, &QVariantAnimation::valueChanged, this, [this](const QVariant& val) {
|
||||
buttonColor = val.value<QColor>();
|
||||
update();
|
||||
});
|
||||
|
||||
setBackgroundColor(Style::getColor(Style::LightGrey), false);
|
||||
|
||||
connect(Core::getInstance(), &Core::fileTransferInfo, this, &FileTransferWidget::onFileTransferInfo);
|
||||
connect(Core::getInstance(), &Core::fileTransferAccepted, this, &FileTransferWidget::onFileTransferAccepted);
|
||||
|
@ -71,7 +79,7 @@ FileTransferWidget::FileTransferWidget(QWidget *parent, ToxFile file)
|
|||
if(fileInfo.direction == ToxFile::SENDING)
|
||||
showPreview(fileInfo.filePath);
|
||||
|
||||
setFixedHeight(64);
|
||||
setFixedHeight(78);
|
||||
}
|
||||
|
||||
FileTransferWidget::~FileTransferWidget()
|
||||
|
@ -120,7 +128,7 @@ void FileTransferWidget::acceptTransfer(const QString &filepath)
|
|||
Core::getInstance()->acceptFileRecvRequest(fileInfo.friendId, fileInfo.fileNum, filepath);
|
||||
}
|
||||
|
||||
void FileTransferWidget::setColor(const QColor &c, bool whiteFont)
|
||||
void FileTransferWidget::setBackgroundColor(const QColor &c, bool whiteFont)
|
||||
{
|
||||
if(c != backgroundColor)
|
||||
{
|
||||
|
@ -137,7 +145,17 @@ void FileTransferWidget::setColor(const QColor &c, bool whiteFont)
|
|||
update();
|
||||
}
|
||||
|
||||
bool FileTransferWidget::isFilePathWritable(const QString &filepath)
|
||||
void FileTransferWidget::setButtonColor(const QColor &c)
|
||||
{
|
||||
if(c != buttonColor)
|
||||
{
|
||||
buttonColorAnimation->setStartValue(buttonColor);
|
||||
buttonColorAnimation->setEndValue(c);
|
||||
buttonColorAnimation->start();
|
||||
}
|
||||
}
|
||||
|
||||
bool FileTransferWidget::isFilePathWritable(const QString &filepath) const
|
||||
{
|
||||
QFile tmp(filepath);
|
||||
bool writable = tmp.open(QIODevice::WriteOnly);
|
||||
|
@ -145,6 +163,12 @@ bool FileTransferWidget::isFilePathWritable(const QString &filepath)
|
|||
return writable;
|
||||
}
|
||||
|
||||
bool FileTransferWidget::drawButtonAreaNeeded() const
|
||||
{
|
||||
return (ui->bottomButton->isVisible() || ui->topButton->isVisible()) &&
|
||||
!(ui->topButton->isVisible() && ui->topButton->objectName() == "ok");
|
||||
}
|
||||
|
||||
void FileTransferWidget::paintEvent(QPaintEvent *)
|
||||
{
|
||||
// required by Hi-DPI support as border-image doesn't work.
|
||||
|
@ -153,24 +177,28 @@ void FileTransferWidget::paintEvent(QPaintEvent *)
|
|||
painter.setPen(Qt::NoPen);
|
||||
|
||||
qreal ratio = static_cast<qreal>(geometry().height()) / static_cast<qreal>(geometry().width());
|
||||
const int r = 20;
|
||||
const int r = 24;
|
||||
const int buttonFieldWidth = 34;
|
||||
const int lineWidth = 2;
|
||||
|
||||
// draw background
|
||||
if(drawButtonAreaNeeded())
|
||||
painter.setClipRect(QRect(0,0,width()-buttonFieldWidth,height()));
|
||||
painter.setBrush(QBrush(backgroundColor));
|
||||
painter.setClipRect(QRect(0,0,width()-buttonFieldWidth,height()));
|
||||
painter.drawRoundRect(geometry(), r * ratio, r);
|
||||
|
||||
// draw button background (top)
|
||||
painter.setBrush(QBrush(buttonColor));
|
||||
painter.setClipRect(QRect(width()-buttonFieldWidth+lineWidth,0,buttonFieldWidth,height()/2-lineWidth/2));
|
||||
painter.drawRoundRect(geometry(), r * ratio, r);
|
||||
if(drawButtonAreaNeeded())
|
||||
{
|
||||
// draw button background (top)
|
||||
painter.setBrush(QBrush(buttonColor));
|
||||
painter.setClipRect(QRect(width()-buttonFieldWidth+lineWidth,0,buttonFieldWidth,height()/2-lineWidth/2));
|
||||
painter.drawRoundRect(geometry(), r * ratio, r);
|
||||
|
||||
// draw button background (bottom)
|
||||
painter.setBrush(QBrush(buttonColor));
|
||||
painter.setClipRect(QRect(width()-buttonFieldWidth+lineWidth,height()/2+lineWidth/2,buttonFieldWidth,height()/2));
|
||||
painter.drawRoundRect(geometry(), r * ratio, r);
|
||||
// draw button background (bottom)
|
||||
painter.setBrush(QBrush(buttonColor));
|
||||
painter.setClipRect(QRect(width()-buttonFieldWidth+lineWidth,height()/2+lineWidth/2,buttonFieldWidth,height()/2));
|
||||
painter.drawRoundRect(geometry(), r * ratio, r);
|
||||
}
|
||||
}
|
||||
|
||||
void FileTransferWidget::onFileTransferInfo(ToxFile file)
|
||||
|
@ -210,7 +238,8 @@ void FileTransferWidget::onFileTransferInfo(ToxFile file)
|
|||
{
|
||||
// ETA
|
||||
QTime toGo = QTime(0,0).addSecs((file.filesize - file.bytesSent) / meanBytesPerSec);
|
||||
ui->etaLabel->setText(toGo.toString("hh:mm:ss"));
|
||||
QString format = toGo.hour() > 0 ? "hh:mm:ss" : "mm:ss";
|
||||
ui->etaLabel->setText(toGo.toString(format));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -235,7 +264,7 @@ void FileTransferWidget::onFileTransferAccepted(ToxFile file)
|
|||
|
||||
fileInfo = file;
|
||||
|
||||
setColor(Style::getColor(Style::Yellow), false);
|
||||
setBackgroundColor(Style::getColor(Style::LightGrey), false);
|
||||
|
||||
setupButtons();
|
||||
}
|
||||
|
@ -247,7 +276,7 @@ void FileTransferWidget::onFileTransferCancelled(ToxFile file)
|
|||
|
||||
fileInfo = file;
|
||||
|
||||
setColor(Style::getColor(Style::Red), true);
|
||||
setBackgroundColor(Style::getColor(Style::Red), true);
|
||||
|
||||
setupButtons();
|
||||
hideWidgets();
|
||||
|
@ -263,14 +292,14 @@ void FileTransferWidget::onFileTransferPaused(ToxFile file)
|
|||
fileInfo = file;
|
||||
|
||||
ui->etaLabel->setText("");
|
||||
ui->progressLabel->setText(getHumanReadableSize(0) + "/s");
|
||||
ui->progressLabel->setText(tr("paused", "file transfer widget"));
|
||||
|
||||
// reset mean
|
||||
meanIndex = 0;
|
||||
for(size_t i=0; i<TRANSFER_ROLLING_AVG_COUNT; ++i)
|
||||
meanData[i] = 0.0;
|
||||
|
||||
setColor(Style::getColor(Style::LightGrey), false);
|
||||
setBackgroundColor(Style::getColor(Style::LightGrey), false);
|
||||
|
||||
setupButtons();
|
||||
}
|
||||
|
@ -282,7 +311,7 @@ void FileTransferWidget::onFileTransferFinished(ToxFile file)
|
|||
|
||||
fileInfo = file;
|
||||
|
||||
setColor(Style::getColor(Style::Green), true);
|
||||
setBackgroundColor(Style::getColor(Style::Green), true);
|
||||
|
||||
setupButtons();
|
||||
hideWidgets();
|
||||
|
@ -291,9 +320,9 @@ void FileTransferWidget::onFileTransferFinished(ToxFile file)
|
|||
|
||||
if(openExtensions.contains(QFileInfo(file.fileName).suffix()))
|
||||
{
|
||||
ui->bottomButton->setIcon(QIcon(":/ui/fileTransferInstance/browse.svg"));
|
||||
ui->bottomButton->setObjectName("browse");
|
||||
ui->bottomButton->show();
|
||||
ui->topButton->setIcon(QIcon(":/ui/fileTransferInstance/yes.svg"));
|
||||
ui->topButton->setObjectName("ok");
|
||||
ui->topButton->show();
|
||||
}
|
||||
|
||||
// preview
|
||||
|
@ -333,6 +362,9 @@ void FileTransferWidget::setupButtons()
|
|||
|
||||
ui->bottomButton->setIcon(QIcon(":/ui/fileTransferInstance/pause.svg"));
|
||||
ui->bottomButton->setObjectName("pause");
|
||||
|
||||
setButtonColor(Style::getColor(Style::Green));
|
||||
|
||||
break;
|
||||
case ToxFile::PAUSED:
|
||||
ui->topButton->setIcon(QIcon(":/ui/fileTransferInstance/no.svg"));
|
||||
|
@ -340,6 +372,9 @@ void FileTransferWidget::setupButtons()
|
|||
|
||||
ui->bottomButton->setIcon(QIcon(":/ui/fileTransferInstance/arrow_white.svg"));
|
||||
ui->bottomButton->setObjectName("resume");
|
||||
|
||||
setButtonColor(Style::getColor(Style::LightGrey));
|
||||
|
||||
break;
|
||||
case ToxFile::STOPPED:
|
||||
case ToxFile::BROKEN: //TODO: ?
|
||||
|
@ -386,7 +421,7 @@ void FileTransferWidget::handleButton(QPushButton *btn)
|
|||
}
|
||||
}
|
||||
|
||||
if(btn->objectName() == "browse")
|
||||
if(btn->objectName() == "ok")
|
||||
{
|
||||
QDesktopServices::openUrl("file://" + fileInfo.filePath);
|
||||
}
|
||||
|
|
|
@ -54,9 +54,11 @@ protected:
|
|||
void handleButton(QPushButton* btn);
|
||||
void showPreview(const QString& filename);
|
||||
void acceptTransfer(const QString& filepath);
|
||||
void setColor(const QColor& c, bool whiteFont);
|
||||
void setBackgroundColor(const QColor& c, bool whiteFont);
|
||||
void setButtonColor(const QColor& c);
|
||||
|
||||
bool isFilePathWritable(const QString& filepath);
|
||||
bool isFilePathWritable(const QString& filepath) const;
|
||||
bool drawButtonAreaNeeded() const;
|
||||
|
||||
virtual void paintEvent(QPaintEvent*);
|
||||
|
||||
|
@ -70,6 +72,7 @@ private:
|
|||
QTime lastTick;
|
||||
qint64 lastBytesSent = 0;
|
||||
QVariantAnimation* backgroundColorAnimation = nullptr;
|
||||
QVariantAnimation* buttonColorAnimation = nullptr;
|
||||
QColor backgroundColor;
|
||||
QColor buttonColor;
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>532</width>
|
||||
<height>238</height>
|
||||
<width>625</width>
|
||||
<height>243</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="mainHorizontalLayout">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
|
@ -49,54 +49,26 @@
|
|||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>5</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>5</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>5</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="previewLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>[preview]</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,0,0,0">
|
||||
<layout class="QGridLayout" name="gridLayout_3" rowstretch="1,0,1">
|
||||
<property name="leftMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>6</number>
|
||||
|
@ -104,115 +76,232 @@
|
|||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="CroppingLabel" name="filenameLabel">
|
||||
<property name="horizontalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<widget class="QWidget" name="statusWidget" native="true">
|
||||
<layout class="QHBoxLayout" name="_2">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="fileSizeLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>10Mb</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="progressLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0kb/s</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="etaLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ETA:10:10</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>12</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>24</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="invertedAppearance">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="format">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="CroppingLabel" name="filenameLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Filename</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="verticalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>1</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="verticalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>1</width>
|
||||
<height>21</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<spacer name="verticalSpacer_7">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Preferred</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>1</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="previewLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Filename</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="statusWidget" native="true">
|
||||
<layout class="QHBoxLayout" name="_2">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="fileSizeLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>10Mb</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="progressLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0kb/s</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="etaLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ETA:10:10</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="maximumSize">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>10</height>
|
||||
<width>60</width>
|
||||
<height>60</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>60</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>24</number>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<property name="lineWidth">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="invertedAppearance">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="format">
|
||||
<string/>
|
||||
<property name="text">
|
||||
<string>[preview]</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<item row="2" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -228,10 +317,7 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="buttonWidget" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
|
@ -244,58 +330,94 @@
|
|||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="topButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="bottomButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="cursor">
|
||||
<cursorShape>PointingHandCursor</cursorShape>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../res.qrc">
|
||||
<normaloff>:/ui/fileTransferInstance/no.svg</normaloff>:/ui/fileTransferInstance/no.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
<height>18</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="topButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="cursor">
|
||||
<cursorShape>PointingHandCursor</cursorShape>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../res.qrc">
|
||||
<normaloff>:/ui/fileTransferInstance/no.svg</normaloff>:/ui/fileTransferInstance/no.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>18</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<spacer name="verticalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<width>0</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
|
@ -316,6 +438,8 @@
|
|||
<header>src/widget/croppinglabel.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<resources>
|
||||
<include location="../../../res.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
|
@ -7,10 +7,34 @@
|
|||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="12"
|
||||
height="12"
|
||||
id="svg2">
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="browse.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview22"
|
||||
showgrid="false"
|
||||
inkscape:zoom="27.812867"
|
||||
inkscape:cx="7.3552517"
|
||||
inkscape:cy="6.238286"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<marker
|
||||
|
@ -82,12 +106,12 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-2092.7244)"
|
||||
transform="matrix(1.1423998,0,0,1.1423998,-0.85439881,-2392.0444)"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g6659"
|
||||
|
@ -95,12 +119,14 @@
|
|||
<path
|
||||
d="m 0.99206881,2098.1979 c -0.10310776,0 -0.18644079,0.07 -0.18644079,0.1559 l 0,5.9208 c 0,0.087 0.0833323,0.1566 0.18644079,0.1566 l 10.01586219,0 c 0.103108,0 0.186441,-0.07 0.186441,-0.1566 l 0,-5.9208 c 0,-0.087 -0.08334,-0.1559 -0.186441,-0.1559 l -1.8913078,0 0,4.4022 c 0,0.087 -0.083329,0.1567 -0.1864405,0.1567 l -5.8603649,0 c -0.1031078,0 -0.1864408,-0.07 -0.1864408,-0.1567 l 0,-4.4022 -1.8913082,0 z"
|
||||
id="rect2985"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 250,902.36218 a 80,80 0 1 1 -160,0 80,80 0 1 1 160,0 z"
|
||||
transform="matrix(0.02146655,0,0,0.02146655,2.3506865,2081.0532)"
|
||||
id="path2990"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="matrix(1.7576144,0,0,1,-4.6547815,0)"
|
||||
id="g6651"
|
||||
|
@ -108,11 +134,13 @@
|
|||
<path
|
||||
d="m 5.5625,2094.9688 0,3.1874 1,0 0,-3.1874 -1,0 z"
|
||||
id="path4954"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 6.06207,2093.8266 1,1.73 -2,0 1,-1.73 z"
|
||||
id="path6657"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
|
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 5.3 KiB |
|
@ -1,21 +1,23 @@
|
|||
[fontColor="white"] QLabel {
|
||||
color:white;
|
||||
font:@medium;
|
||||
font:@big;
|
||||
}
|
||||
|
||||
[fontColor="black"] QLabel {
|
||||
color:black;
|
||||
font:@medium;
|
||||
color:@mediumGrey;
|
||||
font:@big;
|
||||
}
|
||||
|
||||
QPushButton {
|
||||
margin:0;
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
QProgressBar {
|
||||
border: 2px solid black;
|
||||
border-radius: 4px;
|
||||
border: 2px solid @mediumGrey;
|
||||
border-radius: 0px;
|
||||
background-color: @mediumGrey;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,17 +7,40 @@
|
|||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="12"
|
||||
height="12"
|
||||
viewBox="0 0 11.999999 12"
|
||||
id="Layer_1"
|
||||
xml:space="preserve"><metadata
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="no.svg"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="27.812867"
|
||||
inkscape:cx="7.1318585"
|
||||
inkscape:cy="6.2233931"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><metadata
|
||||
id="metadata9"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs7" /><polygon
|
||||
points="10.086,1.692 8.395,0 5.043,3.351 1.693,0.001 0,1.693 3.35,5.043 0,8.394 1.693,10.086 5.043,6.736 8.395,10.087 10.086,8.394 6.734,5.043 "
|
||||
transform="matrix(0.9760279,0,0,0.97003785,1.0778908,1.1076141)"
|
||||
points="1.693,0.001 0,1.693 3.35,5.043 0,8.394 1.693,10.086 5.043,6.736 8.395,10.087 10.086,8.394 6.734,5.043 10.086,1.692 8.395,0 5.043,3.351 "
|
||||
transform="matrix(1.1123133,0,0,1.1054869,0.39060355,0.42447682)"
|
||||
id="polygon3"
|
||||
style="fill:#ffffff" /></svg>
|
Before Width: | Height: | Size: 1006 B After Width: | Height: | Size: 1.7 KiB |
|
@ -7,27 +7,50 @@
|
|||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="12"
|
||||
height="12"
|
||||
viewBox="0 0 12.000001 12"
|
||||
id="Layer_1"
|
||||
xml:space="preserve"><metadata
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="pause.svg"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="39.333333"
|
||||
inkscape:cx="0.67502197"
|
||||
inkscape:cy="4.3268875"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><metadata
|
||||
id="metadata13"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs11" /><g
|
||||
transform="matrix(0.91525423,0,0,0.91525423,2.1550175,1.6983052)"
|
||||
transform="matrix(0.91525423,0,0,0.91525423,2.1550175,0.69830581)"
|
||||
id="g3"><rect
|
||||
width="2.395"
|
||||
height="9.3979998"
|
||||
x="0"
|
||||
y="0.0020000001"
|
||||
width="2.1851854"
|
||||
height="10.925926"
|
||||
x="-0.16937082"
|
||||
y="0.32962826"
|
||||
id="rect5"
|
||||
style="fill:#ffffff" /><rect
|
||||
width="2.395"
|
||||
height="9.3999996"
|
||||
x="6.007"
|
||||
y="0"
|
||||
width="2.1851854"
|
||||
height="10.925926"
|
||||
x="6.3861852"
|
||||
y="0.32962897"
|
||||
id="rect7"
|
||||
style="fill:#ffffff" /></g></svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -7,16 +7,40 @@
|
|||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="12"
|
||||
height="12"
|
||||
viewBox="0 0 11.999999 12"
|
||||
id="Layer_1"
|
||||
xml:space="preserve"><metadata
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="yes.svg"><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1377"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="39.333333"
|
||||
inkscape:cx="-10.242096"
|
||||
inkscape:cy="5.4642197"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><metadata
|
||||
id="metadata9"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs7" /><path
|
||||
d="M 10.046766,3.1549565 4.5738581,8.8450436 1.9532328,6.2533755"
|
||||
d="M 11.17966,1.8934443 4.1597484,9.1919256 0.79836133,5.8676812"
|
||||
id="path2999"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.91624641;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /></svg>
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" /></svg>
|
Before Width: | Height: | Size: 949 B After Width: | Height: | Size: 1.7 KiB |