aboutsummaryrefslogtreecommitdiff
path: root/src/lib/downloads
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-03 16:39:32 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-03 16:39:32 +0100
commit85d9f14aa8bac16ab341662c770b64a15c21628b (patch)
tree422db18e798646cd4bc98abf342f25c09c0bdf1d /src/lib/downloads
parentDownload items' width should no longer exceed the list width (diff)
downloadsmolbote-85d9f14aa8bac16ab341662c770b64a15c21628b.tar.xz
Changed from qbs to cmake
Diffstat (limited to 'src/lib/downloads')
-rw-r--r--src/lib/downloads/downloads.qbs28
-rw-r--r--src/lib/downloads/downloadsform.ui24
-rw-r--r--src/lib/downloads/downloadswidget.cpp91
-rw-r--r--src/lib/downloads/downloadswidget.h38
-rw-r--r--src/lib/downloads/widgets/downloaditemform.ui74
-rw-r--r--src/lib/downloads/widgets/downloaditemwidget.cpp103
-rw-r--r--src/lib/downloads/widgets/downloaditemwidget.h43
-rw-r--r--src/lib/downloads/widgets/elidedlabel.cpp85
-rw-r--r--src/lib/downloads/widgets/elidedlabel.h85
9 files changed, 0 insertions, 571 deletions
diff --git a/src/lib/downloads/downloads.qbs b/src/lib/downloads/downloads.qbs
deleted file mode 100644
index bdb18ad..0000000
--- a/src/lib/downloads/downloads.qbs
+++ /dev/null
@@ -1,28 +0,0 @@
-import qbs 1.0
-
-Project {
- name: "downloads"
-
- StaticLibrary {
- id: downloads
- name: "downloads"
-
- cpp.includePaths: ['.', '../..']
-
- Depends {
- name: "Qt"
- submodules: ["core", "widgets", "webenginewidgets"]
- }
-
- files: [
- "downloadsform.ui",
- "downloadswidget.cpp",
- "downloadswidget.h",
- "widgets/downloaditemform.ui",
- "widgets/downloaditemwidget.cpp",
- "widgets/downloaditemwidget.h",
- "widgets/elidedlabel.cpp",
- "widgets/elidedlabel.h",
- ]
- }
-}
diff --git a/src/lib/downloads/downloadsform.ui b/src/lib/downloads/downloadsform.ui
deleted file mode 100644
index 43a0d49..0000000
--- a/src/lib/downloads/downloadsform.ui
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>DownloadDialog</class>
- <widget class="QWidget" name="DownloadDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>600</width>
- <height>420</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Downloads</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QListWidget" name="listWidget"/>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/lib/downloads/downloadswidget.cpp b/src/lib/downloads/downloadswidget.cpp
deleted file mode 100644
index f9a8f34..0000000
--- a/src/lib/downloads/downloadswidget.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * This file is part of smolbote. It's copyrighted by the contributors recorded
- * in the version control history of the file, available from its original
- * location: git://neueland.iserlohn-fortress.net/smolbote.git
- *
- * SPDX-License-Identifier: GPL-3.0
- */
-
-#include "downloadswidget.h"
-#include "ui_downloadsform.h"
-
-#include <QWebEngineDownloadItem>
-#include <QUrl>
-#include <QFileDialog>
-#include <QListWidget>
-#include <QLabel>
-#include "widgets/downloaditemwidget.h"
-
-DownloadsWidget::DownloadsWidget(const QString &downloadPath, QWidget *parent) :
- QDialog(parent),
- ui(new Ui::DownloadDialog)
-{
- // make sure this dialog does not get deleted on close
- setAttribute(Qt::WA_DeleteOnClose, false);
- setWindowTitle(tr("Downloads"));
-
- ui->setupUi(this);
-
- m_downloadPath = downloadPath;
-
- connect(ui->listWidget, &QListWidget::currentItemChanged, this, [this](QListWidgetItem *current, QListWidgetItem *previous) {
- DownloadItemWidget *currentWidget = qobject_cast<DownloadItemWidget*>(ui->listWidget->itemWidget(current));
- currentWidget->showDetails();
- currentWidget->setFixedWidth(ui->listWidget->viewport()->width());
- currentWidget->adjustSize();
- current->setSizeHint(currentWidget->size());
-
- DownloadItemWidget *previousWidget = qobject_cast<DownloadItemWidget*>(ui->listWidget->itemWidget(previous));
- if(previousWidget != nullptr) {
- previousWidget->hideDetails();
- previousWidget->setFixedWidth(ui->listWidget->viewport()->width());
- previousWidget->adjustSize();
- previous->setSizeHint(previousWidget->size());
- }
- });
-}
-
-DownloadsWidget::~DownloadsWidget()
-{
- delete ui;
-}
-
-void DownloadsWidget::addDownload(QWebEngineDownloadItem *item)
-{
- this->show();
-
- QString filepath = QFileDialog::getSaveFileName(this,
- tr("Save"),
- m_downloadPath + "/" + QFileInfo(item->path()).fileName());
-
- if(filepath.isEmpty()) {
- // user cancelled the save dialog
- item->cancel();
- return;
- }
-
- item->setPath(filepath);
-
- QListWidgetItem *listItem = new QListWidgetItem();
- int rowIndex = ui->listWidget->count();
- ui->listWidget->insertItem(rowIndex, listItem);
-
- DownloadItemWidget *form = new DownloadItemWidget(item, this);
- ui->listWidget->setItemWidget(listItem, form);
-
- item->accept();
-
- ui->listWidget->setCurrentRow(rowIndex);
-}
-
-void DownloadsWidget::resizeEvent(QResizeEvent *event)
-{
- QWidget::resizeEvent(event);
-
- for(int i = 0; i < ui->listWidget->count(); ++i) {
- QWidget *w = ui->listWidget->itemWidget(ui->listWidget->item(i));
- w->setFixedWidth(ui->listWidget->viewport()->width());
- w->adjustSize();
- ui->listWidget->item(i)->setSizeHint(w->size());
- }
-}
diff --git a/src/lib/downloads/downloadswidget.h b/src/lib/downloads/downloadswidget.h
deleted file mode 100644
index 8c9ea21..0000000
--- a/src/lib/downloads/downloadswidget.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * This file is part of smolbote. It's copyrighted by the contributors recorded
- * in the version control history of the file, available from its original
- * location: git://neueland.iserlohn-fortress.net/smolbote.git
- *
- * SPDX-License-Identifier: GPL-3.0
- */
-
-#ifndef DOWNLOADDIALOG_H
-#define DOWNLOADDIALOG_H
-
-#include <QDialog>
-
-namespace Ui {
-class DownloadDialog;
-}
-
-class QWebEngineDownloadItem;
-class DownloadsWidget : public QDialog
-{
- Q_OBJECT
-
-public:
- explicit DownloadsWidget(const QString &downloadPath, QWidget *parent = nullptr);
- ~DownloadsWidget();
-
-public slots:
- void addDownload(QWebEngineDownloadItem *item);
-
-protected:
- void resizeEvent(QResizeEvent *event) override;
-
-private:
- Ui::DownloadDialog *ui;
- QString m_downloadPath;
-};
-
-#endif // DOWNLOADDIALOG_H
diff --git a/src/lib/downloads/widgets/downloaditemform.ui b/src/lib/downloads/widgets/downloaditemform.ui
deleted file mode 100644
index 17f1d6a..0000000
--- a/src/lib/downloads/widgets/downloaditemform.ui
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>DownloadItemForm</class>
- <widget class="QWidget" name="DownloadItemForm">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>500</width>
- <height>122</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <property name="spacing">
- <number>0</number>
- </property>
- <item>
- <widget class="ElidedLabel" name="url_label">
- <property name="text">
- <string>[url]</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QProgressBar" name="progressBar">
- <property name="value">
- <number>24</number>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QWidget" name="detailsWidget" native="true">
- <layout class="QVBoxLayout" name="detailsLayout">
- <item>
- <widget class="QLabel" name="status_label">
- <property name="text">
- <string>status_label</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="path_label">
- <property name="text">
- <string>path_label</string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <customwidgets>
- <customwidget>
- <class>ElidedLabel</class>
- <extends>QLabel</extends>
- <header>widgets/elidedlabel.h</header>
- </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/lib/downloads/widgets/downloaditemwidget.cpp b/src/lib/downloads/widgets/downloaditemwidget.cpp
deleted file mode 100644
index fff3cfc..0000000
--- a/src/lib/downloads/widgets/downloaditemwidget.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * This file is part of smolbote. It's copyrighted by the contributors recorded
- * in the version control history of the file, available from its original
- * location: git://neueland.iserlohn-fortress.net/smolbote.git
- *
- * SPDX-License-Identifier: GPL-3.0
- */
-
-#include "downloaditemwidget.h"
-#include "ui_downloaditemform.h"
-
-#include <QUrl>
-#include <QLabel>
-
-DownloadItemWidget::DownloadItemWidget(QWebEngineDownloadItem *item, QWidget *parent) :
- QWidget(parent),
- ui(new Ui::DownloadItemForm)
-{
- m_item = item;
-
- ui->setupUi(this);
-
- ui->url_label->setContent(item->url().toString());
- ui->detailsWidget->hide();
-
- ui->path_label->setText(item->path());
-
- connect(item, &QWebEngineDownloadItem::stateChanged, this, &DownloadItemWidget::updateState);
- connect(item, &QWebEngineDownloadItem::downloadProgress, this, &DownloadItemWidget::updateProgress);
- connect(item, &QWebEngineDownloadItem::finished, this, &DownloadItemWidget::updateFinished);
-}
-
-DownloadItemWidget::~DownloadItemWidget()
-{
- delete ui;
-}
-
-void DownloadItemWidget::showDetails()
-{
- ui->detailsWidget->show();
-}
-
-void DownloadItemWidget::hideDetails()
-{
- ui->detailsWidget->hide();
-}
-
-QWebEngineDownloadItem *DownloadItemWidget::item() const
-{
- return m_item;
-}
-
-QString DownloadItemWidget::sizeString(int size) const
-{
- if(size < 1024) {
- return QString("%1 bytes").arg(size);
- }
- // KiB
- if(size < 1024 * 1024) {
- return QString("%1 kB").arg(size / 1024);
- }
- // MiB
- if(size < 1024 * 1024 * 1024) {
- return QString("%1 MB").arg(size / (1024 * 1024));
- }
- // GiB
- return QString("%1 GB").arg(size / (1024 * 1024 * 1024));
-}
-
-void DownloadItemWidget::updateState(QWebEngineDownloadItem::DownloadState state)
-{
- switch (state) {
- case QWebEngineDownloadItem::DownloadRequested:
- ui->status_label->setText(tr("Requested"));
- break;
- case QWebEngineDownloadItem::DownloadInProgress:
- ui->status_label->setText(tr("In progress"));
- break;
- case QWebEngineDownloadItem::DownloadCompleted:
- ui->status_label->setText(tr("Completed"));
- break;
- case QWebEngineDownloadItem::DownloadCancelled:
- ui->status_label->setText(tr("Cancelled"));
- break;
- case QWebEngineDownloadItem::DownloadInterrupted:
- ui->status_label->setText(tr("Interrupted"));
- break;
- default:
- break;
- }
-}
-
-void DownloadItemWidget::updateProgress(qint64 value, qint64 total)
-{
- ui->progressBar->setMaximum(total);
- ui->progressBar->setValue(value);
- ui->progressBar->setFormat(QString("%1 / %2").arg(sizeString(value), sizeString(total)));
-}
-
-void DownloadItemWidget::updateFinished()
-{
- ui->progressBar->setValue(ui->progressBar->maximum());
-}
diff --git a/src/lib/downloads/widgets/downloaditemwidget.h b/src/lib/downloads/widgets/downloaditemwidget.h
deleted file mode 100644
index c6246da..0000000
--- a/src/lib/downloads/widgets/downloaditemwidget.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * This file is part of smolbote. It's copyrighted by the contributors recorded
- * in the version control history of the file, available from its original
- * location: git://neueland.iserlohn-fortress.net/smolbote.git
- *
- * SPDX-License-Identifier: GPL-3.0
- */
-
-#ifndef DOWNLOADITEMFORM_H
-#define DOWNLOADITEMFORM_H
-
-#include <QWidget>
-#include <QWebEngineDownloadItem>
-
-namespace Ui {
-class DownloadItemForm;
-}
-
-class DownloadItemWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- explicit DownloadItemWidget(QWebEngineDownloadItem *item, QWidget *parent = 0);
- ~DownloadItemWidget();
-
- void showDetails();
- void hideDetails();
-
- QWebEngineDownloadItem *item() const;
- QString sizeString(int size) const;
-
-private slots:
- void updateState(QWebEngineDownloadItem::DownloadState state);
- void updateProgress(qint64 value, qint64 total);
- void updateFinished();
-
-private:
- Ui::DownloadItemForm *ui;
- QWebEngineDownloadItem *m_item;
-};
-
-#endif // DOWNLOADITEMFORM_H
diff --git a/src/lib/downloads/widgets/elidedlabel.cpp b/src/lib/downloads/widgets/elidedlabel.cpp
deleted file mode 100644
index dc17d32..0000000
--- a/src/lib/downloads/widgets/elidedlabel.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-/*
- * This file is part of smolbote. It's copyrighted by the contributors recorded
- * in the version control history of the file, available from its original
- * location: git://neueland.iserlohn-fortress.net/smolbote.git
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "elidedlabel.h"
-
-#include <QPainter>
-#include <QTextLayout>
-#include <QDebug>
-
-ElidedLabel::ElidedLabel(QWidget *parent)
- : QLabel(parent)
- , elided(false)
- , content("elided_label")
-{
- setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-}
-
-void ElidedLabel::setContent(const QString &newText)
-{
- content = newText;
- setText(newText);
-}
-
-void ElidedLabel::resizeEvent(QResizeEvent *event)
-{
- QLabel::resizeEvent(event);
-
- QFontMetrics font = this->fontMetrics();
- QString elidedLine = font.elidedText(content, Qt::ElideRight, width());
- setText(elidedLine);
-}
diff --git a/src/lib/downloads/widgets/elidedlabel.h b/src/lib/downloads/widgets/elidedlabel.h
deleted file mode 100644
index d0f6221..0000000
--- a/src/lib/downloads/widgets/elidedlabel.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-/*
- * This file is part of smolbote. It's copyrighted by the contributors recorded
- * in the version control history of the file, available from its original
- * location: git://neueland.iserlohn-fortress.net/smolbote.git
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#ifndef ELIDEDLABEL_H
-#define ELIDEDLABEL_H
-
-#include <QLabel>
-
-class ElidedLabel : public QLabel
-{
-
-public:
- explicit ElidedLabel(QWidget *parent = nullptr);
-
- void setContent(const QString &text);
- const QString & text() const {
- return content;
- }
- bool isElided() const {
- return elided;
- }
-
-protected:
- void resizeEvent(QResizeEvent *event) override;
-
-private:
- bool elided;
- QString content;
-};
-
-#endif // ELIDEDLABEL_H