• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeio/tdefile
 

tdeio/tdefile

kencodingfiledialog.cpp
00001 // -*- c++ -*-
00002 /* This file is part of the KDE libraries
00003     Copyright (C) 2003 Joseph Wenninger <jowenn@kde.org>
00004                   2003 Andras Mantia <amantia@freemail.hu>
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public License
00017     along with this library; see the file COPYING.LIB.  If not, write to
00018     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019     Boston, MA 02110-1301, USA.
00020 */
00021 
00022 #include "config-tdefile.h"
00023 
00024 #include "kencodingfiledialog.h"
00025 #include <kcombobox.h>
00026 #include <tdetoolbar.h>
00027 #include <tdeglobal.h>
00028 #include <tdelocale.h>
00029 #include <kcharsets.h>
00030 #include <tqtextcodec.h>
00031 #include <tdediroperator.h>
00032 #include <tderecentdocument.h>
00033 
00034 struct KEncodingFileDialogPrivate
00035 {
00036     KComboBox *encoding;
00037 };
00038 
00039 KEncodingFileDialog::KEncodingFileDialog(const TQString& startDir, const TQString& encoding , const TQString& filter,
00040              const TQString& caption, KFileDialog::OperationMode type, TQWidget *parent, const char* name, bool modal)
00041    : KFileDialog(startDir,filter,parent,name,modal), d(new KEncodingFileDialogPrivate)
00042 {
00043   setCaption(caption);
00044   
00045   setOperationMode( type );
00046     
00047   TDEToolBar *tb = toolBar();
00048   tb->insertSeparator();
00049   int index = tb->insertCombo(TQStringList(), -1 /*id*/, false /*writable*/, 0 /*signal*/, 0 /*receiver*/, 0 /*slot*/ );
00050   d->encoding = tb->getCombo( tb->idAt( index ) );
00051   if ( !d->encoding )
00052       return;
00053 
00054   d->encoding->clear ();
00055   TQString sEncoding = encoding;
00056   if (sEncoding.isEmpty())
00057      sEncoding = TQString::fromLatin1(TDEGlobal::locale()->encoding());
00058   
00059   TQStringList encodings (TDEGlobal::charsets()->availableEncodingNames());
00060   int insert = 0;
00061   for (uint i=0; i < encodings.count(); i++)
00062   {
00063     bool found = false;
00064     TQTextCodec *codecForEnc = TDEGlobal::charsets()->codecForName(encodings[i], found);
00065 
00066     if (found)
00067     {
00068       d->encoding->insertItem (encodings[i]);
00069       if ( (codecForEnc->name() == sEncoding) || (encodings[i] == sEncoding) )
00070       {
00071         d->encoding->setCurrentItem(insert);
00072       }
00073 
00074       insert++;
00075     }
00076   }
00077         
00078      
00079 }
00080 
00081 KEncodingFileDialog::~KEncodingFileDialog()
00082 {
00083     delete d;
00084 }
00085 
00086 
00087 TQString KEncodingFileDialog::selectedEncoding() const
00088 {
00089   if (d->encoding)
00090      return d->encoding->currentText();
00091   else
00092     return TQString::null;     
00093 }
00094 
00095 
00096 KEncodingFileDialog::Result KEncodingFileDialog::getOpenFileNameAndEncoding(const TQString& encoding,
00097                      const TQString& startDir,
00098                                      const TQString& filter,
00099                                      TQWidget *parent, const TQString& caption)
00100 {
00101     KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent, 
00102     "filedialog", true);
00103 
00104     dlg.setMode( KFile::File | KFile::LocalOnly );
00105     dlg.ops->clearHistory();
00106     dlg.exec();
00107  
00108     Result res;
00109     res.fileNames<<dlg.selectedFile();
00110     res.encoding=dlg.selectedEncoding();    
00111     return res;
00112 }
00113 
00114 KEncodingFileDialog::Result KEncodingFileDialog::getOpenFileNamesAndEncoding(const TQString& encoding,
00115                       const TQString& startDir,
00116                                           const TQString& filter,
00117                                           TQWidget *parent,
00118                                           const TQString& caption)
00119 {
00120     KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent, 
00121     "filedialog", true);
00122     dlg.setMode(KFile::Files | KFile::LocalOnly);
00123     dlg.ops->clearHistory();
00124     dlg.exec();
00125 
00126     Result res;
00127     res.fileNames=dlg.selectedFiles();
00128     res.encoding=dlg.selectedEncoding();
00129     return res;
00130 }
00131 
00132 KEncodingFileDialog::Result KEncodingFileDialog::getOpenURLAndEncoding(const TQString& encoding, const TQString& startDir, 
00133                 const TQString& filter, TQWidget *parent, const TQString& caption)
00134 {
00135     KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent, 
00136         "filedialog", true);
00137 
00138     dlg.setMode( KFile::File );
00139     dlg.ops->clearHistory();
00140     dlg.exec();
00141 
00142     Result res;
00143     res.URLs<<dlg.selectedURL();
00144     res.encoding=dlg.selectedEncoding();
00145     return res;
00146 }
00147 
00148 KEncodingFileDialog::Result KEncodingFileDialog::getOpenURLsAndEncoding(const TQString& encoding, const TQString& startDir,
00149                                           const TQString& filter,
00150                                           TQWidget *parent,
00151                                           const TQString& caption)
00152 {
00153     KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent, 
00154     "filedialog", true);
00155 
00156     dlg.setMode(KFile::Files);
00157     dlg.ops->clearHistory();
00158     dlg.exec();
00159 
00160     Result res;
00161     res.URLs=dlg.selectedURLs();
00162     res.encoding=dlg.selectedEncoding();
00163     return res;
00164 }
00165 
00166 
00167 KEncodingFileDialog::Result KEncodingFileDialog::getSaveFileNameAndEncoding(const TQString& encoding,
00168                          const TQString& dir, 
00169                      const TQString& filter,
00170                                      TQWidget *parent,
00171                                      const TQString& caption)
00172 {
00173     bool specialDir = dir.at(0) == ':';
00174     KEncodingFileDialog dlg(specialDir?dir:TQString::null, encoding,filter,caption.isNull() ? i18n("Save As") : caption,
00175     Saving,parent, "filedialog", true);
00176 
00177     if ( !specialDir )
00178         dlg.setSelection( dir ); // may also be a filename
00179     dlg.exec();
00180 
00181     TQString filename = dlg.selectedFile();
00182     if (!filename.isEmpty())
00183         TDERecentDocument::add(filename);
00184 
00185     Result res;
00186     res.fileNames<<filename;
00187     res.encoding=dlg.selectedEncoding();
00188     return res;
00189 }
00190 
00191 
00192 KEncodingFileDialog::Result  KEncodingFileDialog::getSaveURLAndEncoding(const TQString& encoding,
00193                  const TQString& dir, const  TQString& filter,
00194                              TQWidget *parent, const TQString& caption)
00195 {
00196     bool specialDir = dir.at(0) == ':';
00197     KEncodingFileDialog dlg(specialDir?dir:TQString::null, encoding,filter,caption.isNull() ? i18n("Save As") : 
00198     caption, Saving,parent, "filedialog", true);
00199 
00200     if ( !specialDir )
00201     dlg.setSelection( dir ); // may also be a filename
00202 
00203     dlg.exec();
00204 
00205     KURL url = dlg.selectedURL();
00206     if (url.isValid())
00207         TDERecentDocument::add( url );
00208 
00209     Result res;
00210     res.URLs<<url;
00211     res.encoding=dlg.selectedEncoding();
00212     return res;
00213 }
00214 
00215 
00216 
00217 void KEncodingFileDialog::virtual_hook( int id, void* data ) 
00218 {
00219  KFileDialog::virtual_hook( id, data ); 
00220 }
00221 
00222 
00223 #include "kencodingfiledialog.moc"

tdeio/tdefile

Skip menu "tdeio/tdefile"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

tdeio/tdefile

Skip menu "tdeio/tdefile"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeio/tdefile by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.