Add some indication on the file load process.
authorMilian Wolff <mail@milianw.de>
Wed, 16 Dec 2015 11:56:42 +0000 (12:56 +0100)
committerMilian Wolff <mail@milianw.de>
Wed, 16 Dec 2015 11:56:42 +0000 (12:56 +0100)
gui/mainwindow.cpp
gui/mainwindow.ui
gui/parser.cpp
gui/parser.h

index 5621e52..87c6514 100644 (file)
@@ -77,6 +77,8 @@ MainWindow::MainWindow(QWidget* parent)
             sizeHistogramModel, &HistogramModel::resetData);
     connect(m_parser, &Parser::summaryAvailable,
             m_ui->summary, &QLabel::setText);
+    connect(m_parser, &Parser::progressMessageAvailable,
+            m_ui->progressLabel, &QLabel::setText);
     connect(m_parser, &Parser::topDownDataAvailable,
             m_ui->flameGraphTab, &FlameGraph::setTopDownData);
     connect(m_parser, &Parser::bottomUpDataAvailable,
index c58fa1f..d4dee41 100644 (file)
          </widget>
         </item>
         <item>
+         <widget class="QLabel" name="progressLabel">
+          <property name="text">
+           <string notr="true">Progress Message...</string>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignCenter</set>
+          </property>
+          <property name="wordWrap">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
          <spacer name="verticalSpacer_2">
           <property name="orientation">
            <enum>Qt::Vertical</enum>
index c12de77..bf97556 100644 (file)
@@ -494,17 +494,21 @@ void Parser::parse(const QString& path)
     stream() << make_job([this, path]() {
         const auto stdPath = path.toStdString();
         auto data = make_shared<ParserData>();
+        emit progressMessageAvailable(i18n("parsing data..."));
         data->read(stdPath);
         data->updateStringCache();
 
         emit summaryAvailable(generateSummary(*data));
 
+        emit progressMessageAvailable(i18n("merging allocations..."));
         // merge allocations before modifying the data again
         const auto mergedAllocations = mergeAllocations(*data);
+        emit progressMessageAvailable(i18n("building size histogram..."));
         // also calculate the size histogram
         const auto sizeHistogram = buildSizeHistogram(*data);
         // now data can be modified again for the chart data evaluation
 
+        emit progressMessageAvailable(i18n("building charts..."));
         auto parallel = new Collection;
         *parallel << make_job([this, mergedAllocations, sizeHistogram]() {
             emit bottomUpDataAvailable(mergedAllocations);
index 72e0e46..7aaace3 100644 (file)
@@ -37,6 +37,7 @@ public slots:
     void parse(const QString& path);
 
 signals:
+    void progressMessageAvailable(const QString& progress);
     void summaryAvailable(const QString& summary);
     void bottomUpDataAvailable(const TreeData& data);
     void topDownDataAvailable(const TreeData& data);