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

tdeio/tdefile

  • tdeio
  • tdefile
kencodingfiledialog.cpp
1 /* This file is part of the KDE libraries
2  Copyright (C) 2003 Joseph Wenninger <jowenn@kde.org>
3  2003 Andras Mantia <amantia@freemail.hu>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Library General Public License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 
21 #include "config-tdefile.h"
22 
23 #include "kencodingfiledialog.h"
24 #include <kcombobox.h>
25 #include <tdetoolbar.h>
26 #include <tdeglobal.h>
27 #include <tdelocale.h>
28 #include <kcharsets.h>
29 #include <tqtextcodec.h>
30 #include <tdediroperator.h>
31 #include <tderecentdocument.h>
32 
33 struct KEncodingFileDialogPrivate
34 {
35  KComboBox *encoding;
36 };
37 
38 KEncodingFileDialog::KEncodingFileDialog(const TQString& startDir, const TQString& encoding , const TQString& filter,
39  const TQString& caption, KFileDialog::OperationMode type, TQWidget *parent, const char* name, bool modal)
40  : KFileDialog(startDir,filter,parent,name,modal), d(new KEncodingFileDialogPrivate)
41 {
42  setCaption(caption);
43 
44  setOperationMode( type );
45 
46  TDEToolBar *tb = toolBar();
47  tb->insertSeparator();
48  int index = tb->insertCombo(TQStringList(), -1 /*id*/, false /*writable*/, 0 /*signal*/, 0 /*receiver*/, 0 /*slot*/ );
49  d->encoding = tb->getCombo( tb->idAt( index ) );
50  if ( !d->encoding )
51  return;
52 
53  d->encoding->clear ();
54  TQString sEncoding = encoding;
55  if (sEncoding.isEmpty())
56  sEncoding = TQString::fromLatin1(TDEGlobal::locale()->encoding());
57 
58  TQStringList encodings (TDEGlobal::charsets()->availableEncodingNames());
59  int insert = 0;
60  for (uint i=0; i < encodings.count(); i++)
61  {
62  bool found = false;
63  TQTextCodec *codecForEnc = TDEGlobal::charsets()->codecForName(encodings[i], found);
64 
65  if (found)
66  {
67  d->encoding->insertItem (encodings[i]);
68  if ( (codecForEnc->name() == sEncoding) || (encodings[i] == sEncoding) )
69  {
70  d->encoding->setCurrentItem(insert);
71  }
72 
73  insert++;
74  }
75  }
76 
77 
78 }
79 
80 KEncodingFileDialog::~KEncodingFileDialog()
81 {
82  delete d;
83 }
84 
85 
86 TQString KEncodingFileDialog::selectedEncoding() const
87 {
88  if (d->encoding)
89  return d->encoding->currentText();
90  else
91  return TQString::null;
92 }
93 
94 
95 KEncodingFileDialog::Result KEncodingFileDialog::getOpenFileNameAndEncoding(const TQString& encoding,
96  const TQString& startDir,
97  const TQString& filter,
98  TQWidget *parent, const TQString& caption)
99 {
100  KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent,
101  "filedialog", true);
102 
103  dlg.setMode( KFile::File | KFile::LocalOnly );
104  dlg.ops->clearHistory();
105  dlg.exec();
106 
107  Result res;
108  res.fileNames<<dlg.selectedFile();
109  res.encoding=dlg.selectedEncoding();
110  return res;
111 }
112 
113 KEncodingFileDialog::Result KEncodingFileDialog::getOpenFileNamesAndEncoding(const TQString& encoding,
114  const TQString& startDir,
115  const TQString& filter,
116  TQWidget *parent,
117  const TQString& caption)
118 {
119  KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent,
120  "filedialog", true);
121  dlg.setMode(KFile::Files | KFile::LocalOnly);
122  dlg.ops->clearHistory();
123  dlg.exec();
124 
125  Result res;
126  res.fileNames=dlg.selectedFiles();
127  res.encoding=dlg.selectedEncoding();
128  return res;
129 }
130 
131 KEncodingFileDialog::Result KEncodingFileDialog::getOpenURLAndEncoding(const TQString& encoding, const TQString& startDir,
132  const TQString& filter, TQWidget *parent, const TQString& caption)
133 {
134  KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent,
135  "filedialog", true);
136 
137  dlg.setMode( KFile::File );
138  dlg.ops->clearHistory();
139  dlg.exec();
140 
141  Result res;
142  res.URLs<<dlg.selectedURL();
143  res.encoding=dlg.selectedEncoding();
144  return res;
145 }
146 
147 KEncodingFileDialog::Result KEncodingFileDialog::getOpenURLsAndEncoding(const TQString& encoding, const TQString& startDir,
148  const TQString& filter,
149  TQWidget *parent,
150  const TQString& caption)
151 {
152  KEncodingFileDialog dlg(startDir, encoding,filter,caption.isNull() ? i18n("Open") : caption,Opening,parent,
153  "filedialog", true);
154 
155  dlg.setMode(KFile::Files);
156  dlg.ops->clearHistory();
157  dlg.exec();
158 
159  Result res;
160  res.URLs=dlg.selectedURLs();
161  res.encoding=dlg.selectedEncoding();
162  return res;
163 }
164 
165 
166 KEncodingFileDialog::Result KEncodingFileDialog::getSaveFileNameAndEncoding(const TQString& encoding,
167  const TQString& dir,
168  const TQString& filter,
169  TQWidget *parent,
170  const TQString& caption)
171 {
172  bool specialDir = dir.at(0) == ':';
173  KEncodingFileDialog dlg(specialDir?dir:TQString::null, encoding,filter,caption.isNull() ? i18n("Save As") : caption,
174  Saving,parent, "filedialog", true);
175 
176  if ( !specialDir )
177  dlg.setSelection( dir ); // may also be a filename
178  dlg.exec();
179 
180  TQString filename = dlg.selectedFile();
181  if (!filename.isEmpty())
182  TDERecentDocument::add(filename);
183 
184  Result res;
185  res.fileNames<<filename;
186  res.encoding=dlg.selectedEncoding();
187  return res;
188 }
189 
190 
191 KEncodingFileDialog::Result KEncodingFileDialog::getSaveURLAndEncoding(const TQString& encoding,
192  const TQString& dir, const TQString& filter,
193  TQWidget *parent, const TQString& caption)
194 {
195  bool specialDir = dir.at(0) == ':';
196  KEncodingFileDialog dlg(specialDir?dir:TQString::null, encoding,filter,caption.isNull() ? i18n("Save As") :
197  caption, Saving,parent, "filedialog", true);
198 
199  if ( !specialDir )
200  dlg.setSelection( dir ); // may also be a filename
201 
202  dlg.exec();
203 
204  KURL url = dlg.selectedURL();
205  if (url.isValid())
206  TDERecentDocument::add( url );
207 
208  Result res;
209  res.URLs<<url;
210  res.encoding=dlg.selectedEncoding();
211  return res;
212 }
213 
214 
215 
216 void KEncodingFileDialog::virtual_hook( int id, void* data )
217 {
218  KFileDialog::virtual_hook( id, data );
219 }
220 
221 
222 #include "kencodingfiledialog.moc"
KDirOperator::clearHistory
void clearHistory()
Clears the forward and backward history.
Definition: tdediroperator.cpp:1635
KEncodingFileDialog
Provides a user (and developer) friendly way to select files with support for choosing encoding.
Definition: kencodingfiledialog.h:39
KEncodingFileDialog::KEncodingFileDialog
KEncodingFileDialog(const TQString &startDir=TQString::null, const TQString &encoding=TQString::null, const TQString &filter=TQString::null, const TQString &caption=TQString::null, KFileDialog::OperationMode type=KFileDialog::Opening, TQWidget *parent=0, const char *name="", bool modal=true)
Constructs a file dialog for text files with encoding selection possibility.
Definition: kencodingfiledialog.cpp:38
KEncodingFileDialog::selectedEncoding
TQString selectedEncoding() const
Definition: kencodingfiledialog.cpp:86
KEncodingFileDialog::getSaveFileNameAndEncoding
static Result getSaveFileNameAndEncoding(const TQString &encoding=TQString::null, const TQString &startDir=TQString::null, const TQString &filter=TQString::null, TQWidget *parent=0, const TQString &caption=TQString::null)
Creates a modal file dialog and returns the selected encoding and filename or an empty string if none...
Definition: kencodingfiledialog.cpp:166
KEncodingFileDialog::getOpenURLAndEncoding
static Result getOpenURLAndEncoding(const TQString &encoding=TQString::null, const TQString &startDir=TQString::null, const TQString &filter=TQString::null, TQWidget *parent=0, const TQString &caption=TQString::null)
Creates a modal file dialog and returns the selected encoding and URL or an empty string if none was ...
Definition: kencodingfiledialog.cpp:131
KEncodingFileDialog::getOpenURLsAndEncoding
static Result getOpenURLsAndEncoding(const TQString &encoding=TQString::null, const TQString &startDir=TQString::null, const TQString &filter=TQString::null, TQWidget *parent=0, const TQString &caption=TQString::null)
Creates a modal file dialog and returns the selected encoding URLs or an empty list if none was chose...
Definition: kencodingfiledialog.cpp:147
KEncodingFileDialog::getOpenFileNameAndEncoding
static Result getOpenFileNameAndEncoding(const TQString &encoding=TQString::null, const TQString &startDir=TQString::null, const TQString &filter=TQString::null, TQWidget *parent=0, const TQString &caption=TQString::null)
Creates a modal file dialog and return the selected filename or an empty string if none was chosen ad...
Definition: kencodingfiledialog.cpp:95
KEncodingFileDialog::~KEncodingFileDialog
~KEncodingFileDialog()
Destructs the file dialog.
Definition: kencodingfiledialog.cpp:80
KEncodingFileDialog::getSaveURLAndEncoding
static Result getSaveURLAndEncoding(const TQString &encoding=TQString::null, const TQString &startDir=TQString::null, const TQString &filter=TQString::null, TQWidget *parent=0, const TQString &caption=TQString::null)
Creates a modal file dialog and returns the selected encoding and filename or an empty string if none...
Definition: kencodingfiledialog.cpp:191
KEncodingFileDialog::getOpenFileNamesAndEncoding
static Result getOpenFileNamesAndEncoding(const TQString &encoding=TQString::null, const TQString &startDir=TQString::null, const TQString &filter=TQString::null, TQWidget *parent=0, const TQString &caption=TQString::null)
Creates a modal file dialog and returns the selected encoding and the selected filenames or an empty ...
Definition: kencodingfiledialog.cpp:113
KFileDialog
Provides a user (and developer) friendly way to select files and directories.
Definition: tdefiledialog.h:77
KFileDialog::setOperationMode
void setOperationMode(KFileDialog::OperationMode)
Sets the operational mode of the filedialog to Saving, Opening or Other.
Definition: tdefiledialog.cpp:1834
KFileDialog::selectedURL
KURL selectedURL() const
Definition: tdefiledialog.cpp:1447
KFileDialog::selectedFile
TQString selectedFile() const
Returns the full path of the selected file in the local filesystem.
Definition: tdefiledialog.cpp:1548
KFileDialog::setMode
void setMode(KFile::Mode m)
Convenient overload of the other setMode(unsigned int) method.
Definition: tdefiledialog.cpp:1676
KFileDialog::setSelection
void setSelection(const TQString &name)
Sets the file name to preselect to name.
Definition: tdefiledialog.cpp:1220
KFileDialog::OperationMode
OperationMode
Defines some default behavior of the filedialog.
Definition: tdefiledialog.h:93
KFileDialog::toolBar
TDEToolBar * toolBar() const
Returns a pointer to the toolbar.
Definition: tdefiledialog.h:721
KFileDialog::selectedURLs
KURL::List selectedURLs() const
Definition: tdefiledialog.cpp:1455
KFileDialog::selectedFiles
TQStringList selectedFiles() const
Returns a list of all selected local files.
Definition: tdefiledialog.cpp:1564
TDERecentDocument::add
static void add(const KURL &url)
Add a new item to the Recent Document menu.
Definition: tderecentdocument.cpp:75

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.9.1
This website is maintained by Timothy Pearson.