kword

KWStartupWidget.cpp

00001 /* This file is part of the KOffice project
00002  * Copyright (C) 2005 Thomas Zander <zander@kde.org>
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Library General Public
00006  * License as published by the Free Software Foundation; version 2.
00007 
00008  * This library is distributed in the hope that it will be useful,
00009  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011  * Library General Public License for more details.
00012  *
00013  * You should have received a copy of the GNU Library General Public License
00014  * along with this library; see the file COPYING.LIB.  If not, write to
00015  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00016  * Boston, MA 02110-1301, USA.
00017  */
00018 
00019 #include <KWStartupWidget.h>
00020 #include <KWStartupWidgetBase.h>
00021 #include <KWDocument.h>
00022 #include <KoPageLayoutSize.h>
00023 #include <KoPageLayoutColumns.h>
00024 
00025 #include <kdebug.h>
00026 #include <qpushbutton.h>
00027 #include <qcheckbox.h>
00028 #include <qlayout.h>
00029 
00030 KWStartupWidget::KWStartupWidget(QWidget *parent, KWDocument *doc, const KoColumns &columns)
00031     : KWStartupWidgetBase(parent) {
00032     m_columns = columns;
00033     m_layout = KoPageLayout::standardLayout();
00034     m_doc = doc;
00035 
00036     setFocusProxy(m_createButton);
00037 
00038     QVBoxLayout *lay = new QVBoxLayout(m_sizeTab, KDialog::marginHint());
00039     m_sizeWidget = new KoPageLayoutSize(m_sizeTab, m_layout, m_doc->unit(), m_columns , true, true);
00040     lay->addWidget(m_sizeWidget);
00041 
00042     lay = new QVBoxLayout(m_columnsTab, KDialog::marginHint());
00043     m_columnsWidget = new KoPageLayoutColumns(m_columnsTab, m_columns, m_doc->unit(), m_layout);
00044     lay->addWidget(m_columnsWidget);
00045 
00046     connect (m_columnsWidget, SIGNAL( propertyChange(KoColumns&)),
00047             this, SLOT (columnsUpdated( KoColumns&)));
00048 
00049     connect (m_sizeWidget, SIGNAL( propertyChange(KoPageLayout&)),
00050             this, SLOT (sizeUpdated( KoPageLayout&)));
00051 
00052     connect (m_createButton, SIGNAL( clicked() ), this, SLOT (buttonClicked()) );
00053 
00054     connect (m_WpStyleCheckbox, SIGNAL(toggled(bool)), m_sizeWidget, SLOT(setEnableBorders(bool)));
00055     connect (m_WpStyleCheckbox, SIGNAL(toggled(bool)), m_columnsWidget, SLOT(setEnableColumns(bool)));
00056 }
00057 
00058 void KWStartupWidget::sizeUpdated(KoPageLayout &layout) {
00059     m_layout = layout;
00060     m_columnsWidget->setLayout(layout);
00061 }
00062 
00063 void KWStartupWidget::columnsUpdated(KoColumns &columns) {
00064     m_columns.columns = columns.columns;
00065     m_columns.ptColumnSpacing = columns.ptColumnSpacing;
00066     m_sizeWidget->setColumns(columns);
00067 }
00068 
00069 void KWStartupWidget::buttonClicked() {
00070     if(m_WpStyleCheckbox->isChecked())
00071         m_doc->initEmpty();
00072     else {
00073         m_doc->m_processingType = KWDocument::DTP;
00074         m_doc->clear();
00075         m_doc->loadDefaultFrameStyleTemplates();
00076         m_doc->loadDefaultTableStyleTemplates();
00077         m_doc->loadDefaultTableTemplates();
00078 
00079     }
00080     KoKWHeaderFooter hf;
00081     hf.header = HF_SAME;
00082     hf.footer = HF_SAME;
00083     hf.ptHeaderBodySpacing = 10.0;
00084     hf.ptFooterBodySpacing = 10.0;
00085     hf.ptFootNoteBodySpacing = 10.0;
00086     m_doc->setPageLayout( m_layout, m_columns, hf, false );
00087     m_doc->delayedRecalcFrames(1);
00088     m_doc->setUnit(m_sizeWidget->unit());
00089 
00090     emit documentSelected();
00091 }
00092 
00093 #include "KWStartupWidget.moc"
KDE Home | KDE Accessibility Home | Description of Access Keys