File: PlotsViewer.h

package info (click to toggle)
dyssol 1.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,184 kB
  • sloc: cpp: 53,870; sh: 85; python: 59; makefile: 11
file content (62 lines) | stat: -rw-r--r-- 1,396 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* Copyright (c) 2020, Dyssol Development Team.
 * Copyright (c) 2023, DyssolTEC GmbH.
 * All rights reserved. This file is part of Dyssol. See LICENSE file for license information. */

#pragma once

#include "ui_PlotsViewer.h"
#include "QtTable.h"
#include "QtPlot.h"
#include "QtDialog.h"

#define PLOT_LINE_WIDTH	3

class CUnitContainer;

class CPlotsViewer
	: public QWidget
	, public CDyssolBaseWidget
{
	Q_OBJECT

private:
	CUnitContainer* m_pModel;
	CQtTable *m_pTableWidget;	// table for distributions' visualization
	QtPlot::CQtPlot *m_pPlot;	// plot for distributions' visualization
	bool m_bAvoidSignal;

	double m_dSliderBeg;
	double m_dSliderIntervLen;
	int m_iPlot;
	std::vector<int> m_iCurves;

public:
	CPlotsViewer( QWidget *parent = 0 );
	~CPlotsViewer();

	void SetSelectedModel(CUnitContainer* _pModel);
	void SetSelectedPlot( int _nIndex );
	void SetSelectedCurve( int _nIndex );
	void SetSelectedCurve( const std::vector<int>& _vIndexes );

private:
	Ui::CPlotsViewer ui;

	void InitializeConnections();

	void UpdateSlider();
	void UpdateSliderLabel();
	void UpdateSliderLabelName();
	void UpdateSliderPosFromSelectedIndex();
	void UpdateTabWidget();
	void UpdateTable();
	void UpdatePlot();

public slots:
	void UpdateWholeView();
	void setVisible( bool _bVisible ) override;

private slots:
	void SliderPositionChanged( int _nIndex );
	void TabChanged( int _nIndex );
};