mainwindow.h
Go to the documentation of this file.
1 /***************************************************************************
2  SocNetV: Social Network Visualizer
3  version: 2.5
4  Written in Qt
5 
6  mainwindow.h - description
7  -------------------
8  copyright : (C) 2005-2019 by Dimitris B. Kalamaras
9  blog : http://dimitris.apeiro.gr
10  project site : https://socnetv.org
11 
12  ***************************************************************************/
13 
14 /*******************************************************************************
15 * This program is free software: you can redistribute it and/or modify *
16 * it under the terms of the GNU General Public License as published by *
17 * the Free Software Foundation, either version 3 of the License, or *
18 * (at your option) any later version. *
19 * *
20 * This program is distributed in the hope that it will be useful, *
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
23 * GNU General Public License for more details. *
24 * *
25 * You should have received a copy of the GNU General Public License *
26 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
27 *******************************************************************************/
28 
29 #ifndef MAINWINDOW_H
30 #define MAINWINDOW_H
31 
32 
39 #include <QMainWindow>
40 #include <QPrinter>
41 #include <QMessageBox>
42 #include <QStack>
43 #include <QThread>
44 //#include <QMetaType>
45 
46 
47 #include "global.h"
48 
49 #include "graph.h" // needed here for static vars declared in Graph
50 
53 
54 static const QString VERSION="2.5";
55 
56 static const int USER_MSG_INFO=0;
57 static const int USER_MSG_CRITICAL=1;
58 static const int USER_MSG_CRITICAL_NO_NETWORK=2;
59 static const int USER_MSG_CRITICAL_NO_EDGES=3;
60 static const int USER_MSG_QUESTION=4;
61 static const int USER_MSG_QUESTION_CUSTOM=5;
62 
63 
64 typedef QHash <QString, int> H_StrToInt;
65 
66 QT_BEGIN_NAMESPACE
67 class QGraphicsScene;
68 class QMenu;
69 class QAction;
70 class QCheckBox;
71 class QProgressDialog;
72 class QPushButton;
73 class QToolButton;
74 class QLCDNumber;
75 class QSlider;
76 class QComboBox;
77 class QGroupBox;
78 class QTabWidget;
79 class QSpinBox;
80 class QNetworkReply;
81 class QDateTime;
82 class QNetworkAccessManager;
83 QT_END_NAMESPACE
84 
85 using namespace std;
86 
88 
89 class GraphicsWidget;
90 
91 class GraphicsEdge;
92 class GraphicsNode;
93 
94 class Chart;
95 
96 class DialogNodeFind;
97 class DialogNodeEdit;
98 
100 
101 class DialogPreviewFile;
102 
105 class DialogRandScaleFree;
106 class DialogRandRegular;
107 class DialogRandLattice;
108 
113 
114 class DialogWebCrawler;
115 
116 class DialogExportPDF;
117 class DialogExportImage;
118 
119 class DialogSettings;
120 
121 class TextEditor;
122 
123 
124 
133 class MainWindow : public QMainWindow
134 {
135  Q_OBJECT
136 
137  QThread graphThread;
138 
139 public:
140 
141  MainWindow(const QString &f);
142  ~MainWindow();
143 
144  void slotStyleSheetDefault(const bool checked);
145  void slotStyleSheetByName(const QString &sheetFileName);
146 
147  void polishProgressDialog(QProgressDialog* dialog);
148 
149  void initGraph();
150  void terminateThreads(const QString &reason);
151  void initView();
152  void initActions();
153  void initMenuBar();
154  void initToolBar();
155  void initPanels();
156  void initWindowLayout();
157  void initSignalSlots();
158  QMap<QString, QString> initSettings();
159  void saveSettings();
160 
161  void initApp();
162 
163  void initComboBoxes();
164 
165  void setLastPath(const QString &filePath);
166  QString getLastPath();
167  void createFortuneCookies();
168 
169  int activeEdges();
170  int activeNodes();
171 
172 public slots:
173  //NETWORK MENU
174  void slotNetworkNew();
175  void slotNetworkFileChoose(QString m_fileName = QString::null,
176  int m_fileFormat = -1,
177  const bool &checkSelectFileType = true);
178  void slotNetworkFileDialogFileSelected(const QString &fileName);
179  void slotNetworkFileDialogFilterSelected(const QString &filter);
180  void slotNetworkFileDialogRejected();
181  void slotNetworkFileRecentUpdateActions();
182  void slotNetworkAvailableTextCodecs();
183  bool slotNetworkFilePreview(const QString &, const int &);
184  void slotNetworkFileLoad ( const QString, const QString, const int );
185  void slotNetworkFileLoaded(const int &type,
186  const QString &fName=QString::null,
187  const QString &netName=QString::null,
188  const int &totalNodes=0,
189  const int &totalEdges=0,
190  const QString &message=QString::null);
191  void slotNetworkFileLoadRecent();
192  void slotNetworkSavedStatus(const int &status);
193  void slotNetworkFileView();
194  void slotNetworkImportGraphML();
195  void slotNetworkImportPajek();
196  void slotNetworkImportAdjacency();
197  void slotNetworkImportGraphviz();
198  void slotNetworkImportGML();
199  void slotNetworkImportUcinet();
200  void slotNetworkImportEdgeList();
201  void slotNetworkImportTwoModeSM();
202 
203  void slotNetworkChanged(const bool &directed,
204  const int &vertices, const int &edges,
205  const qreal &density);
206  void slotNetworkSave(const int &fileFormat=-1);
207  void slotNetworkSaveAs();
208  void slotNetworkClose();
209  void slotNetworkPrint();
210  void slotNetworkViewSociomatrix();
211  void slotNetworkViewSociomatrixPlotText();
212 
213  bool slotNetworkExportPNG();
214 
215  void slotNetworkExportImageDialog();
216  void slotNetworkExportImage ( const QString &filename,
217  const QByteArray &format,
218  const int &quality,
219  const int &compression
220  );
221 
222  void slotNetworkExportPDFDialog();
223  void slotNetworkExportPDF(QString &pdfName,
224  const QPrinter::Orientation &orientation,
225  const int &dpi,
226  const QPrinter::PrinterMode printerMode);
227  void slotNetworkExportPajek();
228  void slotNetworkExportSM();
229  bool slotNetworkExportDL();
230  bool slotNetworkExportGW();
231  bool slotNetworkExportList();
232  void slotNetworkTextEditor();
233  void slotNetworkDataSetSelect();
234  void slotNetworkDataSetRecreate(const QString);
235 
236  void slotNetworkRandomErdosRenyiDialog();
237  void slotNetworkRandomErdosRenyi( const int N,
238  const QString model,
239  const int edges,
240  const qreal eprob,
241  const QString mode,
242  const bool diag) ;
243  void slotNetworkRandomRegularDialog();
244  void slotNetworkRandomRegular(const int &newNodes, const int &degree,
245  const QString &mode, const bool &diag);
246 
247  void slotNetworkRandomGaussian();
248 
249  void slotNetworkRandomScaleFreeDialog();
250 
251  void slotNetworkRandomScaleFree(const int &newNodes,
252  const int &power,
253  const int &initialNodes,
254  const int &edgesPerStep,
255  const qreal &zeroAppeal,
256  const QString &mode);
257 
258  void slotNetworkRandomSmallWorldDialog();
259 
260  void slotNetworkRandomSmallWorld (const int &newNodes,
261  const int &degree,
262  const qreal &beta,
263  const QString &mode,
264  const bool &diag);
265 
266  void slotNetworkRandomRingLattice();
267 
268  void slotNetworkRandomLatticeDialog();
269  void slotNetworkRandomLattice(const int &newNodes,
270  const int &length,
271  const int &dimension,
272  const int &nei,
273  const QString &mode,
274  const bool &circular);
275 
276  void slotNetworkWebCrawlerDialog();
277 
278  void slotNetworkWebCrawler(const QString &urlSeed,
279  const QStringList &urlPatternsIncluded,
280  const QStringList &urlPatternsExcluded,
281  const QStringList &linkClasses,
282  const int &maxNodes,
283  const int &maxLinksPerPage,
284  const bool &intLinks,
285  const bool &childLinks,
286  const bool &parentLinks,
287  const bool &selfLinks,
288  const bool &extLinksIncluded,
289  const bool &extLinksCrawl,
290  const bool &socialLinks,
291  const bool &delayedRequests);
292 
293  //EDIT MENU
294  void slotEditRelationsClear();
295  void slotEditRelationAdd(QString newRelationName=QString::null,
296  const bool &changeRelation=true);
297  void slotEditRelationChange(const int relIndex=RAND_MAX);
298  void slotEditRelationRename(QString newName=QString::null);
299 
300  void slotEditOpenContextMenu(const QPointF & mPos);
301  void slotEditSelectionChanged (const int &selNodes, const int &selEdges);
302 
303  void slotEditClickOnEmptySpace (const QPointF &p);
304 
305  void slotEditNodeSelectAll();
306  void slotEditNodeSelectNone();
307  void slotEditNodeInfoStatusBar(const int &number,
308  const QPointF &p,
309  const QString &label,
310  const int &inDegree,
311  const int &outDegree,
312  const qreal &clc=0);
313  void slotEditNodePosition(const int &nodeNumber, const int &x, const int &y);
314  void slotEditNodeAdd();
315 
316  void slotEditNodeFindDialog();
317  void slotEditNodeFind(const QStringList &list,
318  const QString &searchType,
319  const QString &indexStr=QString::null);
320  void slotEditNodeRemove();
321  void slotEditNodeOpenContextMenu();
322  void slotEditNodePropertiesDialog();
323  void slotEditNodeProperties( const QString &label,
324  const int &size,
325  const QString &value,
326  const QColor &color,
327  const QString &shape,
328  const QString &iconPath
329  );
330  void slotEditNodeSelectedToClique();
331  void slotEditNodeSelectedToStar();
332  void slotEditNodeSelectedToCycle();
333  void slotEditNodeSelectedToLine();
334  void slotEditNodeColorAll(QColor color=QColor());
335  void slotEditNodeSizeAll(int newSize=0, const bool &normalized=false);
336  void slotEditNodeShape(const int &vertex = 0,
337  QString shape=QString::null,
338  QString nodeIconPath=QString::null);
339  void slotEditNodeNumberSize(int v1=0, int newSize=0, const bool prompt=true);
340  void slotEditNodeNumberDistance(int v1=0, int newSize=0);
341  void slotEditNodeNumbersColor(const int &v1=0, QColor color=QColor());
342  void slotEditNodeLabelSize(const int v1=0, int newSize=0);
343  void slotEditNodeLabelsColor(QColor color=QColor());
344  void slotEditNodeLabelDistance(int v1=0, int newSize=0);
345 
346  void slotEditEdgeClicked (const MyEdge &edge=MyEdge(),
347  const bool &openMenu=false);
348 
349  void slotEditEdgeOpenContextMenu(const QString &str="") ;
350  void slotEditEdgeAdd();
351  void slotEditEdgeCreate (const int &source, const int &target,
352  const qreal &weight=1);
353  void slotEditEdgeRemove();
354  void slotEditEdgeLabel();
355  void slotEditEdgeColor();
356  void slotEditEdgeWeight();
357  void slotEditEdgeColorAll(QColor color=QColor(), const int threshold=RAND_MAX);
358 
359  void slotEditEdgeMode(const int &mode);
360  void slotEditEdgeSymmetrizeAll();
361  void slotEditEdgeSymmetrizeStrongTies();
362  void slotEditEdgeSymmetrizeCocitation();
363  void slotEditEdgeUndirectedAll(const bool &toggle);
364 
365  void slotEditEdgeDichotomizationDialog();
366  void slotEditEdgeDichotomization(const qreal threshold);
367 
368  void slotFilterNodes();
369  void slotEditFilterNodesIsolates(bool checked);
370  void slotEditFilterEdgesByWeightDialog();
371  void slotEditFilterEdgesUnilateral(bool checked);
372 
373  void slotEditTransformNodes2Edges();
374 
375 
376  // LAYOUT MENU
377  void slotLayoutRandom();
378  void slotLayoutRadialRandom();
379 
380  void slotLayoutRadialByProminenceIndex();
381  void slotLayoutRadialByProminenceIndex(QString prominenceIndexName);
382 
383  void slotLayoutLevelByProminenceIndex();
384  void slotLayoutLevelByProminenceIndex(QString prominenceIndexName);
385 
386  void slotLayoutNodeSizeByProminenceIndex();
387  void slotLayoutNodeSizeByProminenceIndex(QString prominenceIndexName);
388 
389  void slotLayoutNodeColorByProminenceIndex();
390  void slotLayoutNodeColorByProminenceIndex(QString prominenceIndexName);
391 
392  void slotLayoutSpringEmbedder();
393  void slotLayoutFruchterman();
394  void slotLayoutKamadaKawai();
395 
396  void slotLayoutColorationStrongStructural();
397  void slotLayoutColorationRegular();
398 
399  void slotLayoutGuides(const bool &toggle);
400 
401  //ANALYSIS MENU
402  void askAboutWeights(const bool userTriggered=false);
403 
404  void slotAnalyzeReciprocity();
405  void slotAnalyzeSymmetryCheck();
406  void slotAnalyzeMatrixAdjacencyInverse();
407  void slotAnalyzeMatrixAdjacencyTranspose();
408  void slotAnalyzeMatrixAdjacencyCocitation();
409  void slotAnalyzeMatrixDegree();
410  void slotAnalyzeMatrixLaplacian();
411  void slotAnalyzeClusteringCoefficient();
412 
413  void slotAnalyzeMatrixDistances();
414  void slotAnalyzeMatrixGeodesics();
415  void slotAnalyzeDistance();
416  void slotAnalyzeDistanceAverage();
417  void slotAnalyzeDiameter();
418  void slotAnalyzeEccentricity();
419 
420  void slotAnalyzeWalksLength();
421  void slotAnalyzeWalksTotal();
422  void slotAnalyzeReachabilityMatrix();
423  void slotAnalyzeConnectedness();
424 
425  void slotAnalyzeCentralityDegree();
426  void slotAnalyzeCentralityCloseness();
427  void slotAnalyzeCentralityClosenessIR();
428  void slotAnalyzeCentralityBetweenness();
429  void slotAnalyzeCentralityInformation();
430  void slotAnalyzeCentralityEigenvector();
431  void slotAnalyzeCentralityStress();
432  void slotAnalyzeCentralityPower();
433  void slotAnalyzeCentralityEccentricity();
434 
435  void slotAnalyzePrestigeDegree();
436  void slotAnalyzePrestigePageRank();
437  void slotAnalyzePrestigeProximity();
438 
439  void slotAnalyzeProminenceDistributionChartUpdate(QAbstractSeries *series,
440  QAbstractAxis *axisX,
441  const qreal &min,
442  const qreal &max,
443  QAbstractAxis *axisY=Q_NULLPTR,
444  const qreal &minF=0,
445  const qreal &maxF=0
446  );
447 
448  void slotAnalyzeCommunitiesCliqueCensus();
449  void slotAnalyzeCommunitiesTriadCensus();
450 
451  void slotAnalyzeStrEquivalenceClusteringHierarchicalDialog();
452  void slotAnalyzeStrEquivalenceClusteringHierarchical(const QString &matrix,
453  const QString &varLocation,
454  const QString &metric,
455  const QString &method,
456  const bool &diagonal=false,
457  const bool &diagram=false);
458 
459  void slotAnalyzeStrEquivalenceDissimilaritiesDialog();
460  void slotAnalyzeStrEquivalenceDissimilaritiesTieProfile(const QString &metric,
461  const QString &varLocation,
462  const bool &diagonal);
463 
464  void slotAnalyzeStrEquivalenceSimilarityMeasureDialog();
465  void slotAnalyzeStrEquivalenceSimilarityByMeasure(const QString &matrix,
466  const QString &varLocation,
467  const QString &measure,
468  const bool &diagonal);
469 
470  void slotAnalyzeStrEquivalencePearsonDialog();
471  void slotAnalyzeStrEquivalencePearson(const QString &matrix,
472  const QString &varLocation,
473  const bool &diagonal=false);
474 
475 
476 
477  //OPTIONS MENU
478  void slotOpenSettingsDialog();
479  void slotOptionsNodeNumbersVisibility(bool toggle);
480  void slotOptionsNodeNumbersInside(bool toggle);
481  void slotOptionsNodeLabelsVisibility(bool toggle);
482  void slotOptionsEdgesVisibility(bool toggle);
483  void slotOptionsEdgeOffsetFromNode(const int &offset,
484  const int &v1=0,
485  const int &v2=0);
486  void slotOptionsEdgeLabelsVisibility(bool toggle);
487  void slotOptionsEdgeWeightNumbersVisibility(bool toggle);
488  void slotOptionsEdgeWeightsDuringComputation(bool);
489  void slotOptionsEdgeThicknessPerWeight(bool toogle);
490  void slotOptionsEdgesBezier(bool toggle);
491  void slotOptionsEdgeArrowsVisibility(bool toggle);
492 
493  void slotOptionsEmbedLogoExporting(bool toggle);
494  void slotOptionsProgressDialogVisibility(bool toggle);
495 
496  void slotOptionsWindowToolbarVisibility(bool toggle);
497  void slotOptionsWindowStatusbarVisibility(bool toggle);
498  void slotOptionsWindowLeftPanelVisibility(bool toggle);
499  void slotOptionsWindowRightPanelVisibility(bool toggle);
500  void slotOptionsWindowFullScreen(bool toogle);
501 
502  void slotOptionsDebugMessages(bool toggle);
503 
504  void slotOptionsBackgroundColor(QColor color=QColor());
505  void slotOptionsBackgroundImageSelect(bool toggle);
506  void slotOptionsBackgroundImage();
507 
508  void slotOptionsCanvasAntialiasing(bool toggle);
509  void slotOptionsCanvasAntialiasingAutoAdjust(const bool &toggle=false);
510  void slotOptionsCanvasSmoothPixmapTransform(const bool &toggle=false);
511  void slotOptionsCanvasSavePainterState(const bool &toggle=false);
512  void slotOptionsCanvasCacheBackground(const bool &toggle=false);
513  void slotOptionsCanvasEdgeHighlighting(const bool &toggle=false);
514 
515  void slotOptionsCanvasUpdateMode(const QString &mode);
516  void slotOptionsCanvasIndexMethod(const QString &method);
517 
518 
519  //HELP MENU
520  void slotHelpTips();
521  void slotHelp();
522  void slotHelpCheckUpdateDialog();
523  void slotHelpCheckUpdateParse(QNetworkReply *reply);
524  void slotHelpCreateTips();
525  void slotHelpAbout();
526  void slotAboutQt();
527  void slotHelpMessageToUserInfo(const QString text=QString::null);
528  void slotHelpMessageToUserError(const QString text=QString::null);
529  int slotHelpMessageToUser(const int type=0,
530  const QString statusMsg=QString::null,
531  const QString text=QString::null,
532  const QString info=QString::null,
533  QMessageBox::StandardButtons buttons=QMessageBox::NoButton,
534  QMessageBox::StandardButton defBtn=QMessageBox::Ok,
535  const QString btn1=QString::null,
536  const QString btn2=QString::null
537  );
538 
539 
540 
541  //Called by Graph to display some message to the user
542  void statusMessage(const QString);
543 
544 
545  //Called from MW, when user highlights something in the toolbox Comboboxes
546  void toolBoxNetworkAutoCreateSelectChanged(const int &selectedIndex);
547  void toolBoxEditNodeSubgraphSelectChanged(const int&selectedIndex);
548  void toolBoxEditEdgeTransformSelectChanged(const int&selectedIndex);
549  void toolBoxAnalysisMatricesSelectChanged(const int&selectedIndex);
550  void toolBoxAnalysisCohesionSelectChanged(const int&selectedIndex);
551  void toolBoxAnalysisStrEquivalenceSelectChanged(const int&selectedIndex);
552  void toolBoxAnalysisProminenceSelectChanged(const int&selectedIndex);
553  void toolBoxAnalysisCommunitiesSelectChanged(const int&selectedIndex);
554  void toolBoxLayoutByIndexApplyBtnPressed();
555  void toolBoxLayoutForceDirectedApplyBtnPressed();
556 
557 
558  void slotProgressBoxCreate(const int &max=0, const QString &msg="Please wait...");
559  void slotProgressBoxDestroy(const int &max=0);
560 
561 protected:
562  void resizeEvent( QResizeEvent * );
563  void closeEvent( QCloseEvent* ce );
564 
565 
566  // void myMessageOutput(QtMsgType type, const char *msg);
567 signals:
568  void signalRelationAddAndChange(const QString &relName, const bool &changeRelation=true);
569  void signalSetReportsDataDir(const QString &dataDir );
570 
571 private:
572 
573  QGraphicsScene *scene;
575 
577 
578  QMap<QString,QString> appSettings;
579 
581 
582  QStringList prominenceIndexList;
583  QStringList recentFiles;
584  QStringList iconPathList;
585  QStringList nodeShapeList;
586 
588 
591 
594 
597 
599 
605 
611 
613  QList<QTextCodec *> codecs;
615 
616  QList<TextEditor *> m_textEditors;
617 
618  QPrinter *printer, *printerPDF;
619 
620  QToolBar *toolBar;
621 
622  QGroupBox *leftPanel, *rightPanel ;
623 
625 
626  QStack<QProgressDialog *> progressDialogs;
627 
628  QMenu *importSubMenu, *exportSubMenu, *editMenu, *analysisMenu, *helpMenu;
629  QMenu *optionsMenu, *colorOptionsMenu, *edgeOptionsMenu, *nodeOptionsMenu;
630  QMenu *editNodeMenu, *editEdgeMenu, *centrlMenu, *viewOptionsMenu, *layoutMenu;
631  QMenu *cohesionMenu, *strEquivalenceMenu, *communitiesMenu, *connectivityMenu;
632  QMenu *matrixMenu;
633  QMenu *networkMenu, *randomNetworkMenu, *filterMenu, *recentFilesSubMenu;
634  QMenu *randomLayoutMenu, *layoutRadialProminenceMenu, *layoutLevelProminenceMenu;
635  QMenu *layoutForceDirectedMenu, *layoutNodeSizeProminenceMenu, *layoutNodeColorProminenceMenu;
637 
638  QComboBox *toolBoxNetworkAutoCreateSelect, *toolBoxEditNodeSubgraphSelect,
639  *toolBoxEditEdgeModeSelect, *toolBoxEditEdgeTransformSelect;
640  QComboBox *toolBoxAnalysisCohesionSelect, *toolBoxAnalysisStrEquivalenceSelect,
641  *toolBoxAnalysisProminenceSelect, *toolBoxAnalysisCommunitiesSelect,
642  *toolBoxAnalysisMatricesSelect;
643  QComboBox *toolBoxLayoutByIndexSelect, *toolBoxLayoutByIndexTypeSelect;
645 
646  QPushButton *toolBoxLayoutByIndexApplyButton, *toolBoxLayoutForceDirectedApplyButton;
647 
648  QAction *zoomInAct,*zoomOutAct,*editRotateRightAct,*editRotateLeftAct, *editResetSlidersAct ;
649  QToolButton *zoomInBtn,*zoomOutBtn,*rotateLeftBtn,*rotateRightBtn, *resetSlidersBtn ;
650 
651  QSlider *zoomSlider, *rotateSlider;
652 
653  QAction *networkNewAct, *networkOpenAct, *networkSaveAct, *networkSaveAsAct,
654  *networkCloseAct, *networkPrintAct,*networkQuitAct;
655  QAction *networkExportImageAct, *networkExportPNGAct, *networkExportPajek,
656  *networkExportPDFAct, *networkExportDLAct, *networkExportGWAct, *networkExportSMAct,
657  *networkExportListAct;
658  QAction *networkImportPajekAct, *networkImportGMLAct, *networkImportAdjAct, *networkImportListAct,
659  *networkImportGraphvizAct , *networkImportUcinetAct, *networkImportTwoModeSM;
660  QAction *networkViewFileAct, *openTextEditorAct, *networkViewSociomatrixAct,
661  *networkDataSetSelectAct, *networkViewSociomatrixPlotAct;
662 
670 
671  QAction *optionsNodeNumbersVisibilityAct, *optionsNodeLabelsVisibilityAct, *optionsNodeNumbersInsideAct;
672  QAction *editNodeSelectNoneAct, *editNodeSelectAllAct;
673  QAction *editNodeSelectedToStarAct, *editNodeSelectedToCycleAct;
674  QAction *editNodeSelectedToLineAct, *editNodeSelectedToCliqueAct;
675  QAction *editNodeFindAct,*editNodeAddAct, *editNodeRemoveAct;
677  QAction *editEdgeAddAct, *editEdgeRemoveAct;
678  QAction *editNodeNumbersSizeAct, *editNodeLabelsSizeAct;
679  QAction *editNodeSizeAllAct, *editNodeShapeAll;
680  QAction *editEdgeLabelAct, *editEdgeColorAct, *editEdgeWeightAct;
681  QAction *filterNodesAct, *editFilterNodesIsolatesAct, *editFilterEdgesByWeightAct;
683  QAction *transformNodes2EdgesAct, *editEdgeSymmetrizeAllAct;
684  QAction *editEdgeSymmetrizeStrongTiesAct, *editEdgeUndirectedAllAct;
686  QAction *editNodeColorAll, *editEdgeColorAllAct,
687  *editNodeNumbersColorAct,*editNodeLabelsColorAct,
688  *editEdgesCocitationAct;
689  QAction *optionsEdgeThicknessPerWeightAct, *optionsEdgeWeightNumbersAct;
691  QAction *optionsEdgeArrowsAct, *drawEdgesBezier, *optionsEdgeWeightConsiderAct;
693  QAction *backgroundImageAct,*changeBackColorAct;
695  QAction *helpAboutApp, *helpAboutQt, *helpApp, *tipsApp;
697  QAction *openSettingsAct;
698 
699  QCheckBox *styleSheetCheck;
700 
702 
703  QAction *netDensity, *analyzeGraphReciprocityAct, *analyzeGraphSymmetryAct;
704  QAction *analyzeGraphDistanceAct, *averGraphDistanceAct;
705  QAction *analyzeMatrixDistancesGeodesicAct, *analyzeMatrixGeodesicsAct;
706  QAction *analyzeGraphDiameterAct, *analyzeGraphEccentricityAct;
708  QAction *analyzeGraphWalksAct,*analyzeGraphWalksTotalAct, *analyzeMatrixReachabilityAct, *analyzeGraphConnectednessAct;
709  QAction *analyzeCommunitiesCliquesAct, *clusteringCoefAct, *analyzeCommunitiesTriadCensusAct;
710  QAction *analyzeMatrixAdjTransposeAct, *analyzeMatrixAdjInvertAct;
712  QAction *analyzeMatrixDegreeAct, *analyzeMatrixLaplacianAct;
713  QAction *analyzeStrEquivalenceClusteringHierarchicalAct, *analyzeStrEquivalencePearsonAct;
715  QAction *cDegreeAct, *cInDegreeAct, *cClosenessAct, *cInfluenceRangeClosenessAct,
716  *cBetweennessAct, *cInformationAct, *cEigenvectorAct, *cPageRankAct,
717  *cStressAct, *cPowerAct, *cEccentAct, *cProximityPrestigeAct;
718  QAction *layoutRandomAct, *layoutRandomRadialAct, *layoutGuidesAct;
719  QAction *layoutRadialProminence_DC_Act, *layoutRadialProminence_DP_Act,
720  *layoutRadialProminence_CC_Act, *layoutRadialProminence_SC_Act, *layoutRadialProminence_EC_Act,
721  *layoutRadialProminence_PC_Act, *layoutRadialProminence_BC_Act, *layoutRadialProminence_IC_Act,
722  *layoutRadialProminence_EVC_Act,
723  *layoutRadialProminence_IRCC_Act,*layoutRadialProminence_PRP_Act, *layoutRadialProminence_PP_Act;
724  QAction *layoutLevelProminence_DC_Act, *layoutLevelProminence_DP_Act,
725  *layoutLevelProminence_CC_Act, *layoutLevelProminence_SC_Act, *layoutLevelProminence_EC_Act,
726  *layoutLevelProminence_PC_Act, *layoutLevelProminence_BC_Act, *layoutLevelProminence_IC_Act,
727  *layoutLevelProminence_EVC_Act,
728  *layoutLevelProminence_IRCC_Act,*layoutLevelProminence_PRP_Act, *layoutLevelProminence_PP_Act;
729  QAction *layoutNodeSizeProminence_DC_Act, *layoutNodeSizeProminence_DP_Act,
730  *layoutNodeSizeProminence_CC_Act, *layoutNodeSizeProminence_SC_Act, *layoutNodeSizeProminence_EC_Act,
731  *layoutNodeSizeProminence_PC_Act, *layoutNodeSizeProminence_BC_Act, *layoutNodeSizeProminence_IC_Act,
732  *layoutNodeSizeProminence_EVC_Act,
733  *layoutNodeSizeProminence_IRCC_Act,*layoutNodeSizeProminence_PRP_Act, *layoutNodeSizeProminence_PP_Act;
734  QAction *layoutNodeColorProminence_DC_Act, *layoutNodeColorProminence_DP_Act,
735  *layoutNodeColorProminence_CC_Act, *layoutNodeColorProminence_SC_Act, *layoutNodeColorProminence_EC_Act,
736  *layoutNodeColorProminence_PC_Act, *layoutNodeColorProminence_BC_Act, *layoutNodeColorProminence_IC_Act,
737  *layoutNodeColorProminence_EVC_Act,
738  *layoutNodeColorProminence_IRCC_Act,*layoutNodeColorProminence_PRP_Act, *layoutNodeColorProminence_PP_Act;
739 
740  QAction *strongColorationAct, *regularColorationAct;
741  QAction *layoutFDP_Eades_Act, *layoutFDP_FR_Act;
743 
744  QAction *editRelationNextAct, *editRelationPreviousAct, *editRelationAddAct;
746  enum { MaxRecentFiles = 5 };
747  QAction *recentFileActs[MaxRecentFiles];
748 
749  QString fileName, previous_fileName, fileNameNoPath, progressMsg;
750  QString settingsFilePath, settingsDir ;
751  QStringList fortuneCookie;
752  QStringList tempFileNameNoPath, tips;
753 
754  int statusBarDuration, progressCounter;
755  int fileType, maxNodes;
757  //QString VERSION;
758 
759  bool inverseWeights, askedAboutWeights;
761  QString initFileCodec;
762 
765 
770 
775 
779 
780 
787 
788  QDateTime actualDateTime, actualDate, actualTime;
789  QTime eTime; //used to time algorithms.
790 
791  QNetworkAccessManager *http;
792  QNetworkReply *reply;
793 
794 };
795 #endif
796 
QLabel * rightPanelClickedNodeOutDegreeLCD
Definition: mainwindow.h:773
DialogSettings * m_settingsDialog
Definition: mainwindow.h:606
QString userSelectedCodecName
Definition: mainwindow.h:614
QAction * editRelationPreviousAct
Definition: mainwindow.h:744
Definition: dialogclusteringhierarchical.h:35
QAction * helpCheckUpdatesApp
Definition: mainwindow.h:696
QString progressMsg
Definition: mainwindow.h:749
DialogExportPDF * m_dialogExportPDF
Definition: mainwindow.h:592
Definition: dialogsettings.h:42
GraphicsWidget * graphicsWidget
Definition: mainwindow.h:574
Definition: dialogdissimilarities.h:35
QAction * changeBackColorAct
Definition: mainwindow.h:693
QLabel * rightPanelClickedNodeInDegreeLCD
Definition: mainwindow.h:772
QAction * openTextEditorAct
Definition: mainwindow.h:660
QSlider * zoomSlider
Definition: mainwindow.h:651
QAction * networkRandomLatticeAct
Definition: mainwindow.h:669
DialogExportImage * m_dialogExportImage
Definition: mainwindow.h:593
QLabel * rightPanelClickedEdgeReciprocalWeightLCD
Definition: mainwindow.h:786
QAction * editNodeNumbersColorAct
Definition: mainwindow.h:686
QGraphicsScene * scene
Definition: mainwindow.h:573
QAction * cStressAct
Definition: mainwindow.h:715
QAction * networkRandomSmallWorldAct
Definition: mainwindow.h:667
QAction * analyzeMatrixReachabilityAct
Definition: mainwindow.h:708
QAction * editEdgeWeightAct
Definition: mainwindow.h:680
QAction * networkImportUcinetAct
Definition: mainwindow.h:658
DialogDissimilarities * m_dialogdissimilarities
Definition: mainwindow.h:609
QMenu * layoutNodeSizeProminenceMenu
Definition: mainwindow.h:635
QAction * editNodeSelectedToLineAct
Definition: mainwindow.h:674
QAction * editEdgeDichotomizeAct
Definition: mainwindow.h:685
QMenu * colorationMenu
Definition: mainwindow.h:636
static const int USER_MSG_CRITICAL_NO_EDGES
Definition: mainwindow.h:59
QAction * editEdgeUndirectedAllAct
Definition: mainwindow.h:684
QAction * networkRandomRegularSameDegreeAct
Definition: mainwindow.h:668
QAction * layoutRandomRadialAct
Definition: mainwindow.h:718
Definition: dialogedgedichotomization.h:36
QAction * layoutLevelProminence_SC_Act
Definition: mainwindow.h:724
DialogDataSetSelect * m_datasetSelectDialog
Definition: mainwindow.h:590
QStringList fortuneCookie
Definition: mainwindow.h:751
The Graph class This is the main class for a Graph, used in conjuction with GraphVertex, Parser and Matrix objects. Graph class methods are the interface to various analysis algorithms GraphVertex class holds each vertex data (colors, strings, statistics, etc) Matrix class holds the adjacency matrix of the network. Parser class loads files of networks.
Definition: graph.h:132
QThread graphThread
Definition: mainwindow.h:137
static const int USER_MSG_CRITICAL
Definition: mainwindow.h:57
qreal randomErdosEdgeProb
Definition: mainwindow.h:760
Definition: dialograndregular.h:37
Definition: chart.h:50
QAction * analyzeMatrixLaplacianAct
Definition: mainwindow.h:712
QMenu * matrixMenu
Definition: mainwindow.h:632
QAction * editFilterEdgesUnilateralAct
Definition: mainwindow.h:682
Definition: dialogexportpdf.h:40
QLabel * rightPanelNodesLCD
Definition: mainwindow.h:767
QLabel * rightPanelClickedEdgeNameLCD
Definition: mainwindow.h:782
QAction * clusteringCoefAct
Definition: mainwindow.h:709
QAction * zoomOutAct
Definition: mainwindow.h:648
int maxNodes
Definition: mainwindow.h:755
QMenu * recentFilesSubMenu
Definition: mainwindow.h:633
QLabel * rightPanelClickedEdgeReciprocalWeightLabel
Definition: mainwindow.h:785
QNetworkAccessManager * http
Definition: mainwindow.h:791
QMenu * randomLayoutMenu
Definition: mainwindow.h:634
QLabel * rightPanelClickedEdgeNameLabel
Definition: mainwindow.h:781
Definition: dialogwebcrawler.h:39
DialogClusteringHierarchical * m_dialogClusteringHierarchical
Definition: mainwindow.h:610
DialogPreviewFile * m_dialogPreviewFile
Definition: mainwindow.h:612
static const int USER_MSG_CRITICAL_NO_NETWORK
Definition: mainwindow.h:58
DialogRandErdosRenyi * m_randErdosRenyiDialog
Definition: mainwindow.h:600
QMenu * optionsMenu
Definition: mainwindow.h:629
QAction * layoutNodeColorProminence_SC_Act
Definition: mainwindow.h:734
QAction * strongColorationAct
Definition: mainwindow.h:740
DialogRandSmallWorld * m_randSmallWorldDialog
Definition: mainwindow.h:601
Graph * activeGraph
Definition: mainwindow.h:576
QLabel * rightPanelClickedNodeLCD
Definition: mainwindow.h:771
Definition: dialogsimilaritypearson.h:35
#define SOCNETV_USE_NAMESPACE
Definition: global.h:11
QAction * editNodePropertiesAct
Definition: mainwindow.h:676
QAction * networkRandomGaussianAct
Definition: mainwindow.h:664
QString initFileCodec
Definition: mainwindow.h:761
QAction * fullScreenModeAct
Definition: mainwindow.h:694
QAction * editRelationRenameAct
Definition: mainwindow.h:745
QComboBox * toolBoxNetworkAutoCreateSelect
Definition: mainwindow.h:638
DialogEdgeDichotomization * m_edgeDichotomizationDialog
Definition: mainwindow.h:598
Definition: dialogranderdosrenyi.h:35
QAction * transformNodes2EdgesAct
Definition: mainwindow.h:683
QList< QTextCodec * > codecs
Definition: mainwindow.h:613
Definition: global.h:136
QComboBox * toolBoxLayoutForceDirectedSelect
Definition: mainwindow.h:644
QMap< QString, QString > appSettings
Definition: mainwindow.h:578
QGroupBox * rightPanel
Definition: mainwindow.h:622
int statusBarDuration
Definition: mainwindow.h:754
Definition: dialognodeedit.h:39
Definition: dialogexportimage.h:38
QAction * editNodeSelectNoneAct
Definition: mainwindow.h:672
DialogRandRegular * m_randRegularDialog
Definition: mainwindow.h:603
DialogWebCrawler * m_WebCrawlerDialog
Definition: mainwindow.h:589
QLabel * rightPanelSelectedNodesLCD
Definition: mainwindow.h:776
QDateTime actualTime
Definition: mainwindow.h:788
QMenu * importSubMenu
Definition: mainwindow.h:628
QStringList prominenceIndexList
Definition: mainwindow.h:582
Definition: dialognodefind.h:37
DialogSimilarityPearson * m_dialogSimilarityPearson
Definition: mainwindow.h:607
static const QString VERSION
Definition: mainwindow.h:54
DialogNodeFind * m_nodeFindDialog
Definition: mainwindow.h:596
QAction * optionsNodeNumbersVisibilityAct
Definition: mainwindow.h:671
QLabel * rightPanelClickedEdgeWeightLCD
Definition: mainwindow.h:784
QAction * networkWebCrawlerAct
Definition: mainwindow.h:701
QLabel * rightPanelClickedEdgeWeightLabel
Definition: mainwindow.h:783
DialogRandLattice * m_randLatticeDialog
Definition: mainwindow.h:604
QAction * analyzeStrEquivalencePearsonAct
Definition: mainwindow.h:713
QLabel * rightPanelSelectedEdgesLCD
Definition: mainwindow.h:777
Definition: graphicsedge.h:60
Definition: dialogdatasetselect.h:35
QLabel * rightPanelEdgesLabel
Definition: mainwindow.h:764
QStringList tips
Definition: mainwindow.h:752
QLabel * rightPanelClickedNodeHeaderLabel
Definition: mainwindow.h:766
QAction * analyzeMatrixAdjTransposeAct
Definition: mainwindow.h:710
QAction * networkRandomErdosRenyiAct
Definition: mainwindow.h:663
QAction * openSettingsAct
Definition: mainwindow.h:697
Chart * miniChart
Definition: mainwindow.h:580
QPushButton * toolBoxLayoutForceDirectedApplyButton
Definition: mainwindow.h:646
QAction * analyzeGraphEccentricityAct
Definition: mainwindow.h:706
Definition: texteditor.h:38
QAction * layoutRadialProminence_SC_Act
Definition: mainwindow.h:719
QAction * editEdgeRemoveAct
Definition: mainwindow.h:677
QAction * editNodeRemoveAct
Definition: mainwindow.h:675
QComboBox * editRelationChangeCombo
Definition: mainwindow.h:624
QAction * analyzeMatrixGeodesicsAct
Definition: mainwindow.h:705
QHash< QString, int > H_StrToInt
Definition: mainwindow.h:64
Definition: dialogsimilaritymatches.h:35
QLabel * rightPanelSelectedEdgesLabel
Definition: mainwindow.h:778
QAction * layoutNodeSizeProminence_SC_Act
Definition: mainwindow.h:729
QTime eTime
Definition: mainwindow.h:789
QToolButton * zoomOutBtn
Definition: mainwindow.h:649
DialogFilterEdgesByWeight * m_DialogEdgeFilterByWeight
Definition: mainwindow.h:587
QMenu * strEquivalenceMenu
Definition: mainwindow.h:631
static const int USER_MSG_QUESTION_CUSTOM
Definition: mainwindow.h:61
Definition: dialograndsmallworld.h:35
Definition: dialograndscalefree.h:35
QAction * networkRandomLatticeRingAct
Definition: mainwindow.h:665
Definition: graphicsnode.h:58
QToolBar * toolBar
Definition: mainwindow.h:620
QAction * optionsEdgeWeightNumbersAct
Definition: mainwindow.h:689
QLabel * rightPanelEdgesLCD
Definition: mainwindow.h:768
QStringList recentFiles
Definition: mainwindow.h:583
QAction * tipsApp
Definition: mainwindow.h:695
QStringList iconPathList
Definition: mainwindow.h:584
QMenu * viewOptionsMenu
Definition: mainwindow.h:630
QAction * editNodeSizeAllAct
Definition: mainwindow.h:679
QString settingsFilePath
Definition: mainwindow.h:750
static const int USER_MSG_QUESTION
Definition: mainwindow.h:60
QAction * optionsEdgeLabelsAct
Definition: mainwindow.h:692
Definition: graphicswidget.h:55
QAction * analyzeStrEquivalenceMatchesAct
Definition: mainwindow.h:714
QLabel * rightPanelNetworkTypeLCD
Definition: mainwindow.h:763
QLabel * rightPanelClickedNodeClucofLCD
Definition: mainwindow.h:774
QAction * networkRandomScaleFreeAct
Definition: mainwindow.h:666
DialogSimilarityMatches * m_dialogSimilarityMatches
Definition: mainwindow.h:608
QAction * layoutFDP_KamadaKawai_Act
Definition: mainwindow.h:742
Definition: dialograndlattice.h:38
bool inverseWeights
Definition: mainwindow.h:759
int fortuneCookiesCounter
Definition: mainwindow.h:756
QAction * filterNodesAct
Definition: mainwindow.h:681
QNetworkReply * reply
Definition: mainwindow.h:792
QAction * layoutFDP_FR_Act
Definition: mainwindow.h:741
QCheckBox * styleSheetCheck
Definition: mainwindow.h:699
QPrinter * printerPDF
Definition: mainwindow.h:618
QAction * editNodeSelectedToStarAct
Definition: mainwindow.h:673
Definition: dialogfilteredgesbyweight.h:37
QStack< QProgressDialog * > progressDialogs
Definition: mainwindow.h:626
QLabel * rightPanelDensityLCD
Definition: mainwindow.h:769
QComboBox * toolBoxLayoutByIndexTypeSelect
Definition: mainwindow.h:643
QAction * editNodeNumbersSizeAct
Definition: mainwindow.h:678
QAction * optionsEdgesVisibilityAct
Definition: mainwindow.h:690
static const int USER_MSG_INFO
Definition: mainwindow.h:56
QComboBox * toolBoxAnalysisStrEquivalenceSelect
Definition: mainwindow.h:640
QAction * averGraphDistanceAct
Definition: mainwindow.h:704
Definition: dialogpreviewfile.h:41
QAction * networkExportSMAct
Definition: mainwindow.h:655
QAction * optionsEdgeWeightConsiderAct
Definition: mainwindow.h:691
QAction * netDensity
Definition: mainwindow.h:703
The base window of SocNetV contains all widgets and functionality.
Definition: mainwindow.h:133
DialogNodeEdit * m_nodeEditDialog
Definition: mainwindow.h:595
QStringList nodeShapeList
Definition: mainwindow.h:585
QAction * analyzeStrEquivalenceTieProfileDissimilaritiesAct
Definition: mainwindow.h:707
DialogRandScaleFree * m_randScaleFreeDialog
Definition: mainwindow.h:602
QList< TextEditor * > m_textEditors
Definition: mainwindow.h:616
QAction * networkSaveAsAct
Definition: mainwindow.h:653
QAction * analyzeMatrixAdjCocitationAct
Definition: mainwindow.h:711