KIO
Go to the documentation of this file.
27 #include <qtextcodec.h>
28 #include <QtGui/QApplication>
30 #include <sys/types.h>
41 class KIEBookmarkImporter :
public QObject
45 KIEBookmarkImporter(
const QString & fileName ) : m_fileName(fileName) {}
46 ~KIEBookmarkImporter() {}
48 void parseIEBookmarks();
51 static QString IEBookmarksDir();
54 void newBookmark(
const QString & text,
const QString & url,
const QString & additionalInfo );
55 void newFolder(
const QString & text,
bool open,
const QString & additionalInfo );
60 void parseIEBookmarks_dir(
const QString &dirname,
const QString &name = QString() );
61 void parseIEBookmarks_url_file(
const QString &filename,
const QString &name );
66 void KIEBookmarkImporter::parseIEBookmarks_url_file(
const QString &filename,
const QString &name ) {
67 static const int g_lineLimit = 16*1024;
71 if(
f.open(QIODevice::ReadOnly)) {
73 QByteArray s(g_lineLimit,0);
75 while(
f.readLine(s.data(), g_lineLimit)>=0) {
76 if ( s[s.length()-1] !=
'\n' )
78 kWarning() <<
"IE bookmarks contain a line longer than " << g_lineLimit <<
". Skipping.";
81 QByteArray t = s.trimmed();
82 QRegExp rx(
"URL=(.*)" );
83 if (rx.exactMatch(t)) {
84 emit newBookmark( name, rx.cap(1), QString(
"") );
92 void KIEBookmarkImporter::parseIEBookmarks_dir(
const QString &dirname,
const QString &foldername )
96 dir.setFilter( QDir::Files | QDir::Dirs | QDir::AllDirs );
97 dir.setSorting( QFlags<QDir::SortFlag>(QDir::Name | QDir::DirsFirst) );
98 dir.setNameFilters(QStringList(
"*.url"));
100 const QFileInfoList
list =
dir.entryInfoList();
101 if (
list.isEmpty())
return;
103 if (dirname != m_fileName)
104 emit newFolder( foldername,
false,
"" );
106 foreach (
const QFileInfo &fi,
list) {
107 if (fi.fileName() ==
"." || fi.fileName() ==
"..")
continue;
110 parseIEBookmarks_dir(fi.absoluteFilePath(), fi.fileName());
112 }
else if (fi.isFile()) {
113 if (fi.fileName().endsWith(QLatin1String(
".url"))) {
114 QString
name = fi.fileName();
116 parseIEBookmarks_url_file(fi.absoluteFilePath(), name);
122 if (dirname != m_fileName)
127 void KIEBookmarkImporter::parseIEBookmarks( )
129 parseIEBookmarks_dir( m_fileName );
132 QString KIEBookmarkImporter::IEBookmarksDir()
143 importer.parseIEBookmarks();
161 IEExporter(
const QString & );
173 s.replace(QRegExp(
"[/\\:*?\"<>|]"),
"_");
177 IEExporter::IEExporter(
const QString & dname ) {
178 m_currentDir.setPath( dname );
181 void IEExporter::visit(
const KBookmark &bk ) {
185 if (file.open(QIODevice::WriteOnly)) {
186 QTextStream ts( &file );
187 ts <<
"[InternetShortcut]\r\n";
188 ts <<
"URL=" << bk.
url().
url().toUtf8() <<
"\r\n";
195 m_currentDir.mkdir( dname );
196 m_currentDir.cd( dname );
206 exporter.write( parent );
209 #include "kbookmarkimporter_ie.moc"
KUrl url() const
URL contained by the bookmark.
virtual QString findDefaultLocation(bool forSaving=false) const
virtual void visit(const KBookmark &)
static QString ieStyleQuote(const QString &str)
void setupSignalForwards(QObject *src, QObject *dst)
QStringList list(const QString &fileClass)
Returns a list of directories associated with this file-class.
A class for importing IE bookmarks.
virtual void visitEnter(const KBookmarkGroup &)
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
static QDebug kWarning(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
static QString getExistingDirectory(const KUrl &startDir=KUrl(), QWidget *parent=0, const QString &caption=QString())
Creates a modal directory-selection dialog and returns the selected directory (local only) or an empt...
static quint32 f(DES_KEY *key, quint32 r, char *subkey)
QString dir(const QString &fileClass)
Returns the most recently used directory accociated with this file-class.
QString fullText() const
Text shown for the bookmark, not truncated.
const char * name(StandardAction id)
virtual void visitLeave(const KBookmarkGroup &)
virtual void write(const KBookmarkGroup &)
void traverse(const KBookmarkGroup &)
FileJob * open(const KUrl &url, QIODevice::OpenMode mode)
Open ( random access I/O )
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Thu Jan 30 2020 00:00:00 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.