Skip to content

Commit

Permalink
[#159] Save/Restore last used style
Browse files Browse the repository at this point in the history
  • Loading branch information
cloose committed Feb 8, 2015
1 parent 1b67906 commit 7fec0b9
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 3 deletions.
23 changes: 21 additions & 2 deletions app/mainwindow.cpp
Expand Up @@ -126,8 +126,8 @@ void MainWindow::initializeApp()
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
ui->tocWebView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);

// set default style
styleDefault();
// set last used style
lastUsedStyle();

ui->plainTextEdit->tabWidthChanged(options->tabWidth());

Expand Down Expand Up @@ -468,6 +468,17 @@ void MainWindow::viewChangeSplit()
}
}

void MainWindow::lastUsedStyle()
{
if (stylesGroup) {
foreach(QAction *action, stylesGroup->actions()) {
if (action->objectName() == options->lastUsedStyle()) {
action->trigger();
}
}
}
}

void MainWindow::styleDefault()
{
generator->setCodeHighlightingStyle("default");
Expand All @@ -476,6 +487,7 @@ void MainWindow::styleDefault()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl("qrc:/css/markdown.css"));

styleLabel->setText(ui->actionDefault->text());
options->setLastUsedStyle(ui->actionDefault->objectName());
}

void MainWindow::styleGithub()
Expand All @@ -486,6 +498,7 @@ void MainWindow::styleGithub()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl("qrc:/css/github.css"));

styleLabel->setText(ui->actionGithub->text());
options->setLastUsedStyle(ui->actionGithub->objectName());
}

void MainWindow::styleSolarizedLight()
Expand All @@ -496,6 +509,7 @@ void MainWindow::styleSolarizedLight()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl("qrc:/css/solarized-light.css"));

styleLabel->setText(ui->actionSolarizedLight->text());
options->setLastUsedStyle(ui->actionSolarizedLight->objectName());
}

void MainWindow::styleSolarizedDark()
Expand All @@ -506,6 +520,7 @@ void MainWindow::styleSolarizedDark()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl("qrc:/css/solarized-dark.css"));

styleLabel->setText(ui->actionSolarizedDark->text());
options->setLastUsedStyle(ui->actionSolarizedDark->objectName());
}

void MainWindow::styleClearness()
Expand All @@ -516,6 +531,7 @@ void MainWindow::styleClearness()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl("qrc:/css/clearness.css"));

styleLabel->setText(ui->actionClearness->text());
options->setLastUsedStyle(ui->actionClearness->objectName());
}

void MainWindow::styleClearnessDark()
Expand All @@ -526,6 +542,7 @@ void MainWindow::styleClearnessDark()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl("qrc:/css/clearness-dark.css"));

styleLabel->setText(ui->actionClearnessDark->text());
options->setLastUsedStyle(ui->actionClearnessDark->objectName());
}

void MainWindow::styleBywordDark()
Expand All @@ -536,6 +553,7 @@ void MainWindow::styleBywordDark()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl("qrc:/css/byword-dark.css"));

styleLabel->setText(ui->actionBywordDark->text());
options->setLastUsedStyle(ui->actionBywordDark->objectName());
}

void MainWindow::styleCustomStyle()
Expand All @@ -548,6 +566,7 @@ void MainWindow::styleCustomStyle()
ui->webView->page()->settings()->setUserStyleSheetUrl(QUrl::fromLocalFile(action->data().toString()));

styleLabel->setText(action->text());
options->setLastUsedStyle(action->objectName());
}

void MainWindow::viewFullScreenMode()
Expand Down
1 change: 1 addition & 0 deletions app/mainwindow.h
Expand Up @@ -84,6 +84,7 @@ private slots:
void editInsertImage();

void viewChangeSplit();
void lastUsedStyle();
void styleDefault();
void styleGithub();
void styleSolarizedLight();
Expand Down
17 changes: 16 additions & 1 deletion app/options.cpp
Expand Up @@ -21,6 +21,8 @@


static const char* MARKDOWN_CONVERTER = "general/converter";
static const char* LAST_USED_STYLE = "general/lastusedstyle";
static const char* STYLE_DEFAULT = "actionDefault";
static const char* FONT_FAMILY_DEFAULT = "Monospace";
static const char* FONT_FAMILY = "editor/font/family";
static const char* FONT_SIZE = "editor/font/size";
Expand Down Expand Up @@ -67,7 +69,8 @@ Options::Options(QObject *parent) :
m_showSpecialCharactersEnabled(false),
m_wordWrapEnabled(true),
m_spellingCheckEnabled(true),
m_markdownConverter(DiscountMarkdownConverter)
m_markdownConverter(DiscountMarkdownConverter),
m_lastUsedStyle(STYLE_DEFAULT)
{
}

Expand Down Expand Up @@ -376,12 +379,23 @@ void Options::setMarkdownConverter(Options::MarkdownConverter converter)
}
}

QString Options::lastUsedStyle() const
{
return m_lastUsedStyle;
}

void Options::setLastUsedStyle(const QString &style)
{
m_lastUsedStyle = style;
}

void Options::readSettings()
{
QSettings settings;

// general settings
m_markdownConverter = (Options::MarkdownConverter)settings.value(MARKDOWN_CONVERTER, 0).toInt();
m_lastUsedStyle = settings.value(LAST_USED_STYLE, STYLE_DEFAULT).toString();

// editor settings
QString fontFamily = settings.value(FONT_FAMILY, FONT_FAMILY_DEFAULT).toString();
Expand Down Expand Up @@ -444,6 +458,7 @@ void Options::writeSettings()

// general settings
settings.setValue(MARKDOWN_CONVERTER, m_markdownConverter);
settings.setValue(LAST_USED_STYLE, m_lastUsedStyle);

// editor settings
settings.setValue(FONT_FAMILY, font.family());
Expand Down
4 changes: 4 additions & 0 deletions app/options.h
Expand Up @@ -127,6 +127,9 @@ class Options : public QObject
MarkdownConverter markdownConverter() const;
void setMarkdownConverter(MarkdownConverter converter);

QString lastUsedStyle() const;
void setLastUsedStyle(const QString &style);

void readSettings();
void writeSettings();

Expand Down Expand Up @@ -158,6 +161,7 @@ class Options : public QObject
bool m_spellingCheckEnabled;
QString m_dictionaryLanguage;
MarkdownConverter m_markdownConverter;
QString m_lastUsedStyle;
QString m_standardFontFamily;
QString m_fixedFontFamily;
QString m_serifFontFamily;
Expand Down

0 comments on commit 7fec0b9

Please sign in to comment.