filters

kspreadlatexexportdiaImpl.cpp
1/* This file is part of the KDE project
2 Copyright (C) 2002, 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 <kspreadlatexexportdiaImpl.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
45#include "document.h"
46
47/*#ifdef __FreeBSD__
48#include <unistd.h>
49#endif*/
50
51/*
52 * Constructs a KSpreadLatexExportDiaImpl which is a child of 'parent', with the
53 * name 'name' and widget flags set to 'f'.
54 *
55 * The dialog will by default be modeless, unless you set 'modal' to
56 * true to construct a modal dialog.
57 */
58KSpreadLatexExportDiaImpl::KSpreadLatexExportDiaImpl(KoStore* in, TQWidget* parent,
59 const char* name_, bool modal, WFlags fl )
60 : LatexExportDia( parent, name_, modal, fl ), _in( in )
61{
62 int i = 0;
63
64 kapp->restoreOverrideCursor();
65
66 /* Recent files */
67 _config = new TDEConfig("kspreadlatexexportdialog");
68 _config->setGroup( "KSpread latex export filter" );
69 TQString value;
70 while(i < 10)
71 {
72 /*value = _config->readPathEntry( TQString("Recent%1").arg(i) );
73 kdDebug(30522) << "recent : " << value << endl;
74 if(!value.isEmpty())
75 {
76 _recentList.append( value );
77 recentBox->insertItem(value);
78 }
79 else
80 i = 10;*/
81 i = i + 1;
82 }
83
84 _iface = new LatexExportIface(this);
85 if(!kapp->dcopClient()->isRegistered() )
86 {
87 kapp->dcopClient()->registerAs("FilterConfigDia");
88 kapp->dcopClient()->setDefaultObject(_iface->objId());
89 }
90
91 /* All these items inserted must not be translated so they are inserted here
92 * without i18n() method. */
93 /*qualityComboBox->insertItem("final");
94 qualityComboBox->insertItem("draft");*/
95
96 classComboBox->insertItem("article");
97 classComboBox->insertItem("book");
98 classComboBox->insertItem("letter");
99 classComboBox->insertItem("report");
100 classComboBox->insertItem("slides");
101
102 encodingComboBox->insertItem("unicode");
103 encodingComboBox->insertItem("ansinew");
104 encodingComboBox->insertItem("applemac");
105 encodingComboBox->insertItem("ascii");
106 encodingComboBox->insertItem("latin1");
107 encodingComboBox->insertItem("latin2");
108 encodingComboBox->insertItem("latin3");
109 encodingComboBox->insertItem("latin5");
110 encodingComboBox->insertItem("cp437");
111 encodingComboBox->insertItem("cp437de");
112 encodingComboBox->insertItem("cp850");
113 encodingComboBox->insertItem("cp852");
114 encodingComboBox->insertItem("cp865");
115 encodingComboBox->insertItem("cp1250");
116 encodingComboBox->insertItem("cp1252");
117 encodingComboBox->insertItem("decmulti");
118 encodingComboBox->insertItem("next");
119
120 languagesList->insertItem("american");
121 languagesList->insertItem("austrian");
122 languagesList->insertItem("bahasa");
123 languagesList->insertItem("brazil");
124 languagesList->insertItem("breton");
125 languagesList->insertItem("catalan");
126 languagesList->insertItem("croatian");
127 languagesList->insertItem("czech");
128 languagesList->insertItem("danish");
129 languagesList->insertItem("dutch");
130 languagesList->insertItem("english");
131 languagesList->insertItem("esperanto");
132 languagesList->insertItem("finnish");
133 languagesList->insertItem("francais");
134 languagesList->insertItem("french");
135 languagesList->insertItem("galician");
136 languagesList->insertItem("german");
137 languagesList->insertItem("germanb");
138 languagesList->insertItem("hungarian");
139 languagesList->insertItem("magyar");
140 languagesList->insertItem("italian");
141 languagesList->insertItem("norsk");
142 languagesList->insertItem("nynorsk");
143 languagesList->insertItem("polish");
144 languagesList->insertItem("portuges");
145 languagesList->insertItem("romanian");
146 languagesList->insertItem("russian");
147 languagesList->insertItem("spanish");
148 languagesList->insertItem("slovak" );
149 languagesList->insertItem("slovene");
150 languagesList->insertItem("swedish");
151 languagesList->insertItem("turkish");
152}
153
154/*
155 * Destroys the object and frees any allocated resources
156 */
157KSpreadLatexExportDiaImpl::~KSpreadLatexExportDiaImpl()
158{
159 delete _config;
160}
161
166void KSpreadLatexExportDiaImpl::reject()
167{
168 kdDebug(30522) << "Export cancelled" << endl;
169 TQDialog::reject();
170}
171
176void KSpreadLatexExportDiaImpl::accept()
177{
178 hide();
179 kdDebug(30522) << "KSPREAD LATEX EXPORT FILTER --> BEGIN" << endl;
180 Config* config = Config::instance();
181
182 /* Document tab */
183 if(embededButton == typeGroup->selected())
184 config->setEmbeded(true);
185 else
186 config->setEmbeded(false);
187 if(kwordStyleButton == styleGroup->selected())
188 config->useKwordStyle();
189 else
190 config-> useLatexStyle();
191 /* class names are not translated */
192 config->setClass(classComboBox->currentText());
193
194 if(qualityComboBox->currentItem() == 0)
195 config->setQuality("final");
196 else
197 config->setQuality("draft");
198 config->setDefaultFontSize(defaultFontSize->value());
199
200 /* Pictures tab */
201 if(pictureCheckBox->isChecked())
202 config->convertPictures();
203 config->setPicturesDir(pathPictures->url());
204
205 /* Language tab */
206 config->setEncoding(encodingComboBox->currentText());
207 for(unsigned int index = 0; index < langUsedList->count(); index++)
208 {
209 kdDebug(30522) << "lang. : " << langUsedList->item(index)->text() << endl;
210 config->addLanguage(langUsedList->item(index)->text());
211 }
212
213 /* The default language is the first language in the list */
214 if(langUsedList->item(0) != NULL)
215 config->setDefaultLanguage(langUsedList->item(0)->text());
216 if( !(langUsedList->currentText().isEmpty()) )
217 {
218 kdDebug(30522) << "default lang. : " << langUsedList->currentText() << endl;
219 config->setDefaultLanguage(langUsedList->currentText());
220 }
221
222 Document doc(_in, _fileOut);
223 kdDebug(30522) << "---------- analyse file -------------" << endl;
224 doc.analyse();
225 kdDebug(30522) << "---------- generate file -------------" << endl;
226 doc.generate();
227 kdDebug(30522) << "KSPREAD LATEX EXPORT FILTER --> END" << endl;
228}
229
230void KSpreadLatexExportDiaImpl::addLanguage()
231{
232 kdDebug(30522) << "add a new language supported" << languagesList->currentText() << endl;
233 TQString text = languagesList->currentText();
234 languagesList->removeItem(languagesList->currentItem());
235 langUsedList->insertItem(text);
236}
237
238void KSpreadLatexExportDiaImpl::removeLanguage()
239{
240 kdDebug(30522) << "remove a lanugage" << langUsedList->currentText() << endl;
241 TQString text = langUsedList->currentText();
242 langUsedList->removeItem(langUsedList->currentItem());
243 languagesList->insertItem(text);
244}
245
246#include <kspreadlatexexportdiaImpl.moc>
void setClass(const TQString &lclass)
The class can be article, book, letter, report or slides.