[Compbench-devel] CompBenchmarks++/Qt-4/Status Status-Console.cpp, 1.3, 1.4 Status-Console.h, 1.2,
Brought to you by:
xfred
From: Frederic T. <xf...@us...> - 2007-09-12 17:00:50
|
Update of /cvsroot/compbench/CompBenchmarks++/Qt-4/Status In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv10473 Modified Files: Status-Console.cpp Status-Console.h Status.cpp Log Message: Better useability (fatal messages shown, last line is always visible). Index: Status-Console.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/Qt-4/Status/Status-Console.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Status-Console.h 12 Sep 2007 16:24:52 -0000 1.2 --- Status-Console.h 12 Sep 2007 17:00:45 -0000 1.3 *************** *** 5,13 **** #include <UI/UI.h> ! #include <QGroupBox> #include <QPixmap> #include <QLabel> #include <QVBoxLayout> #include <QProgressBar> // Q_DECLARE_METATYPE(CBM::UIMsg) --- 5,14 ---- #include <UI/UI.h> ! // #include <QGroupBox> #include <QPixmap> #include <QLabel> #include <QVBoxLayout> #include <QProgressBar> + #include <QScrollArea> // Q_DECLARE_METATYPE(CBM::UIMsg) *************** *** 15,29 **** namespace CQT { ! class StatusConsole : public QWidget, public CBM::UI { private: Q_OBJECT protected: // virtual class StatusAction *ActionObject(CBM::UIMsg *msg); QVBoxLayout *lay; - virtual std::string MsgLabel(CBM::UIMsg *_msg); virtual class StatusAction *MsgStatus(CBM::UIMsg *_msg); signals: --- 16,35 ---- namespace CQT { ! class StatusConsole : // public QGroupBox, ! public QWidget, public CBM::UI { private: Q_OBJECT + protected: // virtual class StatusAction *ActionObject(CBM::UIMsg *msg); QVBoxLayout *lay; + QScrollArea *sa; virtual class StatusAction *MsgStatus(CBM::UIMsg *_msg); + virtual std::string MsgLabel(CBM::UIMsg *_msg); + + virtual void autoscroll(void); signals: *************** *** 38,42 **** public: ! StatusConsole(QWidget *parent = 0); virtual void Display(CBM::UIMsg *_msg); --- 44,48 ---- public: ! StatusConsole(QScrollArea *_sa, QWidget *parent = 0); virtual void Display(CBM::UIMsg *_msg); Index: Status.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/Qt-4/Status/Status.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Status.cpp 12 Sep 2007 16:24:52 -0000 1.5 --- Status.cpp 12 Sep 2007 17:00:45 -0000 1.6 *************** *** 52,61 **** switch(_status) { ! case CBM::UIMsg::OK: ! ncolor=OK; ! break; ! case CBM::UIMsg::KO: ! ncolor=KO; ! break; } changeColor(ncolor); --- 52,61 ---- switch(_status) { ! case CBM::UIMsg::OK: ! ncolor=OK; ! break; ! case CBM::UIMsg::KO: ! ncolor=KO; ! break; } changeColor(ncolor); Index: Status-Console.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/Qt-4/Status/Status-Console.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Status-Console.cpp 12 Sep 2007 16:24:52 -0000 1.3 --- Status-Console.cpp 12 Sep 2007 17:00:45 -0000 1.4 *************** *** 6,10 **** using namespace CQT; ! StatusConsole::StatusConsole(QWidget *parent) : QWidget(parent), // QGroupBox(parent), --- 6,10 ---- using namespace CQT; ! StatusConsole::StatusConsole(QScrollArea *_sa, QWidget *parent) : QWidget(parent), // QGroupBox(parent), *************** *** 13,18 **** --- 13,21 ---- // setTitle(tr("Message window")); + sa=_sa; lay=new QVBoxLayout(); setLayout(lay); + lay->addWidget(new QLabel("Message board")); + /* int i = 30; while (i--) *************** *** 213,229 **** if (_msg->getFlags()==CBM::UIMsg::Progress) r+=" : "; return(r); } void StatusConsole::uiMessageShow(CBM::UIMsg *msg) { std::string label = MsgLabel(msg); ! if (label!="") { StatusAction *widget = new StatusAction(msg, label, this); - printf("%x d=%d\n", msg, CBM::UI::depth(msg)*16); widget->setContentsMargins(CBM::UI::depth(msg)*16, 0, 0, 0); lay->addWidget(widget); } } --- 216,251 ---- if (_msg->getFlags()==CBM::UIMsg::Progress) r+=" : "; + + if (action(_msg)==CBM::UIMsg::FatalError) { + outputKO(); + } + return(r); } + void StatusConsole::autoscroll(void) + { + int y = 0; + int i, n = lay->count(); + + for(i=0;i<n;i++) { + y+=(lay->itemAt(i)->geometry().height()+8); + } + y+=24; + sa->ensureVisible(0, y); + } + void StatusConsole::uiMessageShow(CBM::UIMsg *msg) { std::string label = MsgLabel(msg); ! if (label!="") { StatusAction *widget = new StatusAction(msg, label, this); widget->setContentsMargins(CBM::UI::depth(msg)*16, 0, 0, 0); lay->addWidget(widget); + + autoscroll(); + // sa->show(); } } *************** *** 237,242 **** act=MsgStatus(msg); ! if (act) act->updateProgress((int)progress(msg)); } --- 259,266 ---- act=MsgStatus(msg); ! if (act) { act->updateProgress((int)progress(msg)); + autoscroll(); + } } *************** *** 276,281 **** if (act) { act->changeStatus(status); ! if (flags(msg)==CBM::UIMsg::Progress) act->updateProgress(100); } } --- 300,307 ---- if (act) { act->changeStatus(status); ! if (flags(msg)==CBM::UIMsg::Progress) { act->updateProgress(100); + } + autoscroll(); } } |