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