• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KIO

  • kio
  • kfile
kencodingfiledialog.cpp
Go to the documentation of this file.
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 "kencodingfiledialog.h"
23
24#include <config-kfile.h>
25
26#include <kabstractfilewidget.h>
27#include <kcombobox.h>
28#include <kglobal.h>
29#include <klocale.h>
30#include <kcharsets.h>
31#include <QtCore/QTextCodec>
32#include <krecentdocument.h>
33
34struct KEncodingFileDialogPrivate
35{
36 KComboBox *encoding;
37};
38
39KEncodingFileDialog::KEncodingFileDialog(const QString& startDir, const QString& encoding , const QString& filter,
40 const QString& caption, KFileDialog::OperationMode type, QWidget *parent)
41 : KFileDialog(startDir,filter,parent), d(new KEncodingFileDialogPrivate)
42{
43 setCaption(caption);
44 //ops->clearHistory();
45
46 setOperationMode( type );
47
48 d->encoding = new KComboBox(this);
49 fileWidget()->setCustomWidget(i18n("Encoding:"), d->encoding);
50
51 d->encoding->clear ();
52 QString sEncoding = encoding;
53 QString systemEncoding = QLatin1String(KGlobal::locale()->encoding());
54 if (sEncoding.isEmpty() || sEncoding == "System")
55 sEncoding = systemEncoding;
56
57 const QStringList encodings (KGlobal::charsets()->availableEncodingNames());
58 int insert = 0, system = 0;
59 bool foundRequested=false;
60 foreach (const QString& encoding, encodings)
61 {
62 bool found = false;
63 QTextCodec *codecForEnc = KGlobal::charsets()->codecForName(encoding, found);
64
65 if (found)
66 {
67 d->encoding->addItem (encoding);
68 if ( (codecForEnc->name() == sEncoding) || (encoding == sEncoding) )
69 {
70 d->encoding->setCurrentIndex(insert);
71 foundRequested=true;
72 }
73
74 if ( (codecForEnc->name() == systemEncoding) || (encoding == systemEncoding) )
75 system=insert;
76 insert++;
77 }
78 }
79
80 if ( !foundRequested )
81 d->encoding->setCurrentIndex(system);
82
83}
84
85KEncodingFileDialog::~KEncodingFileDialog()
86{
87 delete d;
88}
89
90
91QString KEncodingFileDialog::selectedEncoding() const
92{
93 if (d->encoding)
94 return d->encoding->currentText();
95 else
96 return QString();
97}
98
99
100KEncodingFileDialog::Result KEncodingFileDialog::getOpenFileNameAndEncoding(const QString& encoding,
101 const QString& startDir,
102 const QString& filter,
103 QWidget *parent, const QString& caption)
104{
105 KEncodingFileDialog dlg(startDir, encoding, filter,
106 caption.isNull() ? i18n("Open") : caption,
107 Opening, parent);
108
109 dlg.setMode( KFile::File | KFile::LocalOnly );
110 dlg.exec();
111
112 Result res;
113 res.fileNames<<dlg.selectedFile();
114 res.encoding=dlg.selectedEncoding();
115 return res;
116}
117
118KEncodingFileDialog::Result KEncodingFileDialog::getOpenFileNamesAndEncoding(const QString& encoding,
119 const QString& startDir,
120 const QString& filter,
121 QWidget *parent,
122 const QString& caption)
123{
124 KEncodingFileDialog dlg(startDir, encoding, filter, caption.isNull() ? i18n("Open") : caption,
125 Opening, parent);
126 dlg.setMode(KFile::Files | KFile::LocalOnly);
127 dlg.exec();
128
129 Result res;
130 res.fileNames=dlg.selectedFiles();
131 res.encoding=dlg.selectedEncoding();
132 return res;
133}
134
135KEncodingFileDialog::Result KEncodingFileDialog::getOpenUrlAndEncoding(const QString& encoding, const QString& startDir,
136 const QString& filter, QWidget *parent, const QString& caption)
137{
138 KEncodingFileDialog dlg(startDir, encoding, filter,
139 caption.isNull() ? i18n("Open") : caption,
140 Opening, parent);
141
142 dlg.setMode( KFile::File );
143 dlg.exec();
144
145 Result res;
146 res.URLs<<dlg.selectedUrl();
147 res.encoding=dlg.selectedEncoding();
148 return res;
149}
150
151KEncodingFileDialog::Result KEncodingFileDialog::getOpenUrlsAndEncoding(const QString& encoding, const QString& startDir,
152 const QString& filter,
153 QWidget *parent,
154 const QString& caption)
155{
156 KEncodingFileDialog dlg(startDir, encoding, filter,
157 caption.isNull() ? i18n("Open") : caption,
158 Opening, parent);
159
160 dlg.setMode(KFile::Files);
161 dlg.exec();
162
163 Result res;
164 res.URLs=dlg.selectedUrls();
165 res.encoding=dlg.selectedEncoding();
166 return res;
167}
168
169
170KEncodingFileDialog::Result KEncodingFileDialog::getSaveFileNameAndEncoding(const QString& encoding,
171 const QString& dir,
172 const QString& filter,
173 QWidget *parent,
174 const QString& caption)
175{
176 KEncodingFileDialog dlg(dir, encoding, filter,
177 caption.isNull() ? i18n("Save As") : caption,
178 Saving, parent);
179 dlg.setMode(KFile::File);
180 dlg.exec();
181
182 QString filename = dlg.selectedFile();
183 if (!filename.isEmpty())
184 KRecentDocument::add(filename);
185
186 Result res;
187 res.fileNames<<filename;
188 res.encoding=dlg.selectedEncoding();
189 return res;
190}
191
192
193KEncodingFileDialog::Result KEncodingFileDialog::getSaveUrlAndEncoding(const QString& encoding,
194 const QString& dir, const QString& filter,
195 QWidget *parent, const QString& caption)
196{
197 KEncodingFileDialog dlg(dir, encoding, filter,
198 caption.isNull() ? i18n("Save As") : caption,
199 Saving, parent);
200 dlg.setMode(KFile::File);
201
202 Result res;
203 if (dlg.exec() == QDialog::Accepted) {
204 KUrl url = dlg.selectedUrl();
205 if (url.isValid())
206 KRecentDocument::add( url );
207 res.URLs<<url;
208 res.encoding=dlg.selectedEncoding();
209 }
210 return res;
211}
212
213#include "kencodingfiledialog.moc"
KAbstractFileWidget::setCustomWidget
virtual void setCustomWidget(QWidget *widget)=0
Set a custom widget that should be added to the bottom of the file dialog.
KCharsets::codecForName
QTextCodec * codecForName(const QString &n, bool &ok) const
KComboBox
KDialog::setCaption
virtual void setCaption(const QString &caption)
KEncodingFileDialog::Result
Definition: kencodingfiledialog.h:44
KEncodingFileDialog::Result::encoding
QString encoding
Definition: kencodingfiledialog.h:48
KEncodingFileDialog::Result::URLs
KUrl::List URLs
Definition: kencodingfiledialog.h:47
KEncodingFileDialog::Result::fileNames
QStringList fileNames
Definition: kencodingfiledialog.h:46
KEncodingFileDialog
Provides a user (and developer) friendly way to select files with support for choosing encoding.
Definition: kencodingfiledialog.h:40
KEncodingFileDialog::getOpenFileNameAndEncoding
static Result getOpenFileNameAndEncoding(const QString &encoding=QString(), const QString &startDir=QString(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and return the selected filename or an empty string if none was chosen ad...
Definition: kencodingfiledialog.cpp:100
KEncodingFileDialog::selectedEncoding
QString selectedEncoding() const
Definition: kencodingfiledialog.cpp:91
KEncodingFileDialog::getOpenUrlAndEncoding
static Result getOpenUrlAndEncoding(const QString &encoding=QString(), const QString &startDir=QString(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected encoding and URL or an empty string if none was ...
Definition: kencodingfiledialog.cpp:135
KEncodingFileDialog::KEncodingFileDialog
KEncodingFileDialog(const QString &startDir=QString(), const QString &encoding=QString(), const QString &filter=QString(), const QString &caption=QString(), KFileDialog::OperationMode type=KFileDialog::Opening, QWidget *parent=0)
Constructs a file dialog for text files with encoding selection possibility.
Definition: kencodingfiledialog.cpp:39
KEncodingFileDialog::getSaveUrlAndEncoding
static Result getSaveUrlAndEncoding(const QString &encoding=QString(), const QString &startDir=QString(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected encoding and filename or an empty string if none...
Definition: kencodingfiledialog.cpp:193
KEncodingFileDialog::getSaveFileNameAndEncoding
static Result getSaveFileNameAndEncoding(const QString &encoding=QString(), const QString &startDir=QString(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected encoding and filename or an empty string if none...
Definition: kencodingfiledialog.cpp:170
KEncodingFileDialog::getOpenUrlsAndEncoding
static Result getOpenUrlsAndEncoding(const QString &encoding=QString(), const QString &startDir=QString(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected encoding URLs or an empty list if none was chose...
Definition: kencodingfiledialog.cpp:151
KEncodingFileDialog::~KEncodingFileDialog
~KEncodingFileDialog()
Destructs the file dialog.
Definition: kencodingfiledialog.cpp:85
KEncodingFileDialog::getOpenFileNamesAndEncoding
static Result getOpenFileNamesAndEncoding(const QString &encoding=QString(), const QString &startDir=QString(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected encoding and the selected filenames or an empty ...
Definition: kencodingfiledialog.cpp:118
KFileDialog
Provides a user (and developer) friendly way to select files and directories.
Definition: kfiledialog.h:69
KFileDialog::selectedUrls
KUrl::List selectedUrls() const
Definition: kfiledialog.cpp:673
KFileDialog::selectedUrl
KUrl selectedUrl() const
Definition: kfiledialog.cpp:666
KFileDialog::setOperationMode
void setOperationMode(KFileDialog::OperationMode)
Sets the operational mode of the filedialog to Saving, Opening or Other.
Definition: kfiledialog.cpp:901
KFileDialog::setMode
void setMode(KFile::Modes m)
Sets the mode of the dialog.
Definition: kfiledialog.cpp:847
KFileDialog::selectedFile
QString selectedFile() const
Returns the full path of the selected file in the local filesystem.
Definition: kfiledialog.cpp:680
KFileDialog::OperationMode
OperationMode
Defines some default behavior of the filedialog.
Definition: kfiledialog.h:85
KFileDialog::Opening
@ Opening
Definition: kfiledialog.h:85
KFileDialog::Saving
@ Saving
Definition: kfiledialog.h:85
KFileDialog::selectedFiles
QStringList selectedFiles() const
Returns a list of all selected local files.
Definition: kfiledialog.cpp:687
KFileDialog::fileWidget
KAbstractFileWidget * fileWidget()
Returns the KFileWidget that implements most of this file dialog.
Definition: kfiledialog.cpp:959
KFileDialog::exec
int exec()
Definition: kfiledialog.cpp:965
KFile::LocalOnly
@ LocalOnly
Definition: kfile.h:49
KFile::Files
@ Files
Definition: kfile.h:47
KFile::File
@ File
Definition: kfile.h:45
KRecentDocument::add
static void add(const KUrl &url)
Add a new item to the Recent Document menu.
Definition: krecentdocument.cpp:88
KUrl
QWidget
config-kfile.h
kabstractfilewidget.h
kcharsets.h
kcombobox.h
kencodingfiledialog.h
kglobal.h
klocale.h
i18n
QString i18n(const char *text)
krecentdocument.h
KGlobal::charsets
KCharsets * charsets()
KGlobal::locale
KLocale * locale()
caption
QString caption()
insert
const KShortcut & insert()
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KIO

Skip menu "KIO"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal