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
|
/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you wish to add, delete or rename slots use Qt Designer which will
** update this file, preserving your code. Create an init() slot in place of
** a constructor, and a destroy() slot in place of a destructor.
*****************************************************************************/
#include "qeditor_view.h"
#include "qeditor_part.h"
#include "qsourcecolorizer.h"
#include <private/qrichtext_p.h>
#include <kdebug.h>
#include <kfontdialog.h>
using namespace std;
void HighlightingConfigPage::init()
{
m_editor = 0;
}
void HighlightingConfigPage::destroy()
{
}
void HighlightingConfigPage::setEditor( QEditorPart* editor )
{
m_editor = editor;
if( !m_editor )
return;
// setup colorizer
listElements->clear();
QSourceColorizer* colorizer = m_editor->colorizer();
QStringList styleList = colorizer->styleList();
QStringList::Iterator it = styleList.begin();
while( it != styleList.end() ){
QTextFormat* fmt = colorizer->formatFromId( *it );
m_map[ *it ] = qMakePair( fmt->font(), fmt->color() );
++it;
}
listElements->insertStringList( styleList );
listElements->setCurrentItem( 0 );
}
void HighlightingConfigPage::accept()
{
QSourceColorizer* colorizer = m_editor->colorizer();
colorizer->updateStyles( m_map );
}
void HighlightingConfigPage::slotUpdatePreview()
{
kdDebug() << "HighlightingConfigPage::slotUpdatePreview()" << endl;
QFont font( comboFontFamily->currentText(), spinFontSize->value() );
font.setBold( checkBold->isChecked() );
font.setItalic( checkItalic->isChecked() );
font.setUnderline( checkUnderline->isChecked() );
editPreview->setFont( font );
QPalette pal = editPreview->palette();
QColor color = buttonColor->color();
pal.setColor( QPalette::Active, QColorGroup::Text, color );
pal.setColor( QPalette::Active, QColorGroup::Foreground, color );
m_map[ listElements->currentText() ] = qMakePair( font, color );
editPreview->setPalette( pal );
}
void HighlightingConfigPage::slotSelectionChanged()
{
QString id = listElements->currentText();
QFont font = m_map[ id ].first;
QColor color = m_map[ id ].second;
comboFontFamily->setCurrentFont( font.family() );
spinFontSize->setValue( font.pointSize() );
checkBold->setChecked( font.bold() );
checkItalic->setChecked( font.italic() );
checkUnderline->setChecked( font.underline() );
buttonColor->setColor( color );
}
void HighlightingConfigPage::slotAdjustAllElements()
{
QFont changes;
int diffFlags = 0;
if (KFontDialog::getFontDiff(changes, diffFlags)) {
for(uint c=0;c<listElements->count();c++) {
QString id = listElements->text(c);
QFont font = m_map[ id ].first;
QColor color = m_map[ id ].second;
if (diffFlags & KFontChooser::FontDiffFamily)
font.setFamily( changes.family() );
if (diffFlags & KFontChooser::FontDiffStyle) {
font.setWeight( changes.weight() );
font.setItalic( changes.italic() );
font.setStrikeOut( changes.strikeOut() );
font.setUnderline( changes.underline() );
}
if (diffFlags & KFontChooser::FontDiffSize)
font.setPointSize( changes.pointSize() );
m_map[ id ] = qMakePair(font, color);
}
slotSelectionChanged();
}
}
|