File: toolwidgets.h

package info (click to toggle)
texstudio 2.11.2%2Bdebian-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 41,292 kB
  • ctags: 12,405
  • sloc: cpp: 93,072; xml: 10,217; ansic: 4,153; sh: 145; makefile: 56
file content (139 lines) | stat: -rw-r--r-- 3,774 bytes parent folder | download
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/*
	This file contains the dockwidgets at the left/bottom side of txs
*/
#ifndef TOOLWIDGETS_H
#define TOOLWIDGETS_H

#include "mostQtHeaders.h"

#include "titledpanel.h"
#include "logeditor.h"
#include "latexlog.h"
#include "latexlogwidget.h"
#include "searchresultwidget.h"

class PreviewWidget : public QScrollArea
{
	Q_OBJECT

public:
	explicit PreviewWidget(QWidget *parent = 0);

public slots:
	void previewLatex(const QPixmap &previewImage);
	void fitImage(bool fit);
	void centerImage(bool center);
	void scaleImage(double factor);
	void zoomOut();
	void zoomIn();
	void resetZoom();
	void contextMenu(QPoint point);

protected:
	void wheelEvent(QWheelEvent *event);

private:
	QLabel *preViewer;
	double pvscaleFactor;
	bool mCenter;
	bool mFit;
};

class OutputViewWidget: public TitledPanel
{
	Q_OBJECT

public:
	explicit OutputViewWidget(QWidget *parent = 0);

	const QString MESSAGES_PAGE;
	const QString LOG_PAGE;
	const QString PREVIEW_PAGE;
	const QString SEARCH_RESULT_PAGE;

	LatexLogWidget *getLogWidget() { return logWidget; }
	SearchResultWidget *getSearchResultWidget() { return searchResultWidget; }
	bool isPreviewPanelVisible();
	void setMessage(const QString &message); //set the message text (don't change page and no auto-show)
	bool childHasFocus();

	virtual void changeEvent(QEvent *event);

public slots:
	void copy();
	void resetMessages(bool noTabChange = false); //remove all messages and jumps to the message page (stays hidden if not visible)
	void resetMessagesAndLog(bool noTabChange = false);
	void selectLogEntry(int logEntryNumber, bool makeVisible = true);
	void previewLatex(const QPixmap &pixmap);

	void insertMessageLine(const QString &message); //inserts the message text (don't change page and no auto-show)

signals:

private:
	PreviewWidget *previewWidget;
	LatexLogWidget *logWidget;
	SearchResultWidget *searchResultWidget;
	LogEditor *OutputMessages;

	void retranslateUi();
};


class CustomWidgetList: public QDockWidget
{
	Q_OBJECT

public:
	CustomWidgetList(QWidget *p = 0);
	void addWidget(QWidget *widget, const QString &id, const QString &text, const QString &iconName);
	void setWidgetText(const QString &id, const QString &text);
	void setWidgetText(QWidget *widget, const QString &text);
	void setWidgetIcon(const QString &id, const QString &icon);
	void setWidgetIcon(QWidget *widget, const QString &icon);
	int widgetCount() const;
	void setHiddenWidgets(const QString &hidden);
	QString hiddenWidgets() const;
	QWidget *widget(int i) const;
	QWidget *widget(const QString &id) const;
	QList<QWidget *> getWidgets() const;
	void setCurrentWidget(QWidget *widget);
	QWidget *currentWidget() const;
	bool isNewLayoutStyleEnabled() const;

signals:
	void widgetContextMenuRequested(QWidget *widget, const QPoint &globalPosition);

public slots:
	void showWidgets(bool newLayoutStyle);
	void setToolbarIconSize(int sz);

private slots:
	void showPageFromAction();
	void currentWidgetChanged(int i);
	void toggleWidgetFromAction(bool on);
	void customContextMenuRequested(const QPoint &localPosition);

private:
	void showWidget(const QString &id);
	void hideWidget(const QString &id);
	//void addWidgetOld(QWidget* widget, const QString& id, const QString& text, const QString& iconName, const bool visible);
//	void addWidgetNew(QWidget* widget, const QString& id, const QString& text, const QString& iconName, const bool visible);
	QString widgetId(QWidget *widget) const;


	QStringList hiddenWidgetsIds;
	QList<QWidget *> widgets;
	bool newStyle;

	//old layout
	QToolBox *toolbox;

	//new layout
	QFrame *frame;
	QStackedWidget *stack;
	QToolBar *toolbar;

};

#endif