added a callback in MainWindow.cpp to display info about hashed files.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@910 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2009-01-04 20:29:55 +00:00
parent 6d6901e6e9
commit 4ee6f4847f
2 changed files with 29 additions and 2 deletions

View File

@ -112,6 +112,23 @@
#define RS_RELEASE_VERSION 1 #define RS_RELEASE_VERSION 1
// This static function is a callback passed to the file hashing thread. As it is called
// from a separate thread without locks, it should not perturbate the interface. That's why
// I'm only using show()/hide() and setText() instead of add/remove widgets.
//
static QLabel *hash_info_label = NULL ;
static void displayHashingInfo(const std::string& s)
{
if(hash_info_label != NULL)
if(s == "")
hash_info_label->hide() ;
else
{
hash_info_label->show() ;
hash_info_label->setText(QString::fromStdString(s)) ;
}
}
/** Constructor */ /** Constructor */
MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags) MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
: RWindow("MainWindow", parent, flags) : RWindow("MainWindow", parent, flags)
@ -309,8 +326,12 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
#endif #endif
peerstatus = new PeerStatus(); peerstatus = new PeerStatus();
statusBar()->addWidget(peerstatus); statusBar()->addWidget(peerstatus);
statusBar()->addPermanentWidget(statusRates = new QLabel(tr("<strong>Down:</strong> 0.00 (kB/s) | <strong>Up:</strong> 0.00 (kB/s) ")));
hash_info_label = new QLabel("") ;
statusBar()->addPermanentWidget(hash_info_label);
hash_info_label->hide() ;
statusBar()->addPermanentWidget(statusRates = new QLabel(tr("<strong>Down:</strong> 0.00 (kB/s) | <strong>Up:</strong> 0.00 (kB/s) ")));
//servicegrp->actions()[0]->setChecked(true); //servicegrp->actions()[0]->setChecked(true);
@ -365,6 +386,10 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
timer->connect(timer, SIGNAL(timeout()), this, SLOT(updateStatus())); timer->connect(timer, SIGNAL(timeout()), this, SLOT(updateStatus()));
timer->start(5113); timer->start(5113);
// Here we're setting the callback responsible for displaying what's happening to
// file hashing.
//
rsFiles->setFileHashingCallback(displayHashingInfo) ;
} }
void MainWindow::updateStatus() void MainWindow::updateStatus()
@ -386,7 +411,6 @@ void MainWindow::updateStatus()
} }
/** Creates a new action associated with a config page. */ /** Creates a new action associated with a config page. */
QAction* MainWindow::createPageAction(QIcon img, QString text, QActionGroup *group) QAction* MainWindow::createPageAction(QIcon img, QString text, QActionGroup *group)
{ {

View File

@ -139,6 +139,9 @@ virtual int SearchBoolExp(Expression * exp, std::list<FileDetail> &results) = 0;
virtual bool ConvertSharedFilePath(std::string path, std::string &fullpath) = 0; virtual bool ConvertSharedFilePath(std::string path, std::string &fullpath) = 0;
virtual void ForceDirectoryCheck() = 0; virtual void ForceDirectoryCheck() = 0;
virtual bool InDirectoryCheck() = 0; virtual bool InDirectoryCheck() = 0;
virtual void setFileHashingCallback( void(*cb)(const std::string&)) = 0;
/*** /***
* Directory Control * Directory Control