filters

kwordlatexexportdia.cc

00001 /* This file is part of the KDE project
00002    Copyright (C) 2003 Robert JACOLIN <rjacolin@ifrance.com>
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; either
00007    version 2 of the License, or (at your option) any later version.
00008 
00009    This library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Library General Public License for more details.
00013 
00014    You should have received a copy of the GNU Library General Public License
00015    along with this library; see the file COPYING.LIB.  If not, write to
00016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  * Boston, MA 02110-1301, USA.
00018    This file use code from koTemplateOpenDia for the method chooseSlot.
00019 */
00020 
00021 #include <kwordlatexexportdia.h>
00022 
00023 #include <qdir.h>
00024 #include <qcombobox.h>
00025 #include <qbuttongroup.h>
00026 #include <qradiobutton.h>
00027 #include <qcheckbox.h>
00028 
00029 #include <kapplication.h>
00030 #include <kglobal.h>
00031 #include <klocale.h>
00032 #include <kconfig.h>
00033 #include <kstandarddirs.h>
00034 #include <krecentdocument.h>
00035 #include <ktempfile.h>
00036 #include <kurlrequester.h>
00037 #include <kfiledialog.h>
00038 #include <kdebug.h>
00039 #include <KoFilterManager.h>
00040 #include <kcombobox.h>
00041 #include <knuminput.h>
00042 
00043 #include <dcopclient.h>
00044 #include <latexexportIface.h>
00045 
00046 #include "xml2latexparser.h"
00047 
00048 /*#ifdef __FreeBSD__
00049 #include <unistd.h>
00050 #endif*/
00051 
00052 /*
00053  *  Constructs a KWordLatexExportDia which is a child of 'parent', with the
00054  *  name 'name' and widget flags set to 'f'.
00055  *
00056  *  The dialog will by default be modeless, unless you set 'modal' to
00057  *  TRUE to construct a modal dialog.
00058  */
00059 KWordLatexExportDia::KWordLatexExportDia(KoStore* in, QWidget* parent, 
00060         const char* name_, bool modal, WFlags fl )
00061     : LatexExportDia( parent, name_, modal, fl ),_in( in )
00062 {
00063     int i = 0;
00064 
00065     kapp->restoreOverrideCursor();
00066     pathPictures->setMode(KFile::Directory);
00067 
00068     /* Recent files */
00069     _config = new KConfig("kwordlatexexportdialog");
00070     _config->setGroup( "KWord latex export filter" );
00071     QString value;
00072     while(i < 10)
00073     {
00074         /*value = _config->readPathEntry( QString("Recent%1").arg(i) );
00075         kdDebug(30522) << "recent : " << value << endl;
00076         if(!value.isEmpty())
00077         {
00078             _recentList.append( value );
00079             recentBox->insertItem(value);
00080         }
00081         else
00082             i = 10;*/
00083         i = i + 1;
00084     }
00085 
00086     _iface = new LatexExportIface(this);
00087     if(!kapp->dcopClient()->isRegistered() )
00088     {
00089         kapp->dcopClient()->registerAs("FilterConfigDia");
00090         kapp->dcopClient()->setDefaultObject(_iface->objId());
00091     }
00092 
00093     /* All these items inserted must not be translated so they are inserted here 
00094      * without i18n() method. */
00095     /*qualityComboBox->insertItem("final");
00096   qualityComboBox->insertItem("draft");*/
00097 
00098     classComboBox->insertItem("article");
00099   classComboBox->insertItem("book");
00100   classComboBox->insertItem("letter");
00101   classComboBox->insertItem("report");
00102   classComboBox->insertItem("slides");
00103 
00104     encodingComboBox->insertItem("unicode");
00105   encodingComboBox->insertItem("ansinew");
00106   encodingComboBox->insertItem("applemac");
00107   encodingComboBox->insertItem("ascii");
00108   encodingComboBox->insertItem("latin1");
00109   encodingComboBox->insertItem("latin2");
00110   encodingComboBox->insertItem("latin3");
00111   encodingComboBox->insertItem("latin5");
00112   encodingComboBox->insertItem("cp437");
00113   encodingComboBox->insertItem("cp437de");
00114   encodingComboBox->insertItem("cp850");
00115   encodingComboBox->insertItem("cp852");
00116   encodingComboBox->insertItem("cp865");
00117   encodingComboBox->insertItem("cp1250");
00118   encodingComboBox->insertItem("cp1252");
00119   encodingComboBox->insertItem("decmulti");
00120   encodingComboBox->insertItem("next");
00121 
00122     languagesList->insertItem("american");
00123     languagesList->insertItem("austrian");
00124     languagesList->insertItem("bahasa");
00125     languagesList->insertItem("brazil");
00126     languagesList->insertItem("breton");
00127     languagesList->insertItem("catalan");
00128     languagesList->insertItem("croatian");
00129     languagesList->insertItem("czech");
00130     languagesList->insertItem("danish");
00131     languagesList->insertItem("dutch");
00132     languagesList->insertItem("english");
00133     languagesList->insertItem("esperanto");
00134     languagesList->insertItem("finnish");
00135     languagesList->insertItem("francais");
00136     languagesList->insertItem("french");
00137     languagesList->insertItem("galician");
00138     languagesList->insertItem("german");
00139     languagesList->insertItem("germanb");
00140     languagesList->insertItem("hungarian");
00141     languagesList->insertItem("magyar");
00142     languagesList->insertItem("italian");
00143     languagesList->insertItem("norsk");
00144     languagesList->insertItem("nynorsk");
00145     languagesList->insertItem("polish");
00146     languagesList->insertItem("portuges");
00147     languagesList->insertItem("romanian");
00148     languagesList->insertItem("russian");
00149     languagesList->insertItem("spanish");
00150     languagesList->insertItem("slovak" );
00151     languagesList->insertItem("slovene");
00152     languagesList->insertItem("swedish");
00153     languagesList->insertItem("turkish");
00154 }
00155 
00156 /*
00157  *  Destroys the object and frees any allocated resources
00158  */
00159 KWordLatexExportDia::~KWordLatexExportDia()
00160 {
00161     delete _iface;
00162   delete _config;
00163 }
00164 
00169 void KWordLatexExportDia::reject()
00170 {
00171     kdDebug(30522) << "Export cancelled" << endl;
00172     QDialog::reject();
00173 }
00174 
00179 void KWordLatexExportDia::accept()
00180 {
00181     hide();
00182     kdDebug(30522) << "KWORD LATEX EXPORT FILTER --> BEGIN" << endl;
00183     Config* config = Config::instance();
00184     
00185     /* Document tab */
00186     if(embededButton == typeGroup->selected())
00187         config->setEmbeded(true);
00188     else
00189         config->setEmbeded(false);
00190     if(kwordStyleButton == styleGroup->selected())
00191         config->useKwordStyle();
00192     else
00193         config-> useLatexStyle();
00194     
00195     /* class names are not translated */
00196     config->setClass(classComboBox->currentText());
00197 
00198     if(qualityComboBox->currentItem() == 0)
00199         config->setQuality("final");
00200     else
00201         config->setQuality("draft");
00202     config->setDefaultFontSize(defaultFontSize->value());
00203     
00204     /* Pictures tab */
00205     if(pictureCheckBox->isChecked())
00206         config->convertPictures();
00207     config->setPicturesDir(pathPictures->url());
00208     
00209     /* Language tab */
00210     config->setEncoding(encodingComboBox->currentText());
00211     for(unsigned int index = 0; index < langUsedList->count(); index++)
00212     {
00213         kdDebug(30522) << "lang. : " << langUsedList->item(index)->text() << endl;
00214         config->addLanguage(langUsedList->item(index)->text());
00215     }
00216     
00217     /* The default language is the first language in the list */
00218     if(langUsedList->item(0) != NULL)
00219         config->setDefaultLanguage(langUsedList->item(0)->text());
00220     kdDebug(30522) << "default lang. : " << langUsedList->currentText() << endl;
00221     config->setDefaultLanguage(langUsedList->currentText());
00222 
00223     Xml2LatexParser LATEXParser(_in, _fileOut, config);
00224     kdDebug(30522) << "---------- analyse input file -------------" << endl;
00225     LATEXParser.analyse();
00226     kdDebug(30522) << "---------- generate output file -------------" << endl;
00227     LATEXParser.generate();
00228     kdDebug(30522) << "KWORD LATEX EXPORT FILTER --> END" << endl;
00229 }
00230 
00231 void KWordLatexExportDia::addLanguage()
00232 {
00233     kdDebug(30522) << "add a new language supported" << languagesList->currentText() << endl;
00234     QString text = languagesList->currentText();
00235     languagesList->removeItem(languagesList->currentItem());
00236     langUsedList->insertItem(text);
00237 }
00238 
00239 void KWordLatexExportDia::removeLanguage()
00240 {
00241     kdDebug(30522) << "remove the language" << langUsedList->currentText() << endl;
00242     QString text = langUsedList->currentText();
00243     langUsedList->removeItem(langUsedList->currentItem());
00244     languagesList->insertItem(text);
00245 }
00246 
00247 #include <kwordlatexexportdia.moc>
KDE Home | KDE Accessibility Home | Description of Access Keys