summaryrefslogtreecommitdiffstats
path: root/kword/KWConfigFootNoteDia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kword/KWConfigFootNoteDia.cpp')
-rw-r--r--kword/KWConfigFootNoteDia.cpp216
1 files changed, 216 insertions, 0 deletions
diff --git a/kword/KWConfigFootNoteDia.cpp b/kword/KWConfigFootNoteDia.cpp
new file mode 100644
index 00000000..f2d606c6
--- /dev/null
+++ b/kword/KWConfigFootNoteDia.cpp
@@ -0,0 +1,216 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Montel Laurent <lmontel@mandrakesoft.com>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include "KWDocument.h"
+#include "KWConfigFootNoteDia.h"
+#include "KWConfigFootNoteDia.moc"
+#include "KWVariable.h"
+#include "KWCommand.h"
+#include "KWFrameSet.h"
+
+#include <KoParagDia.h>
+#include <KoUnitWidgets.h>
+
+#include <klocale.h>
+#include <knuminput.h>
+
+#include <qradiobutton.h>
+#include <qwhatsthis.h>
+#include <qvbuttongroup.h>
+#include <qlabel.h>
+#include <qvbox.h>
+#include <qlayout.h>
+#include <qcombobox.h>
+
+
+KWConfigFootNoteDia::KWConfigFootNoteDia( QWidget *parent, const char *name, KWDocument *doc )
+ : KDialogBase(Tabbed, QString::null, Ok | Cancel , Ok, parent, name, true)
+{
+ setCaption( i18n("Configure Endnote/Footnote") );
+ m_doc = doc;
+
+ resize( 510, 310 );
+ setupTab1();
+ setupTab2();
+ setupTab3();
+}
+
+void KWConfigFootNoteDia::setupTab1()
+{
+ QVBox * page = addVBoxPage( i18n( "Footnotes" ) );
+ m_footNoteConfig = new KoCounterStyleWidget( false, true, false, page );
+ //m_footNoteConfig->numTypeChanged( KoParagCounter::NUM_LIST );
+ m_footNoteConfig->setCounter (static_cast<KWVariableSettings*>(m_doc->variableCollection()->variableSetting())->footNoteCounter() );
+}
+
+void KWConfigFootNoteDia::setupTab2()
+{
+ QVBox * page = addVBoxPage( i18n( "Endnotes" ) );
+ m_endNoteConfig = new KoCounterStyleWidget( false, true/*onlyStyleLetter*/,false, page );
+ //m_endNoteConfig->numTypeChanged( KoParagCounter::NUM_LIST );
+ m_endNoteConfig->setCounter (static_cast<KWVariableSettings*>(m_doc->variableCollection()->variableSetting())->endNoteCounter() );
+}
+
+
+void KWConfigFootNoteDia::setupTab3()
+{
+ QFrame * page = addPage( i18n( "Separator Line" ) );
+ QString comment= i18n ("Configure the separator line. The separator line "
+ "is drawn directly above the frame for the footnotes.");
+ QWhatsThis::add(page, comment);
+ QVBoxLayout *pageLayout= new QVBoxLayout( page, 0, KDialog::spacingHint());
+
+ QButtonGroup *positionGroupBox = new QButtonGroup( i18n( "Position"), page );
+ comment= i18n ("The separator can be positioned horizontally by picking one "
+ "of the three alignments.");
+ QWhatsThis::add(positionGroupBox, comment);
+ positionGroupBox->setColumnLayout(0, Qt::Vertical );
+ QVBoxLayout *positionLayout = new QVBoxLayout( positionGroupBox->layout() );
+ positionLayout->setAlignment( Qt::AlignTop );
+
+ // i18n context information necessary for gender considerations (e.g. in Polish)
+ rbPosLeft = new QRadioButton( i18n("Position", "Left"), positionGroupBox, "rbPosLeft" );
+ positionLayout->addWidget( rbPosLeft );
+
+ rbPosCentered = new QRadioButton( i18n("Position", "Centered"), positionGroupBox, "rbPosCentered" );
+ positionLayout->addWidget( rbPosCentered );
+
+ rbPosRight = new QRadioButton( i18n("Position", "Right"), positionGroupBox, "rbPosRight" );
+ positionLayout->addWidget( rbPosRight );
+ pageLayout->addWidget( positionGroupBox );
+ switch( m_doc->footNoteSeparatorLinePosition() ) {
+ case SLP_LEFT:
+ rbPosLeft->setChecked( true);
+ break;
+ case SLP_CENTERED:
+ rbPosCentered->setChecked( true);
+ break;
+ case SLP_RIGHT:
+ rbPosRight->setChecked( true);
+ break;
+ }
+
+ QGridLayout *layout = new QGridLayout( 0, 1, 1, 0, KDialog::spacingHint());
+
+ spWidth = new KoUnitDoubleSpinBox(page, 0, 5, 0.5, m_doc->footNoteSeparatorLineWidth(), m_doc->unit(), 1);
+
+ layout->addWidget( spWidth, 1, 1 );
+
+ spLength = new KIntNumInput( page, "spLength" );
+ spLength->setRange( 1, 100, 1,false );
+ spLength->setValue( m_doc->footNoteSeparatorLineLength());
+ spLength->setSuffix(i18n(" %"));
+ layout->addWidget( spLength, 0, 1 );
+
+ QLabel *lSize = new QLabel( i18n( "&Width:"), page );
+ lSize->setBuddy( spWidth );
+ comment= i18n ("The width is the thickness of the separator line, set to 0 for no separator line.");
+ QWhatsThis::add(lSize, comment);
+ QWhatsThis::add(spWidth, comment);
+ layout->addWidget( lSize, 1, 0 );
+
+ QSpacerItem* spacer = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
+ layout->addMultiCell( spacer, 0, 1, 2, 2 );
+
+ QLabel *lWidth = new QLabel( i18n("&Size on page:"), page, "lWidth" );
+ lWidth->setBuddy( spLength );
+ comment= i18n ("The size of the separator line can be defined as a percentage of the width of the page.");
+ QWhatsThis::add(spLength, comment);
+ QWhatsThis::add(lWidth, comment);
+ layout->addWidget( lWidth, 0, 0 );
+ pageLayout->addLayout( layout );
+
+ QHBoxLayout *styleLayout = new QHBoxLayout( 0, 0, KDialog::spacingHint(), "styleLayout");
+
+ QLabel *styleLabel = new QLabel( i18n("Style:"), page );
+ styleLayout->addWidget( styleLabel );
+
+ m_cbLineType = new QComboBox( page );
+ QStringList lst;
+ lst <<i18n("Solid");
+ lst <<i18n("Dash Line");
+ lst <<i18n("Dot Line");
+ lst <<i18n("Dash Dot Line");
+ lst <<i18n("Dash Dot Dot Line");
+ m_cbLineType->insertStringList( lst );
+ m_cbLineType->setCurrentItem( static_cast<int>(m_doc->footNoteSeparatorLineType()));
+ comment= i18n ("The separator line can be drawn as a solid line or as a line which has a "
+ "pattern; the pattern can be set in the style-type.");
+ QWhatsThis::add(styleLabel, comment);
+ QWhatsThis::add(m_cbLineType, comment);
+ styleLayout->addWidget( m_cbLineType );
+
+ QSpacerItem* spacer_2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
+ styleLayout->addItem( spacer_2 );
+ pageLayout->addLayout( styleLayout );
+ QSpacerItem* spacer_3 = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding );
+ pageLayout->addItem( spacer_3 );
+}
+
+
+void KWConfigFootNoteDia::slotOk()
+{
+ KMacroCommand * macro = 0L;
+ KCommand *cmd = 0L;
+ KoParagCounter counter =static_cast<KWVariableSettings*>(m_doc->variableCollection()->variableSetting())->footNoteCounter();
+ if (counter != m_footNoteConfig->counter() )
+ {
+ macro = new KMacroCommand(i18n("Change End-/Footnote Variable Settings"));
+ cmd= new KWChangeFootEndNoteSettingsCommand( i18n("Change End-/Footnote Variable Settings") , counter, m_footNoteConfig->counter() ,true ,m_doc);
+ macro->addCommand(cmd );
+ }
+ counter = static_cast<KWVariableSettings*>(m_doc->variableCollection()->variableSetting())->endNoteCounter();
+ if (counter != m_endNoteConfig->counter() )
+ {
+ if ( !macro )
+ macro = new KMacroCommand(i18n("Change End-/Footnote Variable Settings"));
+ cmd= new KWChangeFootEndNoteSettingsCommand( i18n("Change End-/Footnote Variable Settings") , counter, m_endNoteConfig->counter() ,false ,m_doc);
+ macro->addCommand(cmd );
+ }
+
+ int val =spLength->value();
+ double width = spWidth->value();
+ SeparatorLinePos tmp = SLP_LEFT;
+ SeparatorLineLineType type = static_cast<SeparatorLineLineType>(m_cbLineType->currentItem());
+ if ( rbPosRight->isChecked())
+ tmp = SLP_RIGHT;
+ else if ( rbPosCentered->isChecked())
+ tmp = SLP_CENTERED;
+ else if ( rbPosLeft->isChecked())
+ tmp = SLP_LEFT;
+
+ if ( (val != m_doc->footNoteSeparatorLineLength())||
+ tmp != m_doc->footNoteSeparatorLinePosition()||
+ width!= m_doc->footNoteSeparatorLineWidth() ||
+ type != m_doc->footNoteSeparatorLineType())
+ {
+ if ( !macro )
+ macro = new KMacroCommand(i18n("Change Footnote Line Separator Settings"));
+ cmd = new KWChangeFootNoteLineSeparatorParametersCommand( i18n("Change Footnote Line Separator Settings") , m_doc->footNoteSeparatorLinePosition(), tmp, m_doc->footNoteSeparatorLineLength(), val,m_doc->footNoteSeparatorLineWidth(), width, m_doc->footNoteSeparatorLineType(), type, m_doc);
+ macro->addCommand( cmd );
+ }
+
+ if ( macro )
+ {
+ macro->execute();
+ m_doc->addCommand( macro );
+ }
+
+ KDialogBase::slotOk();
+}