kword

KWStartupWidget.cpp
1/* This file is part of the KOffice project
2 * Copyright (C) 2005 Thomas Zander <zander@kde.org>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; version 2.
7
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Library General Public License for more details.
12 *
13 * You should have received a copy of the GNU Library General Public License
14 * along with this library; see the file COPYING.LIB. If not, write to
15 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 * Boston, MA 02110-1301, USA.
17 */
18
19#include <KWStartupWidget.h>
20#include <KWStartupWidgetBase.h>
21#include <KWDocument.h>
22#include <KoPageLayoutSize.h>
23#include <KoPageLayoutColumns.h>
24
25#include <kdebug.h>
26#include <tqpushbutton.h>
27#include <tqcheckbox.h>
28#include <tqlayout.h>
29
30KWStartupWidget::KWStartupWidget(TQWidget *parent, KWDocument *doc, const KoColumns &columns)
31 : KWStartupWidgetBase(parent) {
32 m_columns = columns;
33 m_layout = KoPageLayout::standardLayout();
34 m_doc = doc;
35
36 setFocusProxy(m_createButton);
37
38 TQVBoxLayout *lay = new TQVBoxLayout(m_sizeTab, KDialog::marginHint());
39 m_sizeWidget = new KoPageLayoutSize(m_sizeTab, m_layout, m_doc->unit(), m_columns , true, true);
40 lay->addWidget(m_sizeWidget);
41
42 lay = new TQVBoxLayout(m_columnsTab, KDialog::marginHint());
43 m_columnsWidget = new KoPageLayoutColumns(m_columnsTab, m_columns, m_doc->unit(), m_layout);
44 lay->addWidget(m_columnsWidget);
45
46 connect (m_columnsWidget, TQ_SIGNAL( propertyChange(KoColumns&)),
47 this, TQ_SLOT (columnsUpdated( KoColumns&)));
48
49 connect (m_sizeWidget, TQ_SIGNAL( propertyChange(KoPageLayout&)),
50 this, TQ_SLOT (sizeUpdated( KoPageLayout&)));
51
52 connect (m_createButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT (buttonClicked()) );
53
54 connect (m_WpStyleCheckbox, TQ_SIGNAL(toggled(bool)), m_sizeWidget, TQ_SLOT(setEnableBorders(bool)));
55 connect (m_WpStyleCheckbox, TQ_SIGNAL(toggled(bool)), m_columnsWidget, TQ_SLOT(setEnableColumns(bool)));
56}
57
58void KWStartupWidget::sizeUpdated(KoPageLayout &layout) {
59 m_layout = layout;
60 m_columnsWidget->setLayout(layout);
61}
62
63void KWStartupWidget::columnsUpdated(KoColumns &columns) {
64 m_columns.columns = columns.columns;
65 m_columns.ptColumnSpacing = columns.ptColumnSpacing;
66 m_sizeWidget->setColumns(columns);
67}
68
69void KWStartupWidget::buttonClicked() {
70 if(m_WpStyleCheckbox->isChecked())
71 m_doc->initEmpty();
72 else {
73 m_doc->m_processingType = KWDocument::DTP;
74 m_doc->clear();
75 m_doc->loadDefaultFrameStyleTemplates();
76 m_doc->loadDefaultTableStyleTemplates();
77 m_doc->loadDefaultTableTemplates();
78
79 }
80 KoKWHeaderFooter hf;
81 hf.header = HF_SAME;
82 hf.footer = HF_SAME;
83 hf.ptHeaderBodySpacing = 10.0;
84 hf.ptFooterBodySpacing = 10.0;
85 hf.ptFootNoteBodySpacing = 10.0;
86 m_doc->setPageLayout( m_layout, m_columns, hf, false );
87 m_doc->delayedRecalcFrames(1);
88 m_doc->setUnit(m_sizeWidget->unit());
89
90 emit documentSelected();
91}
92
93#include "KWStartupWidget.moc"
KWStartupWidget(TQWidget *parent, KWDocument *doc, const KoColumns &columns)
Constructor.
void documentSelected()
this signal is emitted (as defined by KoDocument) the moment the document is 'ready'