18 #include <QFileDialog>
19 #include <QTextStream>
20 #include <QHeaderView>
27 setAcceptDrops(
false);
29 LogText->sortByColumn(1, Qt::DescendingOrder);
31 #if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
32 LogText->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
33 LogText->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
34 LogText->header()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
36 LogText->header()->setResizeMode(0, QHeaderView::ResizeToContents);
37 LogText->header()->setResizeMode(1, QHeaderView::ResizeToContents);
38 LogText->header()->setResizeMode(2, QHeaderView::ResizeToContents);
40 LogText->header()->setStretchLastSection(
true);
51 QString Date = dt.toString(
"dd.MM.yy ");
52 QString Time = dt.toString(
"hh.mm.ss ");
54 QTreeWidgetItem* Item =
new QTreeWidgetItem();
55 Item->setText(0, Date);
56 Item->setText(1, Time);
59 if(msg.contains(
"GO4-*")) level=1;
else
60 if(msg.contains(
"GO4-#")) level=2;
else
61 if(msg.contains(
"GO4-!")) level=3;
67 Item->setText(2,
"Warning");
68 Item->setIcon(0, QIcon(
":/icons/warn.png"));
71 Item->setText(2,
"Error");
72 Item->setIcon(0, QIcon(
":/icons/error.png"));
75 Item->setText(2,
"Info");
76 Item->setIcon(0, QIcon(
":/icons/info.png"));
80 Item->setText(3, msg);
82 LogText->addTopLevelItem(Item);
83 Item->setSelected(
true);
84 LogText->setCurrentItem(Item);
85 LogText->scrollToItem(Item);
90 TList* lst =
dynamic_cast<TList*
>(obj);
92 TListIter iter(lst, kFALSE);
94 while ((obj = iter()) != 0) {
96 if (obj==lst->First())
continue;
98 const char*
msg = obj->GetName();
100 const char* separ = strchr(msg,
':');
101 if ((separ==0) || (strlen(separ)<3))
continue;
103 Long64_t tm = TString(msg, separ-msg).Atoll();
106 #if QT_VERSION < QT_VERSION_CHECK(5,8,0)
107 dt.setTime_t((time_t) tm);
109 dt.setSecsSinceEpoch(tm);
114 if (*separ==
'2') level=2;
else
115 if (*separ==
'3') level=3;
121 AddMessage(QDateTime::currentDateTime(), 0, obj->GetName());
134 QFileDialog fd(
this,
"Save analysis log window", QString(),
135 "Plain text (*.txt)");
136 fd.setFileMode( QFileDialog::AnyFile );
137 fd.setAcceptMode(QFileDialog::AcceptSave);
139 if ( fd.exec() != QDialog::Accepted )
return;
141 QStringList flst = fd.selectedFiles();
142 if (flst.isEmpty())
return;
144 QString fileName = flst[0];
145 if(!fileName.endsWith(
".txt")) fileName.append(
".txt");
146 QFile NewFile(fileName);
147 NewFile.open( QIODevice::ReadWrite | QIODevice::Append );
148 QTextStream t( &NewFile );
150 QTreeWidgetItemIterator it(LogText);
152 QTreeWidgetItem* itm = *it++;
153 t << itm->text(0) <<
" " << itm->text(1) <<
" " << itm->text(3) <<
"\n";
virtual void ClearLogInfo()
void linkedObjectUpdated(const char *linkname, TObject *obj)
void AddMessage(const QDateTime &dt, int level, QString msg)
virtual void SaveLogInfo()
void WorkWithInfo(TGo4Slot *slot)
TGo4LogInfo(QWidget *parent=0, const char *name=0)