83 lines
1.8 KiB
C++
83 lines
1.8 KiB
C++
#ifndef DOCUMENTSTYLE_HPP
|
|
#define DOCUMENTSTYLE_HPP
|
|
|
|
#include <QUrl>
|
|
#include <QFont>
|
|
#include <QColor>
|
|
#include <QSettings>
|
|
#include <QTextListFormat>
|
|
|
|
struct DocumentStyle
|
|
{
|
|
enum Theme {
|
|
Fixed = 0,
|
|
AutoDarkTheme = 1,
|
|
AutoLightTheme = 2
|
|
};
|
|
|
|
struct DefaultFonts
|
|
{
|
|
QString regular, fixed;
|
|
|
|
DefaultFonts();
|
|
};
|
|
|
|
DocumentStyle();
|
|
|
|
void initialiseDefaultFonts();
|
|
|
|
//! Calculates a filtered/legal file name with all non-allowed chars escaped
|
|
static QString createFileNameFromName(QString const & src, int index);
|
|
|
|
Theme theme;
|
|
|
|
QFont standard_font;
|
|
QFont h1_font;
|
|
QFont h2_font;
|
|
QFont h3_font;
|
|
QFont preformatted_font;
|
|
QFont blockquote_font;
|
|
|
|
QColor background_color;
|
|
QColor standard_color;
|
|
QColor preformatted_color;
|
|
QColor h1_color;
|
|
QColor h2_color;
|
|
QColor h3_color;
|
|
QColor blockquote_fgcolor;
|
|
QColor blockquote_bgcolor;
|
|
|
|
QColor internal_link_color;
|
|
QColor external_link_color;
|
|
QColor cross_scheme_link_color;
|
|
|
|
QString internal_link_prefix;
|
|
QString external_link_prefix;
|
|
|
|
double margin_h, margin_v;
|
|
|
|
double text_width;
|
|
|
|
QStringList ansi_colors;
|
|
|
|
bool justify_text, text_width_enabled, centre_h1;
|
|
double line_height_p;
|
|
double line_height_h;
|
|
int indent_bq, indent_p, indent_h, indent_l;
|
|
int indent_size;
|
|
QTextListFormat::Style list_symbol;
|
|
|
|
bool save(QSettings & settings) const;
|
|
bool load(QSettings & settings);
|
|
|
|
//! Create a new style with auto-generated colors for the given
|
|
//! url. The colors are based on the host name
|
|
DocumentStyle derive(QUrl const & url) const;
|
|
|
|
//! Converts this style into a CSS document for
|
|
//! non-gemini rendered files.
|
|
QString toStyleSheet() const;
|
|
};
|
|
|
|
#endif // DOCUMENTSTYLE_HPP
|