mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-07-30 17:59:02 -04:00
moved file hashing and download count to new notification system
This commit is contained in:
parent
10bee9f26b
commit
81c1eb227c
12 changed files with 163 additions and 24 deletions
|
@ -18,6 +18,7 @@
|
|||
* *
|
||||
*******************************************************************************/
|
||||
|
||||
#include "retroshare/rsfiles.h"
|
||||
#include "TransferUserNotify.h"
|
||||
#include "gui/notifyqt.h"
|
||||
#include "gui/MainWindow.h"
|
||||
|
@ -27,7 +28,7 @@ TransferUserNotify::TransferUserNotify(QObject *parent) :
|
|||
{
|
||||
newTransferCount = 0;
|
||||
|
||||
connect(NotifyQt::getInstance(), SIGNAL(downloadCompleteCountChanged(int)), this, SLOT(downloadCountChanged(int)));
|
||||
// connect(NotifyQt::getInstance(), SIGNAL(downloadCompleteCountChanged(int)), this, SLOT(downloadCountChanged(int)));
|
||||
}
|
||||
|
||||
bool TransferUserNotify::hasSetting(QString *name, QString *group)
|
||||
|
@ -50,7 +51,17 @@ QIcon TransferUserNotify::getMainIcon(bool hasNew)
|
|||
|
||||
unsigned int TransferUserNotify::getNewCount()
|
||||
{
|
||||
return newTransferCount;
|
||||
std::list<RsFileHash> hashs;
|
||||
rsFiles->FileDownloads(hashs);
|
||||
FileInfo info;
|
||||
|
||||
newTransferCount = 0;
|
||||
|
||||
for(auto hash: hashs)
|
||||
if(rsFiles->FileDetails(hash, RS_FILE_HINTS_DOWNLOAD, info) && info.downloadStatus==FT_STATE_COMPLETE)
|
||||
++newTransferCount;
|
||||
|
||||
return newTransferCount;
|
||||
}
|
||||
|
||||
QString TransferUserNotify::getTrayMessage(bool plural)
|
||||
|
@ -68,8 +79,3 @@ void TransferUserNotify::iconClicked()
|
|||
MainWindow::showWindow(MainWindow::Transfers);
|
||||
}
|
||||
|
||||
void TransferUserNotify::downloadCountChanged(int count)
|
||||
{
|
||||
newTransferCount = count;
|
||||
updateIcon();
|
||||
}
|
||||
|
|
|
@ -32,9 +32,6 @@ public:
|
|||
|
||||
virtual bool hasSetting(QString *name, QString *group);
|
||||
|
||||
private slots:
|
||||
void downloadCountChanged(int count);
|
||||
|
||||
private:
|
||||
virtual QIcon getIcon();
|
||||
virtual QIcon getMainIcon(bool hasNew);
|
||||
|
|
|
@ -1091,6 +1091,28 @@ TransfersDialog::TransfersDialog(QWidget *parent)
|
|||
|
||||
|
||||
registerHelpButton(ui.helpButton,help_str,"TransfersDialog") ;
|
||||
|
||||
mEventHandlerId=0;
|
||||
rsEvents->registerEventsHandler(RsEventType::FILE_TRANSFER, [this](std::shared_ptr<const RsEvent> event) { handleEvent(event); }, mEventHandlerId );
|
||||
}
|
||||
|
||||
void TransfersDialog::handleEvent(std::shared_ptr<const RsEvent> event)
|
||||
{
|
||||
if(event->mType != RsEventType::FILE_TRANSFER)
|
||||
return;
|
||||
|
||||
const RsFileTransferEvent *fe = dynamic_cast<const RsFileTransferEvent*>(event.get());
|
||||
if(!fe)
|
||||
return;
|
||||
|
||||
switch (fe->mFileTransferEventCode)
|
||||
{
|
||||
case RsFileTransferEventCode::DOWNLOAD_COMPLETE:
|
||||
case RsFileTransferEventCode::COMPLETED_FILES_REMOVED:
|
||||
getUserNotify()->updateIcon();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TransfersDialog::~TransfersDialog()
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <set>
|
||||
|
||||
#include <retroshare/rstypes.h>
|
||||
#include <retroshare/rsevents.h>
|
||||
#include "RsAutoUpdatePage.h"
|
||||
|
||||
#include "ui_TransfersDialog.h"
|
||||
|
@ -259,6 +260,7 @@ private:
|
|||
bool controlTransferFile(uint32_t flags);
|
||||
void changePriority(int priority);
|
||||
void setChunkStrategy(FileChunksInfo::ChunkStrategy s) ;
|
||||
void handleEvent(std::shared_ptr<const RsEvent> event);
|
||||
|
||||
QTreeView *downloadList;
|
||||
|
||||
|
@ -273,6 +275,7 @@ private:
|
|||
/** Qt Designer generated object */
|
||||
Ui::TransfersDialog ui;
|
||||
|
||||
RsEventsHandlerId_t mEventHandlerId;
|
||||
public slots:
|
||||
// these four functions add entries to the transfers dialog, and return the row id of the entry modified/added
|
||||
// int addDLItem(int row, const FileInfo &fileInfo);
|
||||
|
|
|
@ -349,6 +349,7 @@ void NotifyQt::notifyDiscInfoChanged()
|
|||
emit discInfoChanged() ;
|
||||
}
|
||||
|
||||
#ifdef TO_REMOVE
|
||||
void NotifyQt::notifyDownloadComplete(const std::string& fileHash)
|
||||
{
|
||||
{
|
||||
|
@ -376,6 +377,7 @@ void NotifyQt::notifyDownloadCompleteCount(uint32_t count)
|
|||
|
||||
emit downloadCompleteCountChanged(count);
|
||||
}
|
||||
#endif
|
||||
|
||||
void NotifyQt::notifyDiskFull(uint32_t loc,uint32_t size_in_mb)
|
||||
{
|
||||
|
|
|
@ -85,8 +85,10 @@ class NotifyQt: public QObject, public NotifyClient
|
|||
virtual void notifyHistoryChanged(uint32_t msgId, int type);
|
||||
|
||||
virtual void notifyDiscInfoChanged() ;
|
||||
#ifdef TO_REMOVE
|
||||
virtual void notifyDownloadComplete(const std::string& fileHash);
|
||||
virtual void notifyDownloadCompleteCount(uint32_t count);
|
||||
#endif
|
||||
virtual bool askForPassword(const std::string& title, const std::string& key_details, bool prev_is_bad, std::string& password, bool &cancelled);
|
||||
virtual bool askForPluginConfirmation(const std::string& plugin_filename, const std::string& plugin_file_hash,bool first_time);
|
||||
|
||||
|
@ -153,8 +155,6 @@ class NotifyQt: public QObject, public NotifyClient
|
|||
void chatMessageReceived(ChatMessage msg);
|
||||
void groupsChanged(int type) const ;
|
||||
void discInfoChanged() const ;
|
||||
void downloadComplete(const QString& /* fileHash */);
|
||||
void downloadCompleteCountChanged(int /* count */);
|
||||
#ifdef REMOVE
|
||||
void forumMsgReadSatusChanged(const QString& forumId, const QString& msgId, int status);
|
||||
void channelMsgReadSatusChanged(const QString& channelId, const QString& msgId, int status);
|
||||
|
|
|
@ -52,7 +52,37 @@ HashingStatus::HashingStatus(QWidget *parent)
|
|||
hashloader->hide();
|
||||
statusHashing->hide();
|
||||
|
||||
connect(NotifyQt::getInstance(), SIGNAL(hashingInfoChanged(const QString&)), SLOT(updateHashingInfo(const QString&)));
|
||||
mEventHandlerId=0;
|
||||
rsEvents->registerEventsHandler(RsEventType::SHARED_DIRECTORIES, [this](std::shared_ptr<const RsEvent> event) { handleEvent(event); }, mEventHandlerId );
|
||||
}
|
||||
|
||||
void HashingStatus::handleEvent(std::shared_ptr<const RsEvent> event)
|
||||
{
|
||||
if(event->mType != RsEventType::SHARED_DIRECTORIES)
|
||||
return;
|
||||
|
||||
const RsSharedDirectoriesEvent *fe = dynamic_cast<const RsSharedDirectoriesEvent*>(event.get());
|
||||
if(!fe)
|
||||
return;
|
||||
|
||||
QString info;
|
||||
|
||||
switch (fe->mEventCode)
|
||||
{
|
||||
case RsSharedDirectoriesEventCode::STARTING_DIRECTORY_SWEEP:
|
||||
info = tr("Examining shared files...");
|
||||
break;
|
||||
case RsSharedDirectoriesEventCode::DIRECTORY_SWEEP_ENDED:
|
||||
break;
|
||||
case RsSharedDirectoriesEventCode::HASHING_FILE:
|
||||
info = tr("Hashing file") + " " + QString::fromUtf8(fe->mMessage.c_str());
|
||||
break;
|
||||
case RsSharedDirectoriesEventCode::SAVING_FILE_INDEX:
|
||||
info = tr("Saving file index...");
|
||||
break;
|
||||
}
|
||||
|
||||
updateHashingInfo(info);
|
||||
}
|
||||
|
||||
HashingStatus::~HashingStatus()
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#define HASHINGSTATUS_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "retroshare/rsevents.h"
|
||||
|
||||
class QLabel;
|
||||
class ElidedLabel;
|
||||
|
@ -37,15 +38,16 @@ public:
|
|||
void setCompactMode(bool compact) {_compactMode = compact; }
|
||||
void mousePressEvent(QMouseEvent *);
|
||||
|
||||
public slots:
|
||||
void updateHashingInfo(const QString&) ;
|
||||
|
||||
private:
|
||||
void updateHashingInfo(const QString& s);
|
||||
void handleEvent(std::shared_ptr<const RsEvent> event);
|
||||
|
||||
ElidedLabel *statusHashing;
|
||||
QLabel *hashloader;
|
||||
QString mLastText ;
|
||||
QMovie *movie;
|
||||
bool _compactMode;
|
||||
RsEventsHandlerId_t mEventHandlerId;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue