diff --git a/gui/sessionviewer/inc/TProofProgressLog.h b/gui/sessionviewer/inc/TProofProgressLog.h index dd99a1ca9143e4fdc569a53f6b72aa065f49f22c..464ec226ef531d5fe581fa389b1bd301f0884d04 100644 --- a/gui/sessionviewer/inc/TProofProgressLog.h +++ b/gui/sessionviewer/inc/TProofProgressLog.h @@ -43,6 +43,7 @@ private: TGCheckButton *fAllLines; // display all lines button TGSplitButton *fAllWorkers; // display all workers button + Bool_t fFullText; // 0 - when grep was called public: TProofProgressLog(TProofProgressDialog *d, Int_t w = 700, Int_t h = 300); virtual ~TProofProgressLog(); diff --git a/gui/sessionviewer/src/TProofProgressDialog.cxx b/gui/sessionviewer/src/TProofProgressDialog.cxx index 0c25ad50c95a912a226829be6c9dfedf5f46d193..3898f6f24565a2405aef7d0489e5f8edc5cc7647 100644 --- a/gui/sessionviewer/src/TProofProgressDialog.cxx +++ b/gui/sessionviewer/src/TProofProgressDialog.cxx @@ -419,8 +419,11 @@ void TProofProgressDialog::Progress(Long64_t total, Long64_t processed) fStop->SetState(kButtonDisabled); fAbort->SetState(kButtonDisabled); fClose->SetState(kButtonUp); - if (!fKeep) - DoClose(); + if (!fKeep) DoClose(); + + // Set the status to done + fStatus = kDone; + } else { // A negative value for process indicates that we are finished, // no matter whether the processing was complete @@ -460,6 +463,9 @@ void TProofProgressDialog::Progress(Long64_t total, Long64_t processed) fStop->SetState(kButtonDisabled); fAbort->SetState(kButtonDisabled); fClose->SetState(kButtonUp); + + // Set the status to done + fStatus = kDone; } } fPrevProcessed = evproc; @@ -595,8 +601,11 @@ void TProofProgressDialog::Progress(Long64_t total, Long64_t processed, fStop->SetState(kButtonDisabled); fAbort->SetState(kButtonDisabled); fClose->SetState(kButtonUp); - if (!fKeep) - DoClose(); + if (!fKeep) DoClose(); + + // Set the status to done + fStatus = kDone; + } else { // A negative value for process indicates that we are finished, // no matter whether the processing was complete diff --git a/gui/sessionviewer/src/TProofProgressLog.cxx b/gui/sessionviewer/src/TProofProgressLog.cxx index 1b89017610539f83014dc4972a0bf938edfe027b..05b48404138e2a9f6179e6c2e8beb5caa9248cf0 100644 --- a/gui/sessionviewer/src/TProofProgressLog.cxx +++ b/gui/sessionviewer/src/TProofProgressLog.cxx @@ -38,7 +38,8 @@ TProofProgressLog::TProofProgressLog(TProofProgressDialog *d, Int_t w, Int_t h) // Create a window frame for log messages. fDialog = d; - + fProofLog = 0; + fFullText = kTRUE; // use hierarchical cleaning SetCleanup(kDeepCleanup); @@ -273,9 +274,13 @@ void TProofProgressLog::DoLog(Bool_t grep) to = fLinesTo->GetIntNumber(); } if (!grep) { - fProofLog = TProof::Mgr(fDialog->fSessionUrl.Data())->GetSessionLogs(); + if (!fProofLog || !fFullText || fDialog->fStatus==TProofProgressDialog::kRunning){ + fProofLog = TProof::Mgr(fDialog->fSessionUrl.Data())->GetSessionLogs(); + fFullText = kTRUE; + } } else { fProofLog = TProof::Mgr(fDialog->fSessionUrl.Data())->GetSessionLogs(0, 0, greptext.Data()); + fFullText = kFALSE; } TList *selected = new TList; fLogList->GetSelectedEntries(selected);