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
|