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