Author: dmacvicar Date: Tue Jul 10 18:30:57 2007 New Revision: 5957 URL: http://svn.opensuse.org/viewcvs/zypp?rev=5957&view=rev Log: Finalize progress lines with a * so you dont get a random / or \ or | Modified: trunk/zypper/src/AliveCursor.h trunk/zypper/src/zypper-callbacks.cc trunk/zypper/src/zypper-callbacks.h trunk/zypper/src/zypper-source-callbacks.h Modified: trunk/zypper/src/AliveCursor.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/AliveCursor.h?rev=5957&r1=5956&r2=5957&view=diff ============================================================================== --- trunk/zypper/src/AliveCursor.h (original) +++ trunk/zypper/src/AliveCursor.h Tue Jul 10 18:30:57 2007 @@ -49,6 +49,12 @@ return *this; } + AliveCursor & done() + { + _current = '*'; + return *this; + } + private: char _current; }; Modified: trunk/zypper/src/zypper-callbacks.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-callbacks.cc?rev=5957&r1=5956&r2=5957&view=diff ============================================================================== --- trunk/zypper/src/zypper-callbacks.cc (original) +++ trunk/zypper/src/zypper-callbacks.cc Tue Jul 10 18:30:57 2007 @@ -10,13 +10,30 @@ void display_progress (const string& s, int percent) { static AliveCursor cursor; - cout_v << CLEARLN << cursor++ << " " << s; + if ( percent == 100 ) + cout_v << CLEARLN << cursor.done() << " " << s; + else + cout_v << CLEARLN << cursor++ << " " << s; // dont display percents if invalid if (percent >= 0 && percent <= 100) cout_v << " [" << percent << "%]"; cout_v << flush; } +void display_tick (const string& s) { + static AliveCursor cursor; + + cout_v << CLEARLN << cursor++ << " " << s; + cout_v << flush; +} + +void display_done (const string& s) { + static AliveCursor cursor; + + cout_v << CLEARLN << cursor.done() << " " << s; + cout_v << flush; +} + void display_done () { cout_v << endl; } Modified: trunk/zypper/src/zypper-callbacks.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-callbacks.h?rev=5957&r1=5956&r2=5957&view=diff ============================================================================== --- trunk/zypper/src/zypper-callbacks.h (original) +++ trunk/zypper/src/zypper-callbacks.h Tue Jul 10 18:30:57 2007 @@ -22,6 +22,8 @@ }; */ void display_progress (const std::string& s, int percent); +void display_tick (const std::string& s); +void display_done (const std::string& s); // newline if normal progress is on single line void display_done (); Modified: trunk/zypper/src/zypper-source-callbacks.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-source-callbacks.h?rev=5957&r1=5956&r2=5957&view=diff ============================================================================== --- trunk/zypper/src/zypper-source-callbacks.h (original) +++ trunk/zypper/src/zypper-source-callbacks.h Tue Jul 10 18:30:57 2007 @@ -211,6 +211,45 @@ } }; +struct ProgressReportReceiver : public zypp::callback::ReceiveReportzypp::ProgressReport +{ + void tick( const zypp::ProgressData &data ) + { + if ( data.reportAlive() ) + { + display_tick ( data.name() ); + } + else + { + display_progress ( data.name() , data.val() ); + } + + + } + + virtual void start( const zypp::ProgressData &data ) + { tick(data); } + + virtual bool progress( const zypp::ProgressData &data ) + { + tick(data); + return true; + } + +// virtual Action problem( zypp::Repository /*repo*/, Error error, const std::string & description ) +// { +// display_done (); +// display_error (error, description); +// return (Action) read_action_ari (); +// } + + virtual void finish( const zypp::ProgressData &data ) + { + display_done( data.name() ); + } +}; + + struct RepoReportReceiver : public zypp::callback::ReceiveReportzypp::repo::RepoReport { virtual void start( zypp::Repository repo, const std::string & task ) @@ -263,12 +302,14 @@ // ZmartRecipients::ProbeSourceReceive _sourceProbeReport; ZmartRecipients::RepoReportReceiver _repoReport; ZmartRecipients::DownloadResolvableReportReceiver _downloadReport; + ZmartRecipients::ProgressReportReceiver _progressReport; public: SourceCallbacks() { // _sourceProbeReport.connect(); _repoReport.connect(); _downloadReport.connect(); + _progressReport.connect(); } ~SourceCallbacks() @@ -276,6 +317,7 @@ // _sourceProbeReport.disconnect(); _repoReport.disconnect(); _downloadReport.disconnect(); + _progressReport.disconnect(); } }; -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org