CVS commit by mornfall: Some work on dpkg progress reporting. Not very good yet. Mumble.
M +0 -1 libcapture/dpkgpm.cpp 1.3 M +22 -7 libkapture/dpkgpm.cpp 1.4 M +1 -1 libkapture/kapturemanager.cpp 1.25 M +2 -3 libkapture/kapturemanager.h 1.12 --- kdenonbeta/kdedebian/kapture/libcapture/dpkgpm.cpp #1.2:1.3 @@ -70,5 +70,4 @@ bool DPkgPM::Go () if (! RunScripts ("DPkg::Post-Invoke")) return false; - return true; } return true; --- kdenonbeta/kdedebian/kapture/libkapture/dpkgpm.cpp #1.3:1.4 @@ -48,5 +48,5 @@ bool kapture::DPkgPM::Go () m_prog -> show (); bool ret = capture::DPkgPM::Go (); - delete m_prog; + m_prog -> enableButton (KDialogBase::Ok, true); m_prog = 0; return ret; @@ -56,24 +56,39 @@ void kapture::DPkgPM::dpkgMonitor () { kapp -> processEvents (); - char buf [501]; + char buf [1026]; int rv; - rv = read (m_statusfd, buf, 500); + rv = read (m_statusfd, buf, 1024); if (rv == -1) return; std::cerr << "kapture::DPkgPM::dpkgMonitor ()" << std::endl; - buf [500] = 0; + buf [1024] = 0; buf [rv] = 0; - m_prog -> addMsg (buf); + char *lp = buf; + char *p = buf; + bool c = true; + while (c) { + p ++; + if (*p == 0) c = false; + if (*p == '\n' || *p == 0) { + *p = 0; + m_prog -> addMsg (lp); + lp = p + 1; + } + } } DPkgProg::DPkgProg (QWidget *parent, const char * name) - : KDialogBase (parent, name) + : KDialogBase (parent, name, true, "DPkg progress", Ok|Cancel, Cancel) { setModal (true); m_l = new KListBox (this); + m_l -> setMinimumSize (QSize (500, 400)); setMainWidget (m_l); + enableButton (Cancel, false); + enableButton (Ok, false); } void DPkgProg::addMsg (std::string m) { + if (m != "") m_l -> insertItem (m . c_str ()); } --- kdenonbeta/kdedebian/kapture/libkapture/kapturemanager.cpp #1.24:1.25 @@ -21,5 +21,5 @@ KaptureManager *KaptureManager::s_inst = /* {{{ */ -KaptureManager::KaptureManager () +KaptureManager::KaptureManager (int) { std::cerr << "KaptureManager::KaptureManager ()" << std::endl; --- kdenonbeta/kdedebian/kapture/libkapture/kapturemanager.h #1.11:1.12 @@ -42,5 +42,5 @@ namespace kapture { return s_inst; else - return s_inst = new KaptureManager; + return s_inst = new KaptureManager (0); } enum NotifyLevel { NNone, NError, NWarning, NInfo }; @@ -72,4 +72,5 @@ namespace kapture { void setForwardEnabled (bool); protected: + KaptureManager (int); static KaptureManager *s_inst; QWidget *m_top; // as parent for dialogs @@ -81,6 +82,4 @@ namespace kapture { kapture::PkgSystem *m_pkgSystem; // XXX config (kapture::Config *m_cfg;) - private: - KaptureManager (); };