1
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:
nowrep 2011-03-29 19:55:21 +02:00
parent 4b30167998
commit 77b31b8f85
7 changed files with 57 additions and 16 deletions

View File

@ -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 \

View File

@ -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");

View File

@ -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();

View File

@ -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();
}

View File

@ -70,6 +70,7 @@ class BookmarksToolbar;
class AutoFillModel;
class MainApplication;
class WebTab;
class AdBlockIcon;
class QupZilla : public QMainWindow
{
Q_OBJECT

View File

@ -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();

View File

@ -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();