kwordlatexexportdia.cpp
1/* This file is part of the KDE project
2 Copyright (C) 2003 Robert JACOLIN <rjacolin@ifrance.com>
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; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 This file use code from koTemplateOpenDia for the method chooseSlot.
19*/
20
21#include <kwordlatexexportdia.h>
22
23#include <tqdir.h>
24#include <tqcombobox.h>
25#include <tqbuttongroup.h>
26#include <tqradiobutton.h>
27#include <tqcheckbox.h>
28
29#include <tdeapplication.h>
30#include <tdeglobal.h>
31#include <tdelocale.h>
32#include <tdeconfig.h>
33#include <kstandarddirs.h>
34#include <tderecentdocument.h>
35#include <tdetempfile.h>
36#include <kurlrequester.h>
37#include <tdefiledialog.h>
38#include <kdebug.h>
39#include <KoFilterManager.h>
40#include <kcombobox.h>
41#include <knuminput.h>
42
43#include <dcopclient.h>
44#include <latexexportIface.h>
45
46#include "xml2latexparser.h"
47
48/*#ifdef __FreeBSD__
49#include <unistd.h>
50#endif*/
51
52/*
53 * Constructs a KWordLatexExportDia which is a child of 'parent', with the
54 * name 'name' and widget flags set to 'f'.
55 *
56 * The dialog will by default be modeless, unless you set 'modal' to
57 * true to construct a modal dialog.
58 */
59KWordLatexExportDia::KWordLatexExportDia(KoStore* in, TQWidget* parent,
60 const char* name_, bool modal, WFlags fl )
61 : LatexExportDia( parent, name_, modal, fl ),_in( in )
62{
63 int i = 0;
64
65 kapp->restoreOverrideCursor();
66 pathPictures->setMode(KFile::Directory);
67
68 /* Recent files */
69 _config = new TDEConfig("kwordlatexexportdialog");
70 _config->setGroup( "KWord latex export filter" );
71 TQString value;
72 while(i < 10)
73 {
74 /*value = _config->readPathEntry( TQString("Recent%1").arg(i) );
75 kdDebug(30522) << "recent : " << value << endl;
76 if(!value.isEmpty())
77 {
78 _recentList.append( value );
79 recentBox->insertItem(value);
80 }
81 else
82 i = 10;*/
83 i = i + 1;
84 }
85
86 _iface = new LatexExportIface(this);
87 if(!kapp->dcopClient()->isRegistered() )
88 {
89 kapp->dcopClient()->registerAs("FilterConfigDia");
90 kapp->dcopClient()->setDefaultObject(_iface->objId());
91 }
92
93 /* All these items inserted must not be translated so they are inserted here
94 * without i18n() method. */
95 /*qualityComboBox->insertItem("final");
96 qualityComboBox->insertItem("draft");*/
97
98 classComboBox->insertItem("article");
99 classComboBox->insertItem("book");
100 classComboBox->insertItem("letter");
101 classComboBox->insertItem("report");
102 classComboBox->insertItem("slides");
103
104 encodingComboBox->insertItem("unicode");
105 encodingComboBox->insertItem("ansinew");
106 encodingComboBox->insertItem("applemac");
107 encodingComboBox->insertItem("ascii");
108 encodingComboBox->insertItem("latin1");
109 encodingComboBox->insertItem("latin2");
110 encodingComboBox->insertItem("latin3");
111 encodingComboBox->insertItem("latin5");
112 encodingComboBox->insertItem("cp437");
113 encodingComboBox->insertItem("cp437de");
114 encodingComboBox->insertItem("cp850");
115 encodingComboBox->insertItem("cp852");
116 encodingComboBox->insertItem("cp865");
117 encodingComboBox->insertItem("cp1250");
118 encodingComboBox->insertItem("cp1252");
119 encodingComboBox->insertItem("decmulti");
120 encodingComboBox->insertItem("next");
121
122 languagesList->insertItem("american");
123 languagesList->insertItem("austrian");
124 languagesList->insertItem("bahasa");
125 languagesList->insertItem("brazil");
126 languagesList->insertItem("breton");
127 languagesList->insertItem("catalan");
128 languagesList->insertItem("croatian");
129 languagesList->insertItem("czech");
130 languagesList->insertItem("danish");
131 languagesList->insertItem("dutch");
132 languagesList->insertItem("english");
133 languagesList->insertItem("esperanto");
134 languagesList->insertItem("finnish");
135 languagesList->insertItem("francais");
136 languagesList->insertItem("french");
137 languagesList->insertItem("galician");
138 languagesList->insertItem("german");
139 languagesList->insertItem("germanb");
140 languagesList->insertItem("hungarian");
141 languagesList->insertItem("magyar");
142 languagesList->insertItem("italian");
143 languagesList->insertItem("norsk");
144 languagesList->insertItem("nynorsk");
145 languagesList->insertItem("polish");
146 languagesList->insertItem("portuges");
147 languagesList->insertItem("romanian");
148 languagesList->insertItem("russian");
149 languagesList->insertItem("spanish");
150 languagesList->insertItem("slovak" );
151 languagesList->insertItem("slovene");
152 languagesList->insertItem("swedish");
153 languagesList->insertItem("turkish");
154}
155
156/*
157 * Destroys the object and frees any allocated resources
158 */
159KWordLatexExportDia::~KWordLatexExportDia()
160{
161 delete _iface;
162 delete _config;
163}
164
169void KWordLatexExportDia::reject()
170{
171 kdDebug(30522) << "Export cancelled" << endl;
172 TQDialog::reject();
173}
174
179void KWordLatexExportDia::accept()
180{
181 hide();
182 kdDebug(30522) << "KWORD LATEX EXPORT FILTER --> BEGIN" << endl;
183 Config* config = Config::instance();
184
185 /* Document tab */
186 if(embededButton == typeGroup->selected())
187 config->setEmbeded(true);
188 else
189 config->setEmbeded(false);
190 if(kwordStyleButton == styleGroup->selected())
191 config->useKwordStyle();
192 else
193 config-> useLatexStyle();
194
195 /* class names are not translated */
196 config->setClass(classComboBox->currentText());
197
198 if(qualityComboBox->currentItem() == 0)
199 config->setQuality("final");
200 else
201 config->setQuality("draft");
202 config->setDefaultFontSize(defaultFontSize->value());
203
204 /* Pictures tab */
205 if(pictureCheckBox->isChecked())
206 config->convertPictures();
207 config->setPicturesDir(pathPictures->url());
208
209 /* Language tab */
210 config->setEncoding(encodingComboBox->currentText());
211 for(unsigned int index = 0; index < langUsedList->count(); index++)
212 {
213 kdDebug(30522) << "lang. : " << langUsedList->item(index)->text() << endl;
214 config->addLanguage(langUsedList->item(index)->text());
215 }
216
217 /* The default language is the first language in the list */
218 if(langUsedList->item(0) != NULL)
219 config->setDefaultLanguage(langUsedList->item(0)->text());
220 kdDebug(30522) << "default lang. : " << langUsedList->currentText() << endl;
221 config->setDefaultLanguage(langUsedList->currentText());
222
223 Xml2LatexParser LATEXParser(_in, _fileOut, config);
224 kdDebug(30522) << "---------- analyse input file -------------" << endl;
225 LATEXParser.analyse();
226 kdDebug(30522) << "---------- generate output file -------------" << endl;
227 LATEXParser.generate();
228 kdDebug(30522) << "KWORD LATEX EXPORT FILTER --> END" << endl;
229}
230
231void KWordLatexExportDia::addLanguage()
232{
233 kdDebug(30522) << "add a new language supported" << languagesList->currentText() << endl;
234 TQString text = languagesList->currentText();
235 languagesList->removeItem(languagesList->currentItem());
236 langUsedList->insertItem(text);
237}
238
239void KWordLatexExportDia::removeLanguage()
240{
241 kdDebug(30522) << "remove the language" << langUsedList->currentText() << endl;
242 TQString text = langUsedList->currentText();
243 langUsedList->removeItem(langUsedList->currentItem());
244 languagesList->insertItem(text);
245}
246
247#include <kwordlatexexportdia.moc>
This class hold all parameters and configuration from a file or from the filter configuration dialog ...
void setClass(const TQString &lclass)
The class can be article, book, letter, report or slides.