1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * Copyright (C) 2018 KeePassXC Team <team@keepassxc.org>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 or (at your option)
- * version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- #include "TemporaryFile.h"
- TemporaryFile::TemporaryFile()
- : TemporaryFile(nullptr)
- {
- }
- TemporaryFile::TemporaryFile(const QString& templateName)
- : TemporaryFile(templateName, nullptr)
- {
- }
- TemporaryFile::TemporaryFile(QObject* parent)
- : QFile(parent)
- {
- QTemporaryFile tmp;
- tmp.open();
- QFile::setFileName(tmp.fileName());
- tmp.close();
- }
- TemporaryFile::TemporaryFile(const QString& templateName, QObject* parent)
- : QFile(parent)
- {
- QTemporaryFile tmp(templateName);
- tmp.open();
- QFile::setFileName(tmp.fileName());
- tmp.close();
- }
- TemporaryFile::~TemporaryFile()
- {
- remove();
- }
- bool TemporaryFile::open()
- {
- return QFile::open(QIODevice::ReadWrite);
- }
- bool TemporaryFile::copyFromFile(const QString& otherFileName)
- {
- close();
- if (!open(QFile::WriteOnly | QFile::Truncate)) {
- return false;
- }
- QFile otherFile(otherFileName);
- if (!otherFile.open(QFile::ReadOnly)) {
- close();
- return false;
- }
- QByteArray data;
- while (!(data = otherFile.read(1024)).isEmpty()) {
- write(data);
- }
- otherFile.close();
- close();
- return true;
- }
|