qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
filetransferwidget.h
Go to the documentation of this file.
1 /*
2  Copyright © 2014-2019 by The qTox Project Contributors
3 
4  This file is part of qTox, a Qt-based graphical interface for Tox.
5 
6  qTox is libre software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  qTox is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with qTox. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #pragma once
21 
22 #include <QTime>
23 #include <QWidget>
24 
26 #include "src/core/toxfile.h"
27 
28 class CoreFile;
29 
30 namespace Ui {
31 class FileTransferWidget;
32 }
33 
34 class QVariantAnimation;
35 class QPushButton;
36 
37 class FileTransferWidget : public QWidget
38 {
39  Q_OBJECT
40 
41 public:
42  explicit FileTransferWidget(QWidget* parent, CoreFile& _coreFile, ToxFile file);
43  virtual ~FileTransferWidget();
44  bool isActive() const;
46 
47 protected:
48  void updateWidgetColor(ToxFile const& file);
49  void updateWidgetText(ToxFile const& file);
50  void updateFileProgress(ToxFile const& file);
51  void updateSignals(ToxFile const& file);
52  void updatePreview(ToxFile const& file);
53  void setupButtons(ToxFile const& file);
54  void handleButton(QPushButton* btn);
55  void showPreview(const QString& filename);
56  void acceptTransfer(const QString& filepath);
57  void setBackgroundColor(const QColor& c, bool whiteFont);
58  void setButtonColor(const QColor& c);
59 
60  bool drawButtonAreaNeeded() const;
61 
62  void paintEvent(QPaintEvent*) final;
63 
64 public slots:
65  void reloadTheme();
66 
67 private slots:
68  void onLeftButtonClicked();
69  void onRightButtonClicked();
71 
72 private:
73  static bool tryRemoveFile(const QString &filepath);
74 
75  void updateWidget(ToxFile const& file);
76  void updateBackgroundColor(const ToxFile::FileStatus status);
77 
78 private:
80  Ui::FileTransferWidget* ui;
82  QVariantAnimation* backgroundColorAnimation = nullptr;
83  QVariantAnimation* buttonColorAnimation = nullptr;
85  QColor buttonColor;
87 
88  bool active;
91 
92 };
FileTransferWidget::~FileTransferWidget
virtual ~FileTransferWidget()
Definition: filetransferwidget.cpp:103
FileTransferWidget
Definition: filetransferwidget.h:37
FileTransferWidget::handleButton
void handleButton(QPushButton *btn)
Definition: filetransferwidget.cpp:447
FileTransferWidget::updateFileProgress
void updateFileProgress(ToxFile const &file)
Definition: filetransferwidget.cpp:309
toxfile.h
FileTransferWidget::setButtonColor
void setButtonColor(const QColor &c)
Definition: filetransferwidget.cpp:167
FileTransferWidget::reloadTheme
void reloadTheme()
Definition: filetransferwidget.cpp:233
FileTransferWidget::buttonColorAnimation
QVariantAnimation * buttonColorAnimation
Definition: filetransferwidget.h:83
HistMessageContentType::file
@ file
ToxFile::FileStatus
FileStatus
Definition: toxfile.h:36
FileTransferWidget::setupButtons
void setupButtons(ToxFile const &file)
Definition: filetransferwidget.cpp:372
FileTransferWidget::onPreviewButtonClicked
void onPreviewButtonClicked()
Definition: filetransferwidget.cpp:499
FileTransferWidget::lastTransmissionUpdate
QTime lastTransmissionUpdate
Definition: filetransferwidget.h:89
FileTransferWidget::lastStatus
ToxFile::FileStatus lastStatus
Definition: filetransferwidget.h:90
FileTransferWidget::updateWidgetColor
void updateWidgetColor(ToxFile const &file)
Definition: filetransferwidget.cpp:238
FileTransferWidget::buttonBackgroundColor
QColor buttonBackgroundColor
Definition: filetransferwidget.h:86
FileTransferWidget::buttonColor
QColor buttonColor
Definition: filetransferwidget.h:85
FileTransferWidget::FileTransferWidget
FileTransferWidget(QWidget *parent, CoreFile &_coreFile, ToxFile file)
Definition: filetransferwidget.cpp:51
FileTransferWidget::active
bool active
Definition: filetransferwidget.h:88
FileTransferWidget::updateBackgroundColor
void updateBackgroundColor(const ToxFile::FileStatus status)
Definition: filetransferwidget.cpp:529
FileTransferWidget::updateWidget
void updateWidget(ToxFile const &file)
Definition: filetransferwidget.cpp:504
chatlinecontent.h
FileTransferWidget::coreFile
CoreFile & coreFile
Definition: filetransferwidget.h:79
FileTransferWidget::backgroundColor
QColor backgroundColor
Definition: filetransferwidget.h:84
FileTransferWidget::tryRemoveFile
static bool tryRemoveFile(const QString &filepath)
Dangerous way to find out if a path is writable.
Definition: filetransferwidget.cpp:114
Ui
Definition: filetransferwidget.h:30
ToxFile::INITIALIZING
@ INITIALIZING
Definition: toxfile.h:38
FileTransferWidget::acceptTransfer
void acceptTransfer(const QString &filepath)
Definition: filetransferwidget.cpp:132
FileTransferWidget::ui
Ui::FileTransferWidget * ui
Definition: filetransferwidget.h:80
FileTransferWidget::updateSignals
void updateSignals(ToxFile const &file)
Definition: filetransferwidget.cpp:349
FileTransferWidget::fileInfo
ToxFile fileInfo
Definition: filetransferwidget.h:81
FileTransferWidget::updatePreview
void updatePreview(ToxFile const &file)
Definition: filetransferwidget.cpp:284
FileTransferWidget::onLeftButtonClicked
void onLeftButtonClicked()
Definition: filetransferwidget.cpp:489
FileTransferWidget::drawButtonAreaNeeded
bool drawButtonAreaNeeded() const
Definition: filetransferwidget.cpp:176
FileTransferWidget::showPreview
void showPreview(const QString &filename)
Definition: filetransferwidget.cpp:483
FileTransferWidget::setBackgroundColor
void setBackgroundColor(const QColor &c, bool whiteFont)
Definition: filetransferwidget.cpp:151
FileTransferWidget::onFileTransferUpdate
void onFileTransferUpdate(ToxFile file)
Definition: filetransferwidget.cpp:122
FileTransferWidget::isActive
bool isActive() const
Definition: filetransferwidget.cpp:127
FileTransferWidget::backgroundColorAnimation
QVariantAnimation * backgroundColorAnimation
Definition: filetransferwidget.h:82
FileTransferWidget::paintEvent
void paintEvent(QPaintEvent *) final
Definition: filetransferwidget.cpp:182
ToxFile
Definition: toxfile.h:32
CoreFile
Manages the file transfer service of toxcore.
Definition: corefile.h:46
FileTransferWidget::onRightButtonClicked
void onRightButtonClicked()
Definition: filetransferwidget.cpp:494
FileTransferWidget::updateWidgetText
void updateWidgetText(ToxFile const &file)
Definition: filetransferwidget.cpp:247