-
Notifications
You must be signed in to change notification settings - Fork 351
/
Copy pathinsertgraphics.h
86 lines (67 loc) · 2.63 KB
/
insertgraphics.h
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
/***************************************************************************
* copyright : (C) 2003-2007 by Pascal Brachet,Jan Sundermeyer *
* http://www.xm1math.net/texmaker/ *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef Header_InsertGraphics
#define Header_InsertGraphics
#include "ui_insertgraphics.h"
#include "QFileInfo"
#include "QListWidgetItem"
class InsertGraphicsConfig;
class PlacementValidator : public QRegularExpressionValidator
{
Q_OBJECT
public:
explicit PlacementValidator(QObject *parent = nullptr);
void fixup (QString &input) const;
State validate(QString &input, int &pos) const;
};
class InsertGraphics : public QDialog
{
Q_OBJECT
public:
InsertGraphics(QWidget *parent = nullptr, InsertGraphicsConfig *conf = nullptr);
Q_INVOKABLE QString graphicsFile() const;
QString getLatexText() const;
static QStringList imageFormats();
private:
enum PlacementType {PlaceHere = QListWidgetItem::UserType, PlaceTop, PlaceBottom, PlacePage};
InsertGraphicsConfig getConfig() const;
void setConfig(const InsertGraphicsConfig &conf);
bool parseCode(const QString &code, InsertGraphicsConfig &conf);
bool fileNeedsInputCommand(const QString &filename) const;
QString getFormattedFilename(const QString filename) const;
QString getCaptionLabelString(const InsertGraphicsConfig &conf) const;
QString generateLabel(QString fname);
Ui::InsertGraphics ui;
QFileInfo texFile;
QFileInfo masterTexFile;
bool autoLabel;
static QStringList m_imageFormats;
static QStringList widthUnits;
static QStringList heightUnits;
InsertGraphicsConfig *defaultConfig;
public slots:
void setTexFile(const QFileInfo &fi);
void setMasterTexFile(const QFileInfo &fi);
void setGraphicsFile(const QString &file);
void setCode(const QString &code);
signals:
void fileNameChanged(const QString &);
private slots:
void chooseFile();
void includeOptionChanged();
void leFileChanged(const QString &filename);
void labelChanged(const QString &label);
void updateLabel(const QString &fname);
void togglePlacementCheckboxes(bool forceHide = false);
void updatePlacement();
void saveDefault();
};
#endif