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

KDECore

  • 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
27class 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
43KTemporaryFile::KTemporaryFile(const KComponentData &componentData)
44 : d(new KTemporaryFilePrivate(componentData))
45{
46 QString temp(d->defaultPrefix());
47 setFileTemplate(temp + QLatin1String("XXXXXX.tmp"));
48}
49
50KTemporaryFile::~KTemporaryFile()
51{
52 delete d;
53}
54
55void 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
72void 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}
KComponentData
Per component data.
Definition: kcomponentdata.h:47
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:2097
KTemporaryFile::setPrefix
void setPrefix(const QString &prefix)
Sets a prefix to use when creating the file.
Definition: ktemporaryfile.cpp:55
KTemporaryFile::setSuffix
void setSuffix(const QString &suffix)
Sets a suffix to use when creating the file.
Definition: ktemporaryfile.cpp:72
KTemporaryFile::KTemporaryFile
KTemporaryFile(const KComponentData &componentData=KGlobal::mainComponent())
Construct a new KTemporaryFile.
Definition: ktemporaryfile.cpp:43
KTemporaryFile::~KTemporaryFile
virtual ~KTemporaryFile()
Destructor.
Definition: ktemporaryfile.cpp:50
QString
kcomponentdata.h
kstandarddirs.h
prefix
QString prefix()
Definition: kstandarddirs_win.cpp:28
ktemporaryfile.h
KGlobal::dirs
KStandardDirs * dirs()
Returns the application standard dirs object.
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.

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-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