filters

kspreadlatexexportdiaImpl.cc

00001 /* This file is part of the KDE project
00002    Copyright (C) 2002, 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 <kspreadlatexexportdiaImpl.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 
00045 #include "document.h"
00046 
00047 /*#ifdef __FreeBSD__
00048 #include <unistd.h>
00049 #endif*/
00050 
00051 /*
00052  *  Constructs a KSpreadLatexExportDiaImpl which is a child of 'parent', with the
00053  *  name 'name' and widget flags set to 'f'.
00054  *
00055  *  The dialog will by default be modeless, unless you set 'modal' to
00056  *  TRUE to construct a modal dialog.
00057  */
00058 KSpreadLatexExportDiaImpl::KSpreadLatexExportDiaImpl(KoStore* in, QWidget* parent, 
00059         const char* name_, bool modal, WFlags fl )
00060     : LatexExportDia( parent, name_, modal, fl ), _in( in )
00061 {
00062     int i = 0;
00063 
00064     kapp->restoreOverrideCursor();
00065 
00066     /* Recent files */
00067     _config = new KConfig("kspreadlatexexportdialog");
00068     _config->setGroup( "KSpread latex export filter" );
00069     QString value;
00070     while(i < 10)
00071     {
00072         /*value = _config->readPathEntry( QString("Recent%1").arg(i) );
00073         kdDebug(30522) << "recent : " << value << endl;
00074         if(!value.isEmpty())
00075         {
00076             _recentList.append( value );
00077             recentBox->insertItem(value);
00078         }
00079         else
00080             i = 10;*/
00081         i = i + 1;
00082     }
00083 
00084     _iface = new LatexExportIface(this);
00085     if(!kapp->dcopClient()->isRegistered() )
00086     {
00087         kapp->dcopClient()->registerAs("FilterConfigDia");
00088         kapp->dcopClient()->setDefaultObject(_iface->objId());
00089     }
00090     
00091     /* All these items inserted must not be translated so they are inserted here 
00092      * without i18n() method. */
00093     /*qualityComboBox->insertItem("final");
00094   qualityComboBox->insertItem("draft");*/
00095 
00096     classComboBox->insertItem("article");
00097   classComboBox->insertItem("book");
00098   classComboBox->insertItem("letter");
00099   classComboBox->insertItem("report");
00100   classComboBox->insertItem("slides");
00101 
00102     encodingComboBox->insertItem("unicode");
00103   encodingComboBox->insertItem("ansinew");
00104   encodingComboBox->insertItem("applemac");
00105   encodingComboBox->insertItem("ascii");
00106   encodingComboBox->insertItem("latin1");
00107   encodingComboBox->insertItem("latin2");
00108   encodingComboBox->insertItem("latin3");
00109   encodingComboBox->insertItem("latin5");
00110   encodingComboBox->insertItem("cp437");
00111   encodingComboBox->insertItem("cp437de");
00112   encodingComboBox->insertItem("cp850");
00113   encodingComboBox->insertItem("cp852");
00114   encodingComboBox->insertItem("cp865");
00115   encodingComboBox->insertItem("cp1250");
00116   encodingComboBox->insertItem("cp1252");
00117   encodingComboBox->insertItem("decmulti");
00118   encodingComboBox->insertItem("next");
00119 
00120     languagesList->insertItem("american");
00121     languagesList->insertItem("austrian");
00122     languagesList->insertItem("bahasa");
00123     languagesList->insertItem("brazil");
00124     languagesList->insertItem("breton");
00125     languagesList->insertItem("catalan");
00126     languagesList->insertItem("croatian");
00127     languagesList->insertItem("czech");
00128     languagesList->insertItem("danish");
00129     languagesList->insertItem("dutch");
00130     languagesList->insertItem("english");
00131     languagesList->insertItem("esperanto");
00132     languagesList->insertItem("finnish");
00133     languagesList->insertItem("francais");
00134     languagesList->insertItem("french");
00135     languagesList->insertItem("galician");
00136     languagesList->insertItem("german");
00137     languagesList->insertItem("germanb");
00138     languagesList->insertItem("hungarian");
00139     languagesList->insertItem("magyar");
00140     languagesList->insertItem("italian");
00141     languagesList->insertItem("norsk");
00142     languagesList->insertItem("nynorsk");
00143     languagesList->insertItem("polish");
00144     languagesList->insertItem("portuges");
00145     languagesList->insertItem("romanian");
00146     languagesList->insertItem("russian");
00147     languagesList->insertItem("spanish");
00148     languagesList->insertItem("slovak" );
00149     languagesList->insertItem("slovene");
00150     languagesList->insertItem("swedish");
00151     languagesList->insertItem("turkish");
00152 }
00153 
00154 /*
00155  *  Destroys the object and frees any allocated resources
00156  */
00157 KSpreadLatexExportDiaImpl::~KSpreadLatexExportDiaImpl()
00158 {
00159     delete _config;
00160 }
00161 
00166 void KSpreadLatexExportDiaImpl::reject()
00167 {
00168     kdDebug(30522) << "Export cancelled" << endl;
00169     QDialog::reject();
00170 }
00171 
00176 void KSpreadLatexExportDiaImpl::accept()
00177 {
00178     hide();
00179     kdDebug(30522) << "KSPREAD LATEX EXPORT FILTER --> BEGIN" << endl;
00180     Config* config = Config::instance();
00181     
00182     /* Document tab */
00183     if(embededButton == typeGroup->selected())
00184         config->setEmbeded(true);
00185     else
00186         config->setEmbeded(false);
00187     if(kwordStyleButton == styleGroup->selected())
00188         config->useKwordStyle();
00189     else
00190         config-> useLatexStyle();
00191     /* class names are not translated */
00192     config->setClass(classComboBox->currentText());
00193 
00194     if(qualityComboBox->currentItem() == 0)
00195         config->setQuality("final");
00196     else
00197         config->setQuality("draft");
00198     config->setDefaultFontSize(defaultFontSize->value());
00199     
00200     /* Pictures tab */
00201     if(pictureCheckBox->isChecked())
00202         config->convertPictures();
00203     config->setPicturesDir(pathPictures->url());
00204     
00205     /* Language tab */
00206     config->setEncoding(encodingComboBox->currentText());
00207     for(unsigned int index = 0; index < langUsedList->count(); index++)
00208     {
00209         kdDebug(30522) << "lang. : " << langUsedList->item(index)->text() << endl;
00210         config->addLanguage(langUsedList->item(index)->text());
00211     }
00212     
00213     /* The default language is the first language in the list */
00214     if(langUsedList->item(0) != NULL)
00215         config->setDefaultLanguage(langUsedList->item(0)->text());
00216     if( !(langUsedList->currentText().isEmpty()) )
00217     {
00218         kdDebug(30522) << "default lang. : " << langUsedList->currentText() << endl;
00219         config->setDefaultLanguage(langUsedList->currentText());
00220     }
00221 
00222     Document doc(_in, _fileOut);    
00223     kdDebug(30522) << "---------- analyse file -------------" << endl;
00224     doc.analyse();
00225     kdDebug(30522) << "---------- generate file -------------" << endl;
00226     doc.generate();
00227     kdDebug(30522) << "KSPREAD LATEX EXPORT FILTER --> END" << endl;
00228 }
00229 
00230 void KSpreadLatexExportDiaImpl::addLanguage()
00231 {
00232     kdDebug(30522) << "add a new language supported" << languagesList->currentText() << endl;
00233     QString text = languagesList->currentText();
00234     languagesList->removeItem(languagesList->currentItem());
00235     langUsedList->insertItem(text);
00236 }
00237 
00238 void KSpreadLatexExportDiaImpl::removeLanguage()
00239 {
00240     kdDebug(30522) << "remove a lanugage" << langUsedList->currentText() << endl;
00241     QString text = langUsedList->currentText();
00242     langUsedList->removeItem(langUsedList->currentItem());
00243     languagesList->insertItem(text);
00244 }
00245 
00246 #include <kspreadlatexexportdiaImpl.moc>
KDE Home | KDE Accessibility Home | Description of Access Keys