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

KDECore

  • sources
  • kde-4.14
  • kdelibs
  • kdecore
  • io
ktemporaryfile.cpp
Go to the documentation of this file.
1 /* kate: tab-indents off; replace-tabs on; tab-width 4; remove-trailing-space on; encoding utf-8;*/
2 /* This file is part of the KDE libraries
3  * Copyright 2006 Jaison Lee <lee.jaison@gmail.com>
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 "ktemporaryfile.h"
22 #include "kcomponentdata.h"
23 #include "kstandarddirs.h"
24 
25 #include <QDir>
26 
27 class KTemporaryFilePrivate
28 {
29  public:
30  KTemporaryFilePrivate(const KComponentData &c)
31  : componentData(c)
32  {
33  }
34 
35  inline QString defaultPrefix() const
36  {
37  return KStandardDirs::locateLocal("tmp", componentData.componentName(), componentData);
38  }
39 
40  KComponentData componentData;
41 };
42 
43 KTemporaryFile::KTemporaryFile(const KComponentData &componentData)
44  : d(new KTemporaryFilePrivate(componentData))
45 {
46  QString temp(d->defaultPrefix());
47  setFileTemplate(temp + QLatin1String("XXXXXX.tmp"));
48 }
49 
50 KTemporaryFile::~KTemporaryFile()
51 {
52  delete d;
53 }
54 
55 void KTemporaryFile::setPrefix(const QString &prefix)
56 {
57  QString oldTemplate = fileTemplate();
58  QString suffix = oldTemplate.mid(oldTemplate.lastIndexOf(QLatin1String("XXXXXX"))+6);
59  QString newPrefix = prefix;
60 
61  if ( newPrefix.isEmpty() ) {
62  newPrefix = d->defaultPrefix();
63  } else {
64  if ( !QDir::isAbsolutePath(newPrefix) ) {
65  newPrefix.prepend(KGlobal::dirs()->saveLocation("tmp"));
66  }
67  }
68 
69  setFileTemplate(newPrefix + QLatin1String("XXXXXX") + suffix);
70 }
71 
72 void KTemporaryFile::setSuffix(const QString &suffix)
73 {
74  QString oldTemplate = fileTemplate();
75  QString prefix = oldTemplate.left(oldTemplate.indexOf(QLatin1String("XXXXXX")));
76 
77  setFileTemplate(prefix + QLatin1String("XXXXXX") + suffix);
78 }
QString::indexOf
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
KTemporaryFile::setPrefix
void setPrefix(const QString &prefix)
Sets a prefix to use when creating the file.
Definition: ktemporaryfile.cpp:55
QString::prepend
QString & prepend(QChar ch)
KGlobal::dirs
KStandardDirs * dirs()
Returns the application standard dirs object.
KTemporaryFile::setSuffix
void setSuffix(const QString &suffix)
Sets a suffix to use when creating the file.
Definition: ktemporaryfile.cpp:72
prefix
QString prefix()
Definition: kstandarddirs_win.cpp:28
QString::lastIndexOf
int lastIndexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
QString::isEmpty
bool isEmpty() const
QTemporaryFile::setFileTemplate
void setFileTemplate(const QString &name)
QString
ktemporaryfile.h
QDir::isAbsolutePath
bool isAbsolutePath(const QString &path)
QString::mid
QString mid(int position, int n) const
QLatin1String
KStandardDirs::locateLocal
static QString locateLocal(const char *type, const QString &filename, const KComponentData &cData=KGlobal::mainComponent())
This function is much like locate.
Definition: kstandarddirs.cpp:2091
kstandarddirs.h
QString::left
QString left(int n) const
kcomponentdata.h
KTemporaryFile::~KTemporaryFile
virtual ~KTemporaryFile()
Destructor.
Definition: ktemporaryfile.cpp:50
QTemporaryFile::fileTemplate
QString fileTemplate() const
KTemporaryFile::KTemporaryFile
KTemporaryFile(const KComponentData &componentData=KGlobal::mainComponent())
Construct a new KTemporaryFile.
Definition: ktemporaryfile.cpp:43
KComponentData
Per component data.
Definition: kcomponentdata.h:46
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:22:11 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDECore

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

kdelibs API Reference

Skip menu "kdelibs 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

Search



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