diff options
Diffstat (limited to 'src/util/tool.cpp')
-rw-r--r-- | src/util/tool.cpp | 98 |
1 files changed, 62 insertions, 36 deletions
diff --git a/src/util/tool.cpp b/src/util/tool.cpp index b8ee486..ca8024a 100644 --- a/src/util/tool.cpp +++ b/src/util/tool.cpp @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2011 by the BibleTime developers. +* Copyright 1999-2014 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ @@ -18,25 +18,38 @@ #include <QWidget> #include "backend/drivers/cswordmoduleinfo.h" #include "backend/managers/cswordbackend.h" +#include "bibletimeapp.h" +#include "frontend/messagedialog.h" #include "util/cresmgr.h" #include "util/directory.h" -#include "util/dialogutil.h" +#include "util/geticon.h" + + +namespace util { +namespace tool { /** Creates the file filename and put text into the file. */ -bool util::tool::savePlainFile( const QString& filename, const QString& text, const bool& forceOverwrite, QTextCodec* fileCodec) { +bool savePlainFile(const QString & filename, + const QString & text, + const bool forceOverwrite, + QTextCodec * const fileCodec) +{ + Q_ASSERT(fileCodec); + Q_ASSERT(!filename.isEmpty()); + QFile saveFile(filename); - bool ret; if (saveFile.exists()) { - if (!forceOverwrite && util::showQuestion(0, QObject::tr("Overwrite File?"), + if (!forceOverwrite + && message::showQuestion(0, QObject::tr("Overwrite File?"), QString::fromLatin1("<qt><b>%1</b><br/>%2</qt>") .arg( QObject::tr("The file already exists.") ) .arg( QObject::tr("Do you want to overwrite it?")), QMessageBox::Yes | QMessageBox::No, - QMessageBox::No) == QMessageBox::No - ) { + QMessageBox::No) == QMessageBox::No) + { return false; } else { //either the user chose yes or forceOverwrite is set @@ -44,37 +57,42 @@ bool util::tool::savePlainFile( const QString& filename, const QString& text, co } } - if ( saveFile.open(QIODevice::ReadWrite) ) { - QTextStream textstream( &saveFile ); + if (saveFile.open(QIODevice::ReadWrite)) { + QTextStream textstream(&saveFile); textstream.setCodec(fileCodec); textstream << text; + textstream.flush(); saveFile.close(); - ret = true; + if (saveFile.error() == QFile::NoError) + return true; + + QMessageBox::critical(0, QObject::tr("Error"), + QString::fromLatin1("<qt>%1<br/><b>%2</b></qt>") + .arg(QObject::tr("Error while writing to file.")) + .arg(QObject::tr("Please check that enough disk space is available."))); } else { QMessageBox::critical(0, QObject::tr("Error"), QString::fromLatin1("<qt>%1<br/><b>%2</b></qt>") - .arg( QObject::tr("The file couldn't be saved.") ) - .arg( QObject::tr("Please check permissions etc."))); - saveFile.close(); - ret = false; + .arg(QObject::tr("The file couldn't be opened for saving.")) + .arg(QObject::tr("Please check permissions etc."))); } - return ret; + + return false; } -QIcon util::tool::getIconForModule(const CSwordModuleInfo *module) { - namespace DU = util::directory; - return DU::getIcon(getIconNameForModule(module)); +QIcon getIconForModule(const CSwordModuleInfo * const module) { + return util::getIcon(getIconNameForModule(module)); } -QString util::tool::getIconNameForModule(const CSwordModuleInfo *module) { +QString getIconNameForModule(const CSwordModuleInfo * const module) { //qDebug() << "util::tool::getIconNameForModule"; - if (!module) return CResMgr::modules::book::icon_locked; + if (!module) + return CResMgr::modules::book::icon_locked; - if (module->category() == CSwordModuleInfo::Cult) { + if (module->category() == CSwordModuleInfo::Cult) return "stop.svg"; - } switch (module->type()) { case CSwordModuleInfo::Bible: @@ -116,13 +134,19 @@ QString util::tool::getIconNameForModule(const CSwordModuleInfo *module) { return CResMgr::modules::book::icon_unlocked; } -QLabel* util::tool::explanationLabel(QWidget *parent, const QString &heading, const QString &text) { - QLabel *label = new QLabel(parent); +QLabel * explanationLabel(QWidget * const parent, + const QString & heading, + const QString & text) +{ + QLabel * const label = new QLabel(parent); initExplanationLabel(label, heading, text); return label; } -void util::tool::initExplanationLabel(QLabel *label, const QString &heading, const QString &text) { +void initExplanationLabel(QLabel * const label, + const QString & heading, + const QString & text) +{ QString labelText; if (!heading.isEmpty()) { labelText += "<b>"; @@ -143,8 +167,7 @@ void util::tool::initExplanationLabel(QLabel *label, const QString &heading, con label->setFrameStyle(QFrame::Box | QFrame::Sunken); } -/** No descriptions */ -bool util::tool::inHTMLTag(int pos, QString & text) { +bool inHTMLTag(const int pos, const QString & text) { int i1 = text.lastIndexOf("<", pos); int i2 = text.lastIndexOf(">", pos); int i3 = text.indexOf(">", pos); @@ -159,14 +182,11 @@ bool util::tool::inHTMLTag(int pos, QString & text) { // qWarning("%d > %d && %d < %d",i1,i2,i3,i4); - if ( (i1 > i2) && (i3 < i4) ) - return true; //yes, we're in a tag - - return false; + return (i1 > i2) && (i3 < i4); } -QString util::tool::remoteModuleToolTip(const CSwordModuleInfo &module, - const QString &localVer) +QString remoteModuleToolTip(const CSwordModuleInfo & module, + const QString & localVer) { QString text = "<p style='white-space:pre'><b>"; text += module.name(); @@ -215,7 +235,13 @@ QString util::tool::remoteModuleToolTip(const CSwordModuleInfo &module, } -int util::tool::mWidth(const QWidget* widget, int m) { - if (widget) return widget->fontMetrics().width(QString(m, 'M')); - return QApplication::fontMetrics().width(QString(m, 'M')); +int mWidth(const QWidget * const widget, const int mCount) { + const QString mString(mCount, 'M'); + if (widget) + return widget->fontMetrics().width(mString); + return QApplication::fontMetrics().width(mString); } + + +} // namespace tool { +} // namespace util { |