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-2018 by Dimitris B. Kalamaras
9  blog : http://dimitris.apeiro.gr
10  project site : http://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 <math.h>
48 
49 #include "graph.h"
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 QT_BEGIN_NAMESPACE
65 class QGraphicsScene;
66 class QMenu;
67 class QAction;
68 class QCheckBox;
69 class QProgressDialog;
70 class QPushButton;
71 class QToolButton;
72 class QLCDNumber;
73 class QSlider;
74 class QComboBox;
75 class QGroupBox;
76 class QTabWidget;
77 class QSpinBox;
78 QT_END_NAMESPACE
79 
80 using namespace std;
81 
82 class GraphicsWidget;
83 class GraphicsEdge;
84 class GraphicsNode;
85 
86 class DialogWebCrawler;
87 class DialogNodeFind;
88 class DialogNodeEdit;
89 class DialogPreviewFile;
97 class DialogRandRegular;
98 class DialogRandLattice;
99 class DialogSettings;
100 class TextEditor;
101 
102 
103 
112 class MainWindow : public QMainWindow
113 {
114  Q_OBJECT
115 
116  QThread graphThread;
117 
118 public:
119 
120 
121  MainWindow(const QString &f);
122  ~MainWindow();
123 
124  void initGraph();
125  void terminateThreads(const QString &reason);
126  void initView();
127  void initActions();
128  void initMenuBar();
129  void initToolBar();
130  void initPanels();
131  void initWindowLayout();
132  void initSignalSlots();
133  QMap<QString, QString> initSettings();
134  void saveSettings();
135 
136  void initApp();
137 
138  void initComboBoxes();
139 
140  void setLastPath(QString filePath);
141  QString getLastPath();
142  void createFortuneCookies();
143 
144  int activeEdges();
145  int activeNodes();
146 
147 
148 
149 public slots:
150  //NETWORK MENU
151  void slotNetworkNew();
152  void slotNetworkFileChoose(QString m_fileName = QString::null,
153  int m_fileFormat = -1,
154  const bool &checkSelectFileType = true);
155  void slotNetworkFileDialogFileSelected(const QString &fileName);
156  void slotNetworkFileDialogFilterSelected(const QString &filter);
157  void slotNetworkFileDialogRejected();
158  void slotNetworkFileRecentUpdateActions();
159  void slotNetworkAvailableTextCodecs();
160  bool slotNetworkFilePreview(const QString &, const int &);
161  void slotNetworkFileLoad ( const QString, const QString, const int );
162  void slotNetworkFileLoaded(const int &type,
163  const QString &fName=QString::null,
164  const QString &netName=QString::null,
165  const int &totalNodes=0,
166  const int &totalEdges=0,
167  const QString &message=QString::null);
168  void slotNetworkFileLoadRecent();
169  void slotNetworkSaved(const int &status);
170  void slotNetworkFileView();
171  void slotNetworkImportGraphML();
172  void slotNetworkImportPajek();
173  void slotNetworkImportSM();
174  void slotNetworkImportDot();
175  void slotNetworkImportGML();
176  void slotNetworkImportDL();
177  void slotNetworkImportEdgeList();
178  void slotNetworkImportTwoModeSM();
179  void slotNetworkChanged(const int &graphStatus, const bool &undirected,
180  const int &vertices, const int &edges,
181  const float &density);
182  void slotNetworkSave(const int &fileFormat=-1);
183  void slotNetworkSaveAs();
184  void slotNetworkClose();
185  void slotNetworkPrint();
186  void slotNetworkViewSociomatrix();
187  void slotNetworkViewSociomatrixPlotText();
188  bool slotNetworkExportBMP();
189  bool slotNetworkExportPNG();
190  bool slotNetworkExportPDF();
191  void slotNetworkExportPajek();
192  void slotNetworkExportSM();
193  bool slotNetworkExportDL();
194  bool slotNetworkExportGW();
195  bool slotNetworkExportList();
196  void slotNetworkTextEditor();
197  void slotNetworkDataSetSelect();
198  void slotNetworkDataSetRecreate(const QString);
199 
200  void slotNetworkRandomErdosRenyiDialog();
201  void slotNetworkRandomErdosRenyi( const int N,
202  const QString model,
203  const int edges,
204  const float eprob,
205  const QString mode,
206  const bool diag) ;
207  void slotNetworkRandomRegularDialog();
208  void slotNetworkRandomRegular(const int &newNodes, const int &degree,
209  const QString &mode, const bool &diag);
210 
211  void slotNetworkRandomGaussian();
212 
213  void slotNetworkRandomScaleFreeDialog();
214 
215  void slotNetworkRandomScaleFree(const int &newNodes,
216  const int &power,
217  const int &initialNodes,
218  const int &edgesPerStep,
219  const float &zeroAppeal,
220  const QString &mode);
221 
222  void slotNetworkRandomSmallWorldDialog();
223 
224  void slotNetworkRandomSmallWorld (const int &newNodes,
225  const int &degree,
226  const float &beta,
227  const QString &mode,
228  const bool &diag);
229 
230  void slotNetworkRandomRingLattice();
231 
232  void slotNetworkRandomLatticeDialog();
233  void slotNetworkRandomLattice(const int &newNodes,
234  const int &length,
235  const int &dimension,
236  const int &nei,
237  const QString &mode,
238  const bool &circular);
239 
240  void slotNetworkWebCrawlerDialog();
241 
242  void slotNetworkWebCrawler(const QString &urlSeed,
243  const QStringList &urlPatternsIncluded,
244  const QStringList &urlPatternsExcluded,
245  const QStringList &linkClasses,
246  const int &maxNodes,
247  const int &maxLinksPerPage,
248  const bool &extLinks,
249  const bool &intLinks,
250  const bool &selfLinks,
251  const bool &delayedRequests);
252 
253  //EDIT MENU
254  void slotEditRelationsClear();
255  void slotEditRelationAdd(QString newRelationName=QString::null,
256  const bool &changeRelation=true);
257  void slotEditRelationChange(const int relIndex=RAND_MAX);
258  void slotEditRelationRename(QString newName=QString::null);
259 
260  void slotEditOpenContextMenu(const QPointF & mPos);
261  void slotEditSelectionChanged (const int &selNodes, const int &selEdges);
262 
263  void slotEditClickOnEmptySpace (const QPointF &p);
264 
265  void slotEditNodeSelectAll();
266  void slotEditNodeSelectNone();
267  void slotEditNodeInfoStatusBar(const int &number,
268  const QPointF &p,
269  const QString &label,
270  const int &inDegree,
271  const int &outDegree,
272  const float &clc=0);
273  void slotEditNodePosition(const int &nodeNumber, const int &x, const int &y);
274  void slotEditNodeAdd();
275 
276  void slotEditNodeFindDialog();
277  void slotEditNodeFind(const QStringList &list,
278  const QString &searchType,
279  const QString &indexStr=QString::null);
280  void slotEditNodeRemove();
281  void slotEditNodeOpenContextMenu();
282  void slotEditNodePropertiesDialog();
283  void slotEditNodeProperties( const QString, const int, const QString,
284  const QColor, const QString);
285  void slotEditNodeSelectedToClique();
286  void slotEditNodeSelectedToStar();
287  void slotEditNodeSelectedToCycle();
288  void slotEditNodeSelectedToLine();
289  void slotEditNodeColorAll(QColor color=QColor());
290  void slotEditNodeSizeAll(int newSize=0, const bool &normalized=false);
291  void slotEditNodeShape(QString shape=QString::null, const int vertex = 0);
292  void slotEditNodeNumberSize(int v1=0, int newSize=0, const bool prompt=true);
293  void slotEditNodeNumberDistance(int v1=0, int newSize=0);
294  void slotEditNodeNumbersColor(QColor color=QColor());
295  void slotEditNodeLabelSize(int v1=0, int newSize=0);
296  void slotEditNodeLabelsColor(QColor color=QColor());
297  void slotEditNodeLabelDistance(int v1=0, int newSize=0);
298 
299  void slotEditEdgeClicked (const int &v1,
300  const int &v2,
301  const float &weight,
302  const int &type,
303  const bool &openMenu=false);
304 
305  void slotEditEdgeOpenContextMenu(const QString &str="") ;
306  void slotEditEdgeAdd();
307  void slotEditEdgeCreate (const int &source, const int &target,
308  const float &weight=1);
309  void slotEditEdgeRemove();
310  void slotEditEdgeLabel();
311  void slotEditEdgeColor();
312  void slotEditEdgeWeight();
313  void slotEditEdgeColorAll(QColor color=QColor(), const int threshold=RAND_MAX);
314 
315  void slotEditEdgeMode(const int &mode);
316  void slotEditEdgeSymmetrizeAll();
317  void slotEditEdgeSymmetrizeStrongTies();
318  void slotEditEdgeSymmetrizeCocitation();
319  void slotEditEdgeUndirectedAll(const bool &toggle);
320 
321  void slotFilterNodes();
322  void slotEditFilterNodesIsolates(bool checked);
323  void slotEditFilterEdgesByWeightDialog();
324  void slotEditFilterEdgesUnilateral(bool checked);
325 
326  void slotEditTransformNodes2Edges();
327 
328 
329  // LAYOUT MENU
330  void slotLayoutRandom();
331  void slotLayoutRadialRandom();
332 
333  void slotLayoutRadialByProminenceIndex();
334  void slotLayoutRadialByProminenceIndex(QString);
335 
336  void slotLayoutLevelByProminenceIndex();
337  void slotLayoutLevelByProminenceIndex(QString);
338 
339  void slotLayoutNodeSizeByProminenceIndex();
340  void slotLayoutNodeSizeByProminenceIndex(QString);
341 
342  void slotLayoutNodeColorByProminenceIndex();
343  void slotLayoutNodeColorByProminenceIndex(QString);
344 
345  void slotLayoutSpringEmbedder();
346  void slotLayoutFruchterman();
347  void slotLayoutKamadaKawai();
348 
349  void slotLayoutColorationStrongStructural();
350  void slotLayoutColorationRegular();
351 
352  void slotLayoutGuides(const bool &toggle);
353 
354  //ANALYSIS MENU
355  void askAboutWeights(const bool userTriggered=false);
356 
357  void slotAnalyzeReciprocity();
358  void slotAnalyzeSymmetryCheck();
359  void slotAnalyzeMatrixAdjacencyInverse();
360  void slotAnalyzeMatrixAdjacencyTranspose();
361  void slotAnalyzeMatrixAdjacencyCocitation();
362  void slotAnalyzeMatrixDegree();
363  void slotAnalyzeMatrixLaplacian();
364  void slotAnalyzeClusteringCoefficient();
365 
366  void slotAnalyzeMatrixDistances();
367  void slotAnalyzeMatrixGeodesics();
368  void slotAnalyzeDistance();
369  void slotAnalyzeDistanceAverage();
370  void slotAnalyzeDiameter();
371  void slotAnalyzeEccentricity();
372 
373  void slotAnalyzeWalksLength();
374  void slotAnalyzeWalksTotal();
375  void slotAnalyzeReachabilityMatrix();
376  void slotAnalyzeConnectedness();
377 
378 
379 
380  void slotAnalyzeCentralityDegree();
381  void slotAnalyzeCentralityCloseness();
382  void slotAnalyzeCentralityClosenessIR();
383  void slotAnalyzeCentralityBetweenness();
384  void slotAnalyzeCentralityInformation();
385  void slotAnalyzeCentralityEigenvector();
386  void slotAnalyzeCentralityStress();
387  void slotAnalyzeCentralityPower();
388  void slotAnalyzeCentralityEccentricity();
389 
390  void slotAnalyzePrestigeDegree();
391  void slotAnalyzePrestigePageRank();
392  void slotAnalyzePrestigeProximity();
393 
394 
395  void slotAnalyzeCommunitiesCliqueCensus();
396  void slotAnalyzeCommunitiesTriadCensus();
397 
398 
399  void slotAnalyzeStrEquivalenceClusteringHierarchicalDialog();
400  void slotAnalyzeStrEquivalenceClusteringHierarchical(const QString &matrix,
401  const QString &varLocation,
402  const QString &metric,
403  const QString &method,
404  const bool &diagonal=false,
405  const bool &diagram=false);
406  void slotAnalyzeStrEquivalenceDissimilaritiesDialog();
407  void slotAnalyzeStrEquivalenceDissimilaritiesTieProfile(const QString &metric,
408  const QString &varLocation,
409  const bool &diagonal);
410 
411  void slotAnalyzeStrEquivalenceSimilarityMeasureDialog();
412  void slotAnalyzeStrEquivalenceSimilarityByMeasure(const QString &matrix,
413  const QString &varLocation,
414  const QString &measure,
415  const bool &diagonal);
416 
417  void slotAnalyzeStrEquivalencePearsonDialog();
418  void slotAnalyzeStrEquivalencePearson(const QString &matrix,
419  const QString &varLocation,
420  const bool &diagonal=false);
421 
422 
423  //OPTIONS MENU
424  void slotOpenSettingsDialog();
425  void slotOptionsNodeNumbersVisibility(bool toggle);
426  void slotOptionsNodeNumbersInside(bool toggle);
427  void slotOptionsNodeLabelsVisibility(bool toggle);
428  void slotOptionsEdgesVisibility(bool toggle);
429  void slotOptionsEdgeOffsetFromNode(const int &offset,
430  const int &v1=0,
431  const int &v2=0);
432  void slotOptionsEdgeLabelsVisibility(bool toggle);
433  void slotOptionsEdgeWeightNumbersVisibility(bool toggle);
434  void slotOptionsEdgeWeightsDuringComputation(bool);
435  void slotOptionsEdgeThicknessPerWeight(bool toogle);
436  void slotOptionsEdgesBezier(bool toggle);
437  void slotOptionsEdgeArrowsVisibility(bool toggle);
438 
439 
440  void slotOptionsEmbedLogoExporting(bool toggle);
441  void slotOptionsProgressDialogVisibility(bool toggle);
442  void slotOptionsToolbarVisibility(bool toggle);
443  void slotOptionsStatusBarVisibility(bool toggle);
444  void slotOptionsLeftPanelVisibility(bool toggle);
445  void slotOptionsRightPanelVisibility(bool toggle);
446  void slotOptionsDebugMessages(bool toggle);
447 
448  void slotOptionsBackgroundColor(QColor color=QColor());
449  void slotOptionsBackgroundImageSelect(bool toggle);
450  void slotOptionsBackgroundImage();
451 
452  void slotOptionsCanvasAntialiasing(bool toggle);
453  void slotOptionsCanvasAntialiasingAutoAdjust(const bool &toggle=false);
454  void slotOptionsCanvasSmoothPixmapTransform(const bool &toggle=false);
455  void slotOptionsCanvasSavePainterState(const bool &toggle=false);
456  void slotOptionsCanvasCacheBackground(const bool &toggle=false);
457  void slotOptionsCanvasEdgeHighlighting(const bool &toggle=false);
458 
459  void slotOptionsCanvasUpdateMode(const QString &mode);
460  void slotOptionsCanvasIndexMethod(const QString &method);
461 
462 
463  //HELP MENU
464  void slotHelpTips();
465  void slotHelp();
466  void slotHelpCheckUpdateDialog();
467  void slotHelpCheckUpdateParse(QNetworkReply *reply);
468  void slotHelpCreateTips();
469  void slotHelpAbout();
470  void slotAboutQt();
471  void slotHelpMessageToUserInfo(const QString text=QString::null);
472  void slotHelpMessageToUserError(const QString text=QString::null);
473  int slotHelpMessageToUser(const int type=0,
474  const QString statusMsg=QString::null,
475  const QString text=QString::null,
476  const QString info=QString::null,
477  QMessageBox::StandardButtons buttons=QMessageBox::NoButton,
478  QMessageBox::StandardButton defBtn=QMessageBox::Ok,
479  const QString btn1=QString::null,
480  const QString btn2=QString::null
481  );
482 
483 
484 
485  //Called by Graph to display some message to the user
486  void statusMessage(const QString);
487 
488 
489  //Called from MW, when user highlights something in the toolbox Comboboxes
490  void toolBoxEditNodeSubgraphSelectChanged(int);
491  void toolBoxEditEdgeSymmetrizeSelectChanged(int);
492  void toolBoxAnalysisMatricesSelectChanged(int);
493  void toolBoxAnalysisCohesionSelectChanged(int);
494  void toolBoxAnalysisStrEquivalenceSelectChanged(int);
495  void toolBoxAnalysisProminenceSelectChanged(int);
496  void toolBoxAnalysisCommunitiesSelectChanged(int);
497  void toolBoxLayoutByIndexApplyBtnPressed();
498  void toolBoxLayoutForceDirectedApplyBtnPressed();
499 
500 
501  void slotProgressBoxCreate(const int &max=0, const QString &msg="Please wait...");
502  void slotProgressBoxDestroy(const int &max=0);
503 
504 protected:
505  void resizeEvent( QResizeEvent * );
506  void closeEvent( QCloseEvent* ce );
507 
508 
509  // void myMessageOutput(QtMsgType type, const char *msg);
510 signals:
511  void signalRelationAddAndChange(const QString &relName, const bool &changeRelation=true);
512 
513 private:
514 
515  QGraphicsScene *scene;
517 
519 
520  QMap<QString,QString> appSettings;
521 
522  QStringList prominenceIndexList;
523 
525 
528 
541 
542 
544  QList<QTextCodec *> codecs;
546 
547 
548  QList<TextEditor *> m_textEditors;
549 
550  QPrinter *printer;
551  QToolBar *toolBar;
552 
553  QGroupBox *leftPanel, *rightPanel ;
554 
556 
557  QStack<QProgressDialog *> progressDialogs;
558 
559  QMenu *importSubMenu, *exportSubMenu, *editMenu, *analysisMenu, *helpMenu;
560  QMenu *optionsMenu, *colorOptionsMenu, *edgeOptionsMenu, *nodeOptionsMenu;
561  QMenu *editNodeMenu, *editEdgeMenu, *centrlMenu, *viewOptionsMenu, *layoutMenu;
562  QMenu *cohesionMenu, *strEquivalenceMenu, *communitiesMenu, *connectivityMenu;
563  QMenu *matrixMenu;
564  QMenu *networkMenu, *randomNetworkMenu, *filterMenu, *recentFilesSubMenu;
565  QMenu *randomLayoutMenu, *layoutRadialProminenceMenu, *layoutLevelProminenceMenu;
566  QMenu *layoutForceDirectedMenu, *layoutNodeSizeProminenceMenu, *layoutNodeColorProminenceMenu;
568  QComboBox *toolBoxEditNodeSubgraphSelect, *toolBoxEditEdgeModeSelect,
569  *toolBoxEditEdgeSymmetrizeSelect, *toolBoxAnalysisCohesionSelect,
570  *toolBoxAnalysisStrEquivalenceSelect,
571  *toolBoxAnalysisProminenceSelect, *toolBoxAnalysisCommunitiesSelect,
572  *toolBoxAnalysisMatricesSelect;
573  QComboBox *toolBoxLayoutByIndexSelect, *toolBoxLayoutByIndexTypeSelect;
575 
576  QPushButton *toolBoxLayoutByIndexApplyButton, *toolBoxLayoutForceDirectedApplyButton;
577 
578  QAction *zoomInAct,*zoomOutAct,*editRotateRightAct,*editRotateLeftAct, *editResetSlidersAct ;
579  QToolButton *zoomInBtn,*zoomOutBtn,*rotateLeftBtn,*rotateRightBtn, *resetSlidersBtn ;
580 
581  QSlider *zoomSlider, *rotateSlider;
582 
583  QAction *networkNew, *networkOpen, *networkSave, *networkSaveAs,
584  *networkClose, *networkPrint,*networkQuit;
585  QAction *networkExportBMP, *networkExportPNG, *networkExportPajek,
586  *networkExportPDF, *networkExportDL, *networkExportGW, *networkExportSM,
587  *networkExportList;
588  QAction *networkImportPajek, *networkImportGML, *networkImportSM, *networkImportList,
589  *networkImportDot , *networkImportDL, *networkImportTwoModeSM;
590  QAction *networkViewFileAct, *openTextEditorAct, *networkViewSociomatrixAct,
591  *networkDataSetSelectAct, *networkViewSociomatrixPlotAct;
592 
600 
601  QAction *optionsNodeNumbersVisibilityAct, *optionsNodeLabelsVisibilityAct, *optionsNodeNumbersInsideAct;
602  QAction *editNodeSelectNoneAct, *editNodeSelectAllAct;
603  QAction *editNodeSelectedToStarAct, *editNodeSelectedToCycleAct;
604  QAction *editNodeSelectedToLineAct, *editNodeSelectedToCliqueAct;
605  QAction *editNodeFindAct,*editNodeAddAct, *editNodeRemoveAct;
607  QAction *editEdgeAddAct, *editEdgeRemoveAct;
608  QAction *editNodeNumbersSizeAct, *editNodeLabelsSizeAct;
609  QAction *editNodeSizeAllAct, *editNodeShapeAll;
610  QAction *editEdgeLabelAct, *editEdgeColorAct, *editEdgeWeightAct;
611  QAction *filterNodesAct, *editFilterNodesIsolatesAct, *editFilterEdgesByWeightAct;
613  QAction *transformNodes2EdgesAct, *editEdgeSymmetrizeAllAct;
614  QAction *editEdgeSymmetrizeStrongTiesAct, *editEdgeUndirectedAllAct;
615  QAction *changeBackColorAct, *editNodeColorAll, *editEdgeColorAllAct,
616  *editNodeNumbersColorAct,*editNodeLabelsColorAct,
617  *editEdgesCocitationAct;
618  QAction *optionsEdgeThicknessPerWeightAct, *optionsEdgeWeightNumbersAct, *optionsEdgesVisibilityAct;
619  QAction *optionsEdgeArrowsAct, *drawEdgesBezier,*optionsEdgeWeightConsiderAct;
621  QAction *backgroundImageAct,*helpAboutApp, *helpAboutQt, *helpApp, *tipsApp;
623  QAction *openSettingsAct;
625 
626  QAction *netDensity, *analyzeGraphReciprocityAct, *analyzeGraphSymmetryAct;
627  QAction *analyzeGraphDistanceAct, *averGraphDistanceAct;
628  QAction *analyzeMatrixDistancesGeodesicAct, *analyzeMatrixGeodesicsAct;
629  QAction *analyzeGraphDiameterAct, *analyzeGraphEccentricityAct;
631  QAction *analyzeGraphWalksAct,*analyzeGraphWalksTotalAct, *analyzeMatrixReachabilityAct, *analyzeGraphConnectednessAct;
632  QAction *analyzeCommunitiesCliquesAct, *clusteringCoefAct, *analyzeCommunitiesTriadCensusAct;
633  QAction *analyzeMatrixAdjTransposeAct, *analyzeMatrixAdjInvertAct;
635  QAction *analyzeMatrixDegreeAct, *analyzeMatrixLaplacianAct;
636  QAction *analyzeStrEquivalenceClusteringHierarchicalAct, *analyzeStrEquivalencePearsonAct;
638  QAction *cDegreeAct, *cInDegreeAct, *cClosenessAct, *cInfluenceRangeClosenessAct,
639  *cBetweennessAct, *cInformationAct, *cEigenvectorAct, *cPageRankAct,
640  *cStressAct, *cPowerAct, *cEccentAct, *cProximityPrestigeAct;
641  QAction *layoutRandomAct, *layoutRandomRadialAct, *layoutGuidesAct;
642  QAction *layoutRadialProminence_DC_Act, *layoutRadialProminence_DP_Act,
643  *layoutRadialProminence_CC_Act, *layoutRadialProminence_SC_Act, *layoutRadialProminence_EC_Act,
644  *layoutRadialProminence_PC_Act, *layoutRadialProminence_BC_Act, *layoutRadialProminence_IC_Act,
645  *layoutRadialProminence_EVC_Act,
646  *layoutRadialProminence_IRCC_Act,*layoutRadialProminence_PRP_Act, *layoutRadialProminence_PP_Act;
647  QAction *layoutLevelProminence_DC_Act, *layoutLevelProminence_DP_Act,
648  *layoutLevelProminence_CC_Act, *layoutLevelProminence_SC_Act, *layoutLevelProminence_EC_Act,
649  *layoutLevelProminence_PC_Act, *layoutLevelProminence_BC_Act, *layoutLevelProminence_IC_Act,
650  *layoutLevelProminence_EVC_Act,
651  *layoutLevelProminence_IRCC_Act,*layoutLevelProminence_PRP_Act, *layoutLevelProminence_PP_Act;
652  QAction *layoutNodeSizeProminence_DC_Act, *layoutNodeSizeProminence_DP_Act,
653  *layoutNodeSizeProminence_CC_Act, *layoutNodeSizeProminence_SC_Act, *layoutNodeSizeProminence_EC_Act,
654  *layoutNodeSizeProminence_PC_Act, *layoutNodeSizeProminence_BC_Act, *layoutNodeSizeProminence_IC_Act,
655  *layoutNodeSizeProminence_EVC_Act,
656  *layoutNodeSizeProminence_IRCC_Act,*layoutNodeSizeProminence_PRP_Act, *layoutNodeSizeProminence_PP_Act;
657  QAction *layoutNodeColorProminence_DC_Act, *layoutNodeColorProminence_DP_Act,
658  *layoutNodeColorProminence_CC_Act, *layoutNodeColorProminence_SC_Act, *layoutNodeColorProminence_EC_Act,
659  *layoutNodeColorProminence_PC_Act, *layoutNodeColorProminence_BC_Act, *layoutNodeColorProminence_IC_Act,
660  *layoutNodeColorProminence_EVC_Act,
661  *layoutNodeColorProminence_IRCC_Act,*layoutNodeColorProminence_PRP_Act, *layoutNodeColorProminence_PP_Act;
662 
663 
664  QAction *strongColorationAct, *regularColorationAct;
665  QAction *layoutFDP_Eades_Act, *layoutFDP_FR_Act;
667 
668  QAction *editRelationNextAct, *editRelationPreviousAct, *editRelationAddAct;
670  enum { MaxRecentFiles = 5 };
671  QAction *recentFileActs[MaxRecentFiles];
672 
673  QString fileName, previous_fileName, fileNameNoPath, progressMsg;
674  QString settingsFilePath, settingsDir ;
675  QStringList fortuneCookie;
676  QStringList tempFileNameNoPath, tips, recentFiles;
677  int statusBarDuration, progressCounter;
678  int fileType, maxNodes;
680  //QString VERSION;
681 
682  bool inverseWeights, askedAboutWeights;
684  QString initFileCodec;
685 
688 
693 
698 
702 
703 
710 
711  QDateTime actualDateTime, actualDate, actualTime;
712  QTime eTime; //used to time algorithms.
713 
714 
715  QNetworkAccessManager *http;
716  QNetworkRequest request;
717  QNetworkReply *reply;
718 
719 };
720 #endif
721 
QLabel * rightPanelClickedNodeOutDegreeLCD
Definition: mainwindow.h:696
DialogSettings * m_settingsDialog
Definition: mainwindow.h:536
QString userSelectedCodecName
Definition: mainwindow.h:545
QAction * editRelationPreviousAct
Definition: mainwindow.h:668
Definition: dialogclusteringhierarchical.h:35
QAction * helpCheckUpdatesApp
Definition: mainwindow.h:622
QString progressMsg
Definition: mainwindow.h:673
Definition: dialogsettings.h:38
GraphicsWidget * graphicsWidget
Definition: mainwindow.h:516
Definition: dialogdissimilarities.h:35
QLabel * rightPanelClickedNodeInDegreeLCD
Definition: mainwindow.h:695
QAction * openTextEditorAct
Definition: mainwindow.h:590
QSlider * zoomSlider
Definition: mainwindow.h:581
QAction * networkRandomLatticeAct
Definition: mainwindow.h:599
QLabel * rightPanelClickedEdgeReciprocalWeightLCD
Definition: mainwindow.h:709
QAction * editNodeNumbersColorAct
Definition: mainwindow.h:615
QGraphicsScene * scene
Definition: mainwindow.h:515
QAction * networkExportSM
Definition: mainwindow.h:585
QAction * cStressAct
Definition: mainwindow.h:638
QAction * networkRandomSmallWorldAct
Definition: mainwindow.h:597
QAction * analyzeMatrixReachabilityAct
Definition: mainwindow.h:631
QAction * editEdgeWeightAct
Definition: mainwindow.h:610
DialogDissimilarities * m_dialogdissimilarities
Definition: mainwindow.h:539
QMenu * layoutNodeSizeProminenceMenu
Definition: mainwindow.h:566
QAction * editNodeSelectedToLineAct
Definition: mainwindow.h:604
QMenu * colorationMenu
Definition: mainwindow.h:567
static const int USER_MSG_CRITICAL_NO_EDGES
Definition: mainwindow.h:59
QAction * editEdgeUndirectedAllAct
Definition: mainwindow.h:614
QAction * networkRandomRegularSameDegreeAct
Definition: mainwindow.h:598
QAction * layoutRandomRadialAct
Definition: mainwindow.h:641
QAction * layoutLevelProminence_SC_Act
Definition: mainwindow.h:647
DialogDataSetSelect * m_datasetSelectDialog
Definition: mainwindow.h:527
QStringList fortuneCookie
Definition: mainwindow.h:675
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:208
QThread graphThread
Definition: mainwindow.h:116
static const int USER_MSG_CRITICAL
Definition: mainwindow.h:57
Definition: dialograndregular.h:37
QAction * analyzeMatrixLaplacianAct
Definition: mainwindow.h:635
QMenu * matrixMenu
Definition: mainwindow.h:563
QAction * editFilterEdgesUnilateralAct
Definition: mainwindow.h:612
QLabel * rightPanelNodesLCD
Definition: mainwindow.h:690
QLabel * rightPanelClickedEdgeNameLCD
Definition: mainwindow.h:705
QAction * clusteringCoefAct
Definition: mainwindow.h:632
QAction * zoomOutAct
Definition: mainwindow.h:578
QAction * networkImportTwoModeSM
Definition: mainwindow.h:588
int maxNodes
Definition: mainwindow.h:678
QMenu * recentFilesSubMenu
Definition: mainwindow.h:564
QLabel * rightPanelClickedEdgeReciprocalWeightLabel
Definition: mainwindow.h:708
QNetworkAccessManager * http
Definition: mainwindow.h:715
QMenu * randomLayoutMenu
Definition: mainwindow.h:565
QLabel * rightPanelClickedEdgeNameLabel
Definition: mainwindow.h:704
Definition: dialogwebcrawler.h:39
DialogClusteringHierarchical * m_dialogClusteringHierarchical
Definition: mainwindow.h:540
DialogPreviewFile * m_dialogPreviewFile
Definition: mainwindow.h:543
static const int USER_MSG_CRITICAL_NO_NETWORK
Definition: mainwindow.h:58
DialogRandErdosRenyi * m_randErdosRenyiDialog
Definition: mainwindow.h:531
QMenu * optionsMenu
Definition: mainwindow.h:560
QAction * layoutNodeColorProminence_SC_Act
Definition: mainwindow.h:657
QAction * strongColorationAct
Definition: mainwindow.h:664
DialogRandSmallWorld * m_randSmallWorldDialog
Definition: mainwindow.h:532
Graph * activeGraph
Definition: mainwindow.h:518
QLabel * rightPanelClickedNodeLCD
Definition: mainwindow.h:694
Definition: dialogsimilaritypearson.h:35
QAction * editNodePropertiesAct
Definition: mainwindow.h:606
QAction * networkRandomGaussianAct
Definition: mainwindow.h:594
QString initFileCodec
Definition: mainwindow.h:684
QAction * editRelationRenameAct
Definition: mainwindow.h:669
Definition: dialogranderdosrenyi.h:35
QAction * transformNodes2EdgesAct
Definition: mainwindow.h:613
QList< QTextCodec * > codecs
Definition: mainwindow.h:544
QComboBox * toolBoxLayoutForceDirectedSelect
Definition: mainwindow.h:574
QMap< QString, QString > appSettings
Definition: mainwindow.h:520
QGroupBox * rightPanel
Definition: mainwindow.h:553
int statusBarDuration
Definition: mainwindow.h:677
Definition: dialognodeedit.h:39
QAction * editNodeSelectNoneAct
Definition: mainwindow.h:602
DialogRandRegular * m_randRegularDialog
Definition: mainwindow.h:534
DialogWebCrawler * m_WebCrawlerDialog
Definition: mainwindow.h:526
QLabel * rightPanelSelectedNodesLCD
Definition: mainwindow.h:699
QNetworkRequest request
Definition: mainwindow.h:716
QDateTime actualTime
Definition: mainwindow.h:711
QMenu * importSubMenu
Definition: mainwindow.h:559
QStringList prominenceIndexList
Definition: mainwindow.h:522
Definition: dialognodefind.h:37
DialogSimilarityPearson * m_dialogSimilarityPearson
Definition: mainwindow.h:537
static const QString VERSION
Definition: mainwindow.h:54
DialogNodeFind * m_nodeFindDialog
Definition: mainwindow.h:530
QAction * optionsNodeNumbersVisibilityAct
Definition: mainwindow.h:601
QLabel * rightPanelClickedEdgeWeightLCD
Definition: mainwindow.h:707
QAction * networkWebCrawlerAct
Definition: mainwindow.h:624
QLabel * rightPanelClickedEdgeWeightLabel
Definition: mainwindow.h:706
DialogRandLattice * m_randLatticeDialog
Definition: mainwindow.h:535
QAction * analyzeStrEquivalencePearsonAct
Definition: mainwindow.h:636
QLabel * rightPanelSelectedEdgesLCD
Definition: mainwindow.h:700
Definition: graphicsedge.h:58
Definition: dialogdatasetselect.h:35
QLabel * rightPanelEdgesLabel
Definition: mainwindow.h:687
QStringList tips
Definition: mainwindow.h:676
QLabel * rightPanelClickedNodeHeaderLabel
Definition: mainwindow.h:689
QAction * analyzeMatrixAdjTransposeAct
Definition: mainwindow.h:633
QAction * networkRandomErdosRenyiAct
Definition: mainwindow.h:593
QAction * openSettingsAct
Definition: mainwindow.h:623
QPushButton * toolBoxLayoutForceDirectedApplyButton
Definition: mainwindow.h:576
QAction * analyzeGraphEccentricityAct
Definition: mainwindow.h:629
Definition: texteditor.h:38
QAction * layoutRadialProminence_SC_Act
Definition: mainwindow.h:642
QAction * editEdgeRemoveAct
Definition: mainwindow.h:607
QAction * editNodeRemoveAct
Definition: mainwindow.h:605
QComboBox * editRelationChangeCombo
Definition: mainwindow.h:555
QAction * analyzeMatrixGeodesicsAct
Definition: mainwindow.h:628
Definition: dialogsimilaritymatches.h:35
QLabel * rightPanelSelectedEdgesLabel
Definition: mainwindow.h:701
QAction * layoutNodeSizeProminence_SC_Act
Definition: mainwindow.h:652
QTime eTime
Definition: mainwindow.h:712
QToolButton * zoomOutBtn
Definition: mainwindow.h:579
DialogFilterEdgesByWeight * m_DialogEdgeFilterByWeight
Definition: mainwindow.h:524
QComboBox * toolBoxEditNodeSubgraphSelect
Definition: mainwindow.h:568
QMenu * strEquivalenceMenu
Definition: mainwindow.h:562
static const int USER_MSG_QUESTION_CUSTOM
Definition: mainwindow.h:61
Definition: dialograndsmallworld.h:35
Definition: dialograndscalefree.h:35
float randomErdosEdgeProb
Definition: mainwindow.h:683
QAction * networkRandomLatticeRingAct
Definition: mainwindow.h:595
Definition: graphicsnode.h:58
QToolBar * toolBar
Definition: mainwindow.h:551
QAction * optionsEdgeWeightNumbersAct
Definition: mainwindow.h:618
QLabel * rightPanelEdgesLCD
Definition: mainwindow.h:691
QPrinter * printer
Definition: mainwindow.h:550
QAction * tipsApp
Definition: mainwindow.h:621
QMenu * viewOptionsMenu
Definition: mainwindow.h:561
QAction * editNodeSizeAllAct
Definition: mainwindow.h:609
QString settingsFilePath
Definition: mainwindow.h:674
static const int USER_MSG_QUESTION
Definition: mainwindow.h:60
QAction * optionsEdgeLabelsAct
Definition: mainwindow.h:620
Definition: graphicswidget.h:59
QAction * analyzeStrEquivalenceMatchesAct
Definition: mainwindow.h:637
QLabel * rightPanelNetworkTypeLCD
Definition: mainwindow.h:686
QAction * networkSaveAs
Definition: mainwindow.h:583
QLabel * rightPanelClickedNodeClucofLCD
Definition: mainwindow.h:697
QAction * networkRandomScaleFreeAct
Definition: mainwindow.h:596
DialogSimilarityMatches * m_dialogSimilarityMatches
Definition: mainwindow.h:538
QAction * layoutFDP_KamadaKawai_Act
Definition: mainwindow.h:666
Definition: dialograndlattice.h:38
bool inverseWeights
Definition: mainwindow.h:682
int fortuneCookiesCounter
Definition: mainwindow.h:679
QAction * filterNodesAct
Definition: mainwindow.h:611
QNetworkReply * reply
Definition: mainwindow.h:717
QAction * layoutFDP_FR_Act
Definition: mainwindow.h:665
QAction * editNodeSelectedToStarAct
Definition: mainwindow.h:603
Definition: dialogfilteredgesbyweight.h:37
QStack< QProgressDialog * > progressDialogs
Definition: mainwindow.h:557
QLabel * rightPanelDensityLCD
Definition: mainwindow.h:692
QComboBox * toolBoxLayoutByIndexTypeSelect
Definition: mainwindow.h:573
QAction * editNodeNumbersSizeAct
Definition: mainwindow.h:608
static const int USER_MSG_INFO
Definition: mainwindow.h:56
QAction * averGraphDistanceAct
Definition: mainwindow.h:627
Definition: dialogpreviewfile.h:41
QAction * optionsEdgeWeightConsiderAct
Definition: mainwindow.h:619
QAction * netDensity
Definition: mainwindow.h:626
The base window of SocNetV contains all widgets and functionality.
Definition: mainwindow.h:112
DialogNodeEdit * m_nodeEditDialog
Definition: mainwindow.h:529
QAction * analyzeStrEquivalenceTieProfileDissimilaritiesAct
Definition: mainwindow.h:630
DialogRandScaleFree * m_randScaleFreeDialog
Definition: mainwindow.h:533
QList< TextEditor * > m_textEditors
Definition: mainwindow.h:548
QAction * analyzeMatrixAdjCocitationAct
Definition: mainwindow.h:634