Commit 45d7e9bd authored by Mathieu Valois's avatar Mathieu Valois
Browse files

Simple masks charts

parent c7615a0c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -87,9 +87,10 @@ private:
    QMessageBox waitBox;
    QVBoxLayout * layoutCharset = nullptr;
    QVBoxLayout * layoutLength = nullptr;
    QVBoxLayout * layoutSimple = nullptr;
    ProgressThread* progressThread = nullptr;
    int firstTime=1;
    double initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity);
    double initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, QPieSeries* pieSimple, QPieSeries* pieAdvanced, double & percentageTotal, double & percentageSecurity);
};


+2 −0
Original line number Diff line number Diff line
@@ -196,6 +196,8 @@ public:
	inline int getNbThreads() const { return nbThread; }
	inline const IntOccurrence& getStatsLength() const { return stats_length; }
	inline const StringOccurrence& getStatsCharsets() const { return stats_charactersets; }
	inline const StringOccurrence& getStatsSimple() const { return stats_simplemasks; }
	inline const StringOccurrence& getStatsAdvanced() const { return stats_advancedmasks; }
	inline const thread_data* getThreadsData() const { return td; }

private:
+43 −2
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ void MainWindow::startGame() {

    delete layoutLength;
    delete layoutCharset;
    delete layoutSimple;

    WorkerThread *workerThread = new WorkerThread(stats);
    connect(workerThread, SIGNAL(resultReady()), this, SLOT(handleResults()));
@@ -198,7 +199,7 @@ void MainWindow::disableWithCount()
    ui->withcountButton->setChecked(false);
}

double MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity) {
double MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, QPieSeries* pieSimple, QPieSeries* pieAdvanced, double & percentageTotal, double & percentageSecurity) {
    double total = stats.getTotalCounter();
    double filter = stats.getTotalFilter();
    percentageTotal = percentage(filter, total);
@@ -246,6 +247,23 @@ double MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCh
        }
    }
    pieCharset->append("Other charsets", nbHideC);

    /* SIMPLE PIECHART */
    multimap<uint64_t, string> reverseS = flip_map<string>(stats.getStatsSimple());
    int top_simple = 0;
    uint64_t nbHideS = 0;

    MapIterator<uint64_t, string> itS;
    for(itS = reverseS.end(); itS != reverseS.begin(); itS--) {
        if (itS == reverseS.end()) continue;
        top_simple++;
        if (top_simple <= 10) {
            pieSimple->append(QString::fromStdString(itS->second), itS->first);
        } else {
            nbHideS += itS->first;
        }
    }
    pieSimple->append("Other charsets", nbHideS);
    return maxPercLength;
}

@@ -278,9 +296,11 @@ void MainWindow::handleResults()

    QBarSeries * barLength = new QBarSeries();
    QPieSeries * pieCharset = new QPieSeries();
    QPieSeries * pieSimple = new QPieSeries();
    QPieSeries * pieAdvanced = new QPieSeries();
    double percentageTotal, percentageSecurity, maxPercLength;

    maxPercLength = initGraphicalStats(barLength, pieCharset, percentageTotal, percentageSecurity);
    maxPercLength = initGraphicalStats(barLength, pieCharset, pieSimple, pieAdvanced, percentageTotal, percentageSecurity);

    /* HISTOGRAM FOR LENGTH */
    QChart *chartL = new QChart();
@@ -322,6 +342,27 @@ void MainWindow::handleResults()
    layoutCharset->addWidget(chartViewC);
    ui->charsetWidget->setLayout(layoutCharset);

    /* PIECHART FOR SIMPLE */
    pieSimple->setLabelsVisible();

    QPieSlice *slice_simple = pieSimple->slices().at(0);
    slice_simple->setExploded();
    slice_simple->setLabelVisible();
    slice_simple->setPen(QPen(Qt::darkGreen, 2));
    slice_simple->setBrush(Qt::green);

    QChart *chartS = new QChart();
    chartS->addSeries(pieSimple);
    chartS->setTitle("Simple masks");
    chartS->legend()->hide();

    QChartView *chartViewS = new QChartView(chartS);
    chartViewS->setRenderHint(QPainter::Antialiasing);

    layoutSimple = new QVBoxLayout();
    layoutSimple->addWidget(chartViewS);
    ui->simpleMasksWidget->setLayout(layoutSimple);


    /* LABELS */

+23 −17
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@
             <x>20</x>
             <y>20</y>
             <width>321</width>
             <height>131</height>
             <height>146</height>
            </rect>
           </property>
           <layout class="QGridLayout" name="gridLayout_3">
@@ -303,40 +303,46 @@
        <property name="frameShadow">
         <enum>QFrame::Raised</enum>
        </property>
        <layout class="QVBoxLayout" name="verticalLayout_3" stretch="0,0,1,1,0">
         <item>
          <widget class="QLabel" name="AnalyzedLabel">
        <layout class="QGridLayout" name="gridLayout" rowstretch="0,0,1,1,0">
         <item row="2" column="0">
          <widget class="QWidget" name="lengthWidget" native="true"/>
         </item>
         <item row="4" column="0">
          <widget class="QLabel" name="resultLabel">
           <property name="text">
            <string/>
           </property>
          </widget>
         </item>
         <item>
         <item row="1" column="0">
          <widget class="QLabel" name="securityLabel">
           <property name="text">
            <string/>
           </property>
          </widget>
         </item>
         <item>
          <widget class="QWidget" name="lengthWidget" native="true">
         <item row="0" column="0">
          <widget class="QLabel" name="AnalyzedLabel">
           <property name="text">
            <string/>
           </property>
          </widget>
         </item>
         <item row="3" column="1">
          <widget class="QWidget" name="advancedMasksWidget" native="true"/>
         </item>
         <item row="2" column="1">
          <widget class="QWidget" name="charsetWidget" native="true">
           <property name="minimumSize">
            <size>
             <width>800</width>
             <width>500</width>
             <height>0</height>
            </size>
           </property>
          </widget>
         </item>
         <item>
          <widget class="QWidget" name="charsetWidget" native="true"/>
         </item>
         <item>
          <widget class="QLabel" name="resultLabel">
           <property name="text">
            <string/>
           </property>
          </widget>
         <item row="3" column="0">
          <widget class="QWidget" name="simpleMasksWidget" native="true"/>
         </item>
        </layout>
       </widget>