Skip to content

Commit

Permalink
scide: separate applySettings() for the generic and the SC code editors
Browse files Browse the repository at this point in the history
  • Loading branch information
jleben committed Sep 21, 2012
1 parent 2fb81c5 commit 12e1faf
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 41 deletions.
45 changes: 45 additions & 0 deletions editors/sc-ide/widgets/code_editor/editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,55 @@ GenericCodeEditor::GenericCodeEditor( Document *doc, QWidget *parent ):
connect( this, SIGNAL(selectionChanged()),
mLineIndicator, SLOT(update()) );

connect( Main::instance(), SIGNAL(applySettingsRequest(Settings::Manager*)),
this, SLOT(applySettings(Settings::Manager*)) );

QTextDocument *tdoc = doc->textDocument();
QPlainTextEdit::setDocument(tdoc);
onDocumentFontChanged();
mLineIndicator->setLineCount(blockCount());

applySettings( Main::settings() );
}

void GenericCodeEditor::applySettings( Settings::Manager *settings )
{
settings->beginGroup("IDE/editor");

bool lineWrap = settings->value("lineWrap").toBool();

QPalette palette;

settings->beginGroup("colors");

if (settings->contains("text")) {
QTextCharFormat format = settings->value("text").value<QTextCharFormat>();
QBrush bg = format.background();
QBrush fg = format.foreground();
if (bg.style() != Qt::NoBrush)
palette.setBrush(QPalette::Base, bg);
if (fg.style() != Qt::NoBrush)
palette.setBrush(QPalette::Text, fg);
}

if (settings->contains("lineNumbers")) {
QPalette lineNumPlt;
QTextCharFormat format = settings->value("lineNumbers").value<QTextCharFormat>();
QBrush bg = format.background();
QBrush fg = format.foreground();
if (bg.style() != Qt::NoBrush)
palette.setBrush(QPalette::Button, bg);
if (fg.style() != Qt::NoBrush)
palette.setBrush(QPalette::ButtonText, fg);
mLineIndicator->setPalette(lineNumPlt);
}

settings->endGroup(); // colors

settings->endGroup(); // IDE/editor

setLineWrapMode( lineWrap ? QPlainTextEdit::WidgetWidth : QPlainTextEdit::NoWrap );
setPalette(palette);
}

bool GenericCodeEditor::showWhitespace()
Expand Down
5 changes: 3 additions & 2 deletions editors/sc-ide/widgets/code_editor/editor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ class GenericCodeEditor : public QPlainTextEdit
virtual void wheelEvent( QWheelEvent * );
virtual void dragEnterEvent( QDragEnterEvent * );

public Q_SLOTS:
public slots:
void applySettings( Settings::Manager * );
void zoomIn(int steps = 1);
void zoomOut(int steps = 1);
void resetFontSize();
Expand All @@ -72,7 +73,7 @@ public Q_SLOTS:
void gotoPreviousEmptyLine();
void gotoNextEmptyLine();

protected Q_SLOTS:
protected slots:
void updateLayout();
void updateLineIndicator( QRect, int );
void onDocumentFontChanged();
Expand Down
38 changes: 2 additions & 36 deletions editors/sc-ide/widgets/code_editor/sc_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ ScCodeEditor::ScCodeEditor( Document *doc, QWidget *parent ) :

mAutoCompleter->documentChanged(textDocument());

applySettings(Main::settings());
applySettings( Main::settings() );
}

void ScCodeEditor::applySettings( Settings::Manager *settings )
Expand All @@ -61,43 +61,9 @@ void ScCodeEditor::applySettings( Settings::Manager *settings )

mBlinkDuration = settings->value("blinkDuration").toInt();

bool lineWrap = settings->value("lineWrap").toBool();

QPalette palette;

settings->beginGroup("colors");

if (settings->contains("text")) {
QTextCharFormat format = settings->value("text").value<QTextCharFormat>();
QBrush bg = format.background();
QBrush fg = format.foreground();
if (bg.style() != Qt::NoBrush)
palette.setBrush(QPalette::Base, bg);
if (fg.style() != Qt::NoBrush)
palette.setBrush(QPalette::Text, fg);
}

if (settings->contains("lineNumbers")) {
QPalette lineNumPlt;
QTextCharFormat format = settings->value("lineNumbers").value<QTextCharFormat>();
QBrush bg = format.background();
QBrush fg = format.foreground();
if (bg.style() != Qt::NoBrush)
palette.setBrush(QPalette::Button, bg);
if (fg.style() != Qt::NoBrush)
palette.setBrush(QPalette::ButtonText, fg);
mLineIndicator->setPalette(lineNumPlt);
}

mBracketHighlight = settings->value("matchingBrackets").value<QTextCharFormat>();

settings->endGroup(); // colors
mBracketHighlight = settings->value("colors/matchingBrackets").value<QTextCharFormat>();

settings->endGroup();

setPalette(palette);

setLineWrapMode( lineWrap ? QPlainTextEdit::WidgetWidth : QPlainTextEdit::NoWrap );
}

bool ScCodeEditor::event( QEvent *e )
Expand Down
6 changes: 3 additions & 3 deletions editors/sc-ide/widgets/code_editor/sc_editor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ class ScCodeEditor : public GenericCodeEditor
void blinkCode( const QTextCursor & c );


public Q_SLOTS:
void setSpaceIndent(bool on) { mSpaceIndent = on; }
public slots:
void applySettings( Settings::Manager * );
void setSpaceIndent(bool on) { mSpaceIndent = on; }
void indent();
void triggerAutoCompletion();
void triggerMethodCallAid();
Expand All @@ -65,7 +65,7 @@ public Q_SLOTS:
virtual void mouseDoubleClickEvent( QMouseEvent * );
virtual void mouseMoveEvent( QMouseEvent * );

private Q_SLOTS:
private slots:
void matchBrackets();

private:
Expand Down

0 comments on commit 12e1faf

Please sign in to comment.