mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 10:46:35 +01:00
Download manager will now ask if you want or don't want delete file when
stopping download. Also fixed bug when you can close download manager window when there is no main windows and thus losing your download
This commit is contained in:
parent
4b30167998
commit
77b31b8f85
@ -106,7 +106,8 @@ SOURCES += main.cpp\
|
||||
adblock/adblocknetwork.cpp \
|
||||
adblock/adblockmanager.cpp \
|
||||
adblock/adblockdialog.cpp \
|
||||
adblock/adblockblockednetworkreply.cpp
|
||||
adblock/adblockblockednetworkreply.cpp \
|
||||
adblock/adblockicon.cpp
|
||||
|
||||
HEADERS += 3rdparty/squeezelabel.h \
|
||||
3rdparty/qtwin.h \
|
||||
@ -172,7 +173,8 @@ HEADERS += 3rdparty/squeezelabel.h \
|
||||
adblock/adblocknetwork.h \
|
||||
adblock/adblockmanager.h \
|
||||
adblock/adblockdialog.h \
|
||||
adblock/adblockblockednetworkreply.h
|
||||
adblock/adblockblockednetworkreply.h \
|
||||
adblock/adblockicon.h
|
||||
|
||||
FORMS += \
|
||||
preferences/autofillmanager.ui \
|
||||
|
@ -138,7 +138,8 @@ MainApplication::MainApplication(int &argc, char **argv)
|
||||
networkManager()->loadCertExceptions();
|
||||
plugins()->loadPlugins();
|
||||
loadSettings();
|
||||
QApplication::restoreOverrideCursor();
|
||||
|
||||
QTimer::singleShot(2000, this, SLOT(restoreCursor()));
|
||||
}
|
||||
|
||||
void MainApplication::loadSettings()
|
||||
@ -414,8 +415,6 @@ void MainApplication::aboutToCloseWindow(QupZilla* window)
|
||||
return;
|
||||
|
||||
m_mainWindows.removeOne(window);
|
||||
if (m_mainWindows.count() == 0 )
|
||||
quitApplication();
|
||||
}
|
||||
|
||||
//Version of session.dat file
|
||||
@ -443,13 +442,13 @@ bool MainApplication::saveStateSlot()
|
||||
stream << m_mainWindows.at(i)->saveState();
|
||||
}
|
||||
file.close();
|
||||
getWindow()->tabWidget()->savePinnedTabs();
|
||||
|
||||
settings.setValue("restoreSession",true);
|
||||
settings.endGroup();
|
||||
|
||||
QupZilla* qupzilla_ = getWindow();
|
||||
if (qupzilla_) {
|
||||
qupzilla_->tabWidget()->savePinnedTabs();
|
||||
settings.setValue("Browser-View-Settings/showBookmarksToolbar",qupzilla_->bookmarksToolbar()->isVisible());
|
||||
settings.setValue("Browser-View-Settings/showNavigationToolbar",qupzilla_->navigationToolbar()->isVisible());
|
||||
settings.setValue("Browser-View-Settings/showStatusbar",qupzilla_->statusBar()->isVisible());
|
||||
@ -564,7 +563,7 @@ bool MainApplication::checkProfileDir()
|
||||
versionFile.write(QupZilla::VERSION.toAscii());
|
||||
versionFile.close();
|
||||
|
||||
if (rData.contains("0.9.6") || rData.contains("0.9.7")) // Data not changed from this version
|
||||
if (rData.contains("0.9.6") || rData.contains("0.9.7") || rData.contains("0.9.8")) // Data not changed from this version
|
||||
return true;
|
||||
|
||||
dir.mkdir("profiles");
|
||||
|
@ -92,6 +92,9 @@ public slots:
|
||||
signals:
|
||||
void message(MainApplication::MessageType mes, bool state);
|
||||
|
||||
private slots:
|
||||
void restoreCursor() { QApplication::restoreOverrideCursor(); }
|
||||
|
||||
private:
|
||||
void connectDatabase();
|
||||
void translateApp();
|
||||
|
@ -715,13 +715,15 @@ void QupZilla::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
if (mApp->isClosing())
|
||||
return;
|
||||
if (mApp->windowCount() == 1) {
|
||||
|
||||
mApp->saveStateSlot();
|
||||
mApp->aboutToCloseWindow(this);
|
||||
|
||||
if (mApp->windowCount() == 0) {
|
||||
quitApp() ? event->accept() : event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
mApp->aboutToCloseWindow(this);
|
||||
mApp->saveStateSlot();
|
||||
event->accept();
|
||||
}
|
||||
|
||||
|
@ -70,6 +70,7 @@ class BookmarksToolbar;
|
||||
class AutoFillModel;
|
||||
class MainApplication;
|
||||
class WebTab;
|
||||
class AdBlockIcon;
|
||||
class QupZilla : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -18,6 +18,8 @@
|
||||
#include "downloaditem.h"
|
||||
#include "ui_downloaditem.h"
|
||||
|
||||
//#define DOWNMANAGER_DEBUG
|
||||
|
||||
DownloadItem::DownloadItem(QListWidgetItem* item, QNetworkReply* reply, QString path, QString fileName, QPixmap fileIcon, bool openAfterFinishedDownload, QWidget* parent)
|
||||
: QWidget(parent)
|
||||
,ui(new Ui::DownloadItem)
|
||||
@ -28,6 +30,9 @@ DownloadItem::DownloadItem(QListWidgetItem* item, QNetworkReply* reply, QString
|
||||
,m_downloading(false)
|
||||
,m_openAfterFinish(openAfterFinishedDownload)
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__ << item << reply << path << fileName;
|
||||
#endif
|
||||
QString fullPath = path+fileName;
|
||||
if (QFile::exists(fullPath))
|
||||
QFile::remove(fullPath);
|
||||
@ -51,6 +56,8 @@ DownloadItem::DownloadItem(QListWidgetItem* item, QNetworkReply* reply, QString
|
||||
|
||||
setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(customContextMenuRequested(QPoint)));
|
||||
|
||||
m_reply->setParent(this);
|
||||
connect(m_reply, SIGNAL(finished()), this, SLOT(finished()));
|
||||
connect(m_reply, SIGNAL(readyRead()), this, SLOT(readyRead()));
|
||||
connect(m_reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(downloadProgress(qint64, qint64)));
|
||||
@ -74,11 +81,14 @@ DownloadItem::DownloadItem(QListWidgetItem* item, QNetworkReply* reply, QString
|
||||
void DownloadItem::metaDataChanged()
|
||||
{
|
||||
QVariant locationHeader = m_reply->header(QNetworkRequest::LocationHeader);
|
||||
QMessageBox::information(this, "Meta Data Changed", QString("Meta data changed feature unimplemented yet, sorry.\n URL: '%̈́'").arg(locationHeader.toUrl().toString()));
|
||||
QMessageBox::information(m_item->listWidget()->parentWidget(), "Meta Data Changed", QString("Meta data changed feature unimplemented yet, sorry.\n URL: '%̈́'").arg(locationHeader.toUrl().toString()));
|
||||
}
|
||||
|
||||
void DownloadItem::finished()
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__ << m_reply;
|
||||
#endif
|
||||
m_timer.stop();
|
||||
ui->downloadInfo->setText(tr("Done - %1").arg(m_reply->url().host()));
|
||||
ui->progressBar->hide();
|
||||
@ -99,6 +109,9 @@ void DownloadItem::finished()
|
||||
|
||||
void DownloadItem::downloadProgress(qint64 received, qint64 total)
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__ << received << total;
|
||||
#endif
|
||||
qint64 currentValue = 0;
|
||||
qint64 totalValue = 0;
|
||||
if (total > 0) {
|
||||
@ -164,6 +177,9 @@ QString DownloadItem::fileSizeToString(int size)
|
||||
|
||||
void DownloadItem::updateDownloadInfo(double currSpeed, qint64 received, qint64 total)
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__ << currSpeed << received << total;
|
||||
#endif
|
||||
// QString QString QString QString
|
||||
// | m_remTime | |m_currSize| |m_fileSize| |m_speed|
|
||||
// Remaining 26 minutes - 339MB of 693 MB (350kB/s)
|
||||
@ -183,8 +199,12 @@ void DownloadItem::updateDownloadInfo(double currSpeed, qint64 received, qint64
|
||||
ui->downloadInfo->setText(tr("Remaining %1 - %2 of %3 (%4)").arg(remTime, currSize, fileSize, speed));
|
||||
}
|
||||
|
||||
void DownloadItem::stop()
|
||||
void DownloadItem::stop(bool askForDeleteFile)
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__;
|
||||
#endif
|
||||
m_openAfterFinish = false;
|
||||
m_timer.stop();
|
||||
m_reply->abort();
|
||||
QString outputfile = QFileInfo(m_outputFile).absoluteFilePath();
|
||||
@ -198,9 +218,14 @@ void DownloadItem::stop()
|
||||
ui->button->show();
|
||||
ui->button->hide();
|
||||
#endif
|
||||
|
||||
QFile::remove(outputfile);
|
||||
m_downloading = false;
|
||||
|
||||
if (askForDeleteFile) {
|
||||
QMessageBox::StandardButton button = QMessageBox::question(m_item->listWidget()->parentWidget(), tr("Delete file"), tr("Do you want to also delete dowloaded file?"), QMessageBox::Yes | QMessageBox::No);
|
||||
if (button != QMessageBox::Yes)
|
||||
return;
|
||||
}
|
||||
QFile::remove(outputfile);
|
||||
}
|
||||
|
||||
void DownloadItem::mouseDoubleClickEvent(QMouseEvent* e)
|
||||
@ -247,7 +272,7 @@ void DownloadItem::openFile()
|
||||
if (info.exists())
|
||||
QDesktopServices::openUrl(QUrl::fromLocalFile(info.absoluteFilePath()));
|
||||
else
|
||||
QMessageBox::warning(m_item->listWidget(), tr("Not found"), tr("Sorry, the file \n %1 \n is not found!").arg(info.absoluteFilePath()));
|
||||
QMessageBox::warning(m_item->listWidget()->parentWidget(), tr("Not found"), tr("Sorry, the file \n %1 \n was not found!").arg(info.absoluteFilePath()));
|
||||
}
|
||||
|
||||
void DownloadItem::openFolder()
|
||||
@ -257,6 +282,9 @@ void DownloadItem::openFolder()
|
||||
|
||||
void DownloadItem::readyRead()
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__ ;
|
||||
#endif
|
||||
if (!m_outputFile.isOpen() && !m_outputFile.open(QIODevice::WriteOnly)) {
|
||||
stop();
|
||||
ui->downloadInfo->setText(tr("Error: Cannot write to file!"));
|
||||
@ -267,12 +295,18 @@ void DownloadItem::readyRead()
|
||||
|
||||
void DownloadItem::error(QNetworkReply::NetworkError error)
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__ << error;
|
||||
#endif
|
||||
if (error != QNetworkReply::NoError)
|
||||
ui->downloadInfo->setText(tr("Error: ")+m_reply->errorString());
|
||||
}
|
||||
|
||||
void DownloadItem::updateDownload()
|
||||
{
|
||||
#ifdef DOWNMANAGER_DEBUG
|
||||
qDebug() << __FUNCTION__ ;
|
||||
#endif
|
||||
if (ui->progressBar->maximum() == 0 && m_outputFile.isOpen() && m_reply->isFinished()) {
|
||||
downloadProgress(0,0);
|
||||
finished();
|
||||
|
@ -61,7 +61,7 @@ private slots:
|
||||
void finished();
|
||||
void metaDataChanged();
|
||||
void downloadProgress(qint64 received, qint64 total);
|
||||
void stop();
|
||||
void stop(bool askForDeleteFile = true);
|
||||
void openFile();
|
||||
void openFolder();
|
||||
void readyRead();
|
||||
|
Loading…
Reference in New Issue
Block a user