• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • kio/kfile
 

kio/kfile

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

kio/kfile

Skip menu "kio/kfile"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

kio/kfile

Skip menu "kio/kfile"
  • arts
  • dcop
  • dnssd
  • interfaces
  •     interface
  •     library
  •   kspeech
  •   ktexteditor
  • kabc
  • kate
  • kcmshell
  • kdecore
  • kded
  • kdefx
  • kdeprint
  • kdesu
  • kdeui
  • kdoctools
  • khtml
  • kimgio
  • kinit
  • kio
  •   bookmarks
  •   httpfilter
  •   kfile
  •   kio
  •   kioexec
  •   kpasswdserver
  •   kssl
  • kioslave
  •   http
  • kjs
  • kmdi
  •   kmdi
  • knewstuff
  • kparts
  • krandr
  • kresources
  • kspell2
  • kunittest
  • kutils
  • kwallet
  • libkmid
  • libkscreensaver
Generated for kio/kfile by doxygen 1.8.11
This website is maintained by Timothy Pearson.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. |