mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 23:42:58 +02:00
CProgressWindow: try to reduce effort inside progress display
Should help to reduce some timing side effects with many data amounts. But there could still be more potential.
This commit is contained in:
@@ -79,7 +79,7 @@ void CProgressWindow::Init( signal<void, size_t, size_t, string> *statusSignal,
|
||||
if (globalSignal)
|
||||
*globalSignal->connect(mem_fun(*this, &CProgressWindow::showGlobalStatus));
|
||||
|
||||
global_progress = local_progress = 0;
|
||||
global_progress = local_progress = percent_progress = 0;
|
||||
|
||||
showFooter(false);
|
||||
|
||||
@@ -91,6 +91,8 @@ void CProgressWindow::Init( signal<void, size_t, size_t, string> *statusSignal,
|
||||
status_txt->doPaintBg(false);
|
||||
addWindowItem(status_txt);
|
||||
|
||||
cur_statusText = string();
|
||||
|
||||
//create local_bar object
|
||||
local_bar = getProgressItem();
|
||||
|
||||
@@ -128,10 +130,16 @@ CProgressBar* CProgressWindow::getProgressItem()
|
||||
void CProgressWindow::initStatus(const unsigned int prog, const unsigned int max, const string &statusText, CProgressBar *pBar)
|
||||
{
|
||||
pBar->allowPaint(true);
|
||||
pBar->setValues(prog, (int)max);
|
||||
if (!statusText.empty())
|
||||
showStatusMessageUTF(statusText);
|
||||
pBar->paint(false);
|
||||
unsigned int cur_perc = prog*100/(max+1);
|
||||
if (percent_progress != cur_perc || prog == 0){
|
||||
pBar->setValues(prog, (int)max);
|
||||
if (!statusText.empty() && (cur_statusText != statusText)){
|
||||
showStatusMessageUTF(statusText);
|
||||
cur_statusText = statusText;
|
||||
}
|
||||
pBar->paint(false);
|
||||
percent_progress = cur_perc;
|
||||
}
|
||||
}
|
||||
|
||||
void CProgressWindow::showStatus(const unsigned int prog, const unsigned int max, const string &statusText)
|
||||
|
Reference in New Issue
Block a user