summaryrefslogtreecommitdiff
path: root/FacilityEngine.cpp
diff options
context:
space:
mode:
authorThomas Preud'homme <robotux@celest.fr>2017-11-24 23:24:09 +0000
committerThomas Preud'homme <robotux@celest.fr>2017-11-24 23:24:09 +0000
commitb3c8bdcc0d1e4b2ab298847a7902b6d60410a5bc (patch)
tree8fce8a51adfb245db8ab2a76831661780c0c713e /FacilityEngine.cpp
parente297dbd8052ef4e66f069e2dd1865ae7fa8af28e (diff)
New upstream version 1.2.3.6
Diffstat (limited to 'FacilityEngine.cpp')
-rw-r--r--FacilityEngine.cpp339
1 files changed, 186 insertions, 153 deletions
diff --git a/FacilityEngine.cpp b/FacilityEngine.cpp
index 30c5168..ca6d467 100644
--- a/FacilityEngine.cpp
+++ b/FacilityEngine.cpp
@@ -2,207 +2,240 @@
\brief To implement the facility engine, the interface is defined into FacilityInterface()
\see FacilityInterface()
\author alpha_one_x86
-\version 0.3
-\date 2010
\licence GPL3, see the file COPYING */
#include "FacilityEngine.h"
#if defined (Q_OS_WIN32)
-#include <windows.h>
+ #ifndef NOMINMAX
+ #define NOMINMAX
+ #endif
+ #include <windows.h>
#endif
+FacilityEngine FacilityEngine::facilityEngine;
+
FacilityEngine::FacilityEngine()
{
- retranslate();
+ retranslate();
}
/// \brief To force the text re-translation
void FacilityEngine::retranslate()
{
- //undirect translated string
- Translation_perSecond="/"+tr("s");
- Translation_tooBig=tr("Too big");
- Translation_B=tr("B");
- Translation_KB=tr("KB");
- Translation_MB=tr("MB");
- Translation_GB=tr("GB");
- Translation_TB=tr("TB");
- Translation_PB=tr("PB");
- Translation_EB=tr("EB");
- Translation_ZB=tr("ZB");
- Translation_YB=tr("YB");
- Translation_SimplifiedRemaningTime_LessThan10s=tr("Less than %10 seconds");
- Translation_SimplifiedRemaningTime_AboutSeconds=tr("About %10 seconds remaining");
- Translation_SimplifiedRemaningTime_AboutMinutes=tr("About %1 minutes remaining");
- Translation_SimplifiedRemaningTime_AboutHours=tr("About %1 hours remaining");
- //load the translations tab
- translations["Copy engine"]=tr("Copy engine");
- translations["Copy"]=tr("Copy");
- translations["Move"]=tr("Move");
- translations["Pause"]=tr("Pause");
- translations["Resume"]=tr("Resume");
- translations["Skip"]=tr("Skip");
- translations["Unlimited"]=tr("Unlimited");
- translations["Source"]=tr("Source");
- translations["Size"]=tr("Size");
- translations["Destination"]=tr("Destination");
- translations["Quit"]=tr("Quit");
- translations["Target"]=tr("Target");
- translations["Time remaining:"]=tr("Time remaining:");
- translations["Listing"]=tr("Listing");
- translations["Copying"]=tr("Copying");
- translations["Listing and copying"]=tr("Listing and copying");
- translations["Time remaining:"]=tr("Time remaining:");
- //for copy engine
- translations["Ask"]=tr("Ask");
- translations["Skip"]=tr("Skip");
- translations["Overwrite"]=tr("Overwrite");
- translations["Overwrite if newer"]=tr("Overwrite if newer");
- translations["Overwrite if the last modification dates are different"]=tr("Overwrite if the last modification dates are different");
- translations["Rename"]=tr("Rename");
- translations["Put to end of the list"]=tr("Put to end of the list");
- translations["Select source directory"]=tr("Select source directory");
- translations["Select destination directory"]=tr("Select destination directory");
- translations["Internal error"]=tr("Internal error");
- translations["Select one or more files to open"]=tr("Select one or more files to open");
- translations["All files"]=tr("All files");
- translations["Save transfer list"]=tr("Save transfer list");
- translations["Open transfer list"]=tr("Open transfer list");
- translations["Transfer list"]=tr("Transfer list");
- translations["Error"]=tr("Error");
- translations["Not supported on this platform"]=tr("Not supported on this platform");
+ //undirect translated string
+ Translation_perSecond=QStringLiteral("/")+tr("s");
+ Translation_tooBig=tr("Too big");
+ Translation_B=tr("B");
+ Translation_KB=tr("KB");
+ Translation_MB=tr("MB");
+ Translation_GB=tr("GB");
+ Translation_TB=tr("TB");
+ Translation_PB=tr("PB");
+ Translation_EB=tr("EB");
+ Translation_ZB=tr("ZB");
+ Translation_YB=tr("YB");
+ Translation_SimplifiedRemaningTime_LessThan10s=tr("Less than %10 seconds");
+ Translation_SimplifiedRemaningTime_AboutSeconds=tr("About %10 seconds remaining");
+ Translation_SimplifiedRemaningTime_AboutMinutes=tr("About %1 minutes remaining");
+ Translation_SimplifiedRemaningTime_AboutHours=tr("About %1 hours remaining");
+ //load the translations tab
+ translations["Copy engine"]=tr("Copy engine");
+ //: a copy
+ translations["Copy"]=tr("Copy");
+ //: a transfer
+ translations["Transfer"]=tr("Transfer");
+ //: a move
+ translations["Move"]=tr("Move");
+ translations["Start"]=tr("Start");
+ translations["Pause"]=tr("Pause");
+ translations["Resume"]=tr("Resume");
+ translations["Skip"]=tr("Skip");
+ translations["Unlimited"]=tr("Unlimited");
+ translations["Source"]=tr("Source");
+ translations["Size"]=tr("Size");
+ translations["Destination"]=tr("Destination");
+ translations["Quit"]=tr("Quit");
+ translations["Target"]=tr("Target");
+ translations["Time remaining:"]=tr("Time remaining:");
+ translations["Listing"]=tr("Listing");
+ translations["Copying"]=tr("Copying");
+ translations["Listing and copying"]=tr("Listing and copying");
+ translations["Time remaining:"]=tr("Time remaining:");
+ //for copy engine
+ translations["Ask"]=tr("Ask");
+ translations["Skip"]=tr("Skip");
+ translations["Overwrite"]=tr("Overwrite");
+ translations["Overwrite if newer"]=tr("Overwrite if newer");
+ translations["Overwrite if the last modification dates are different"]=tr("Overwrite if the last modification dates are different");
+ translations["Rename"]=tr("Rename");
+ translations["Put to the end of the list"]=tr("Put to the end of the list");
+ translations["Select source directory"]=tr("Select source directory");
+ translations["Select destination directory"]=tr("Select destination directory");
+ translations["Internal error"]=tr("Internal error");
+ translations["Select one or more files to open"]=tr("Select one or more files to open");
+ translations["All files"]=tr("All files");
+ translations["Save transfer list"]=tr("Save transfer list");
+ translations["Open transfer list"]=tr("Open transfer list");
+ translations["Transfer list"]=tr("Transfer list");
+ translations["Error"]=tr("Error");
+ translations["Not supported on this platform"]=tr("Not supported on this platform");
+ translations["Completed in %1"]=tr("Completed in %1");
}
/// \brief convert size in Byte to String
-QString FacilityEngine::sizeToString(const double &size)
+QString FacilityEngine::sizeToString(const double &size) const
{
- double size_temp=size;
- if(size_temp<1024)
- return QString::number(size_temp)+sizeUnitToString(SizeUnit_byte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_KiloByte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_MegaByte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_GigaByte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_TeraByte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_PetaByte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_ExaByte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_ZettaByte);
- if((size_temp=size_temp/1024)<1024)
- return adaptString(size_temp)+sizeUnitToString(SizeUnit_YottaByte);
- return Translation_tooBig;
+ double size_temp=size;
+ if(size_temp<1024)
+ return QString::number(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_byte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_KiloByte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_MegaByte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_GigaByte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_TeraByte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_PetaByte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_ExaByte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_ZettaByte);
+ if((size_temp=size_temp/1024)<1024)
+ return adaptString(size_temp)+sizeUnitToString(Ultracopier::SizeUnit_YottaByte);
+ return Translation_tooBig;
}
-QString FacilityEngine::adaptString(const float &size)
+QString FacilityEngine::adaptString(const float &size) const
{
- if(size>=100)
- return QString::number(size,'f',0);
- else
- return QString::number(size,'g',3);
+ if(size>=100)
+ return QString::number(size,'f',0);
+ else
+ return QString::number(size,'g',3);
}
/// \brief convert size unit to String
-QString FacilityEngine::sizeUnitToString(const SizeUnit &sizeUnit)
+QString FacilityEngine::sizeUnitToString(const Ultracopier::SizeUnit &sizeUnit) const
{
- switch(sizeUnit)
- {
- case SizeUnit_byte:
- return Translation_B;
- case SizeUnit_KiloByte:
- return Translation_KB;
- case SizeUnit_MegaByte:
- return Translation_MB;
- case SizeUnit_GigaByte:
- return Translation_GB;
- case SizeUnit_TeraByte:
- return Translation_TB;
- case SizeUnit_PetaByte:
- return Translation_PB;
- case SizeUnit_ExaByte:
- return Translation_EB;
- case SizeUnit_ZettaByte:
- return Translation_ZB;
- case SizeUnit_YottaByte:
- return Translation_YB;
- default:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"sizeUnit: "+QString::number(sizeUnit));
- return "???";
- }
+ switch(sizeUnit)
+ {
+ case Ultracopier::SizeUnit_byte:
+ return Translation_B;
+ case Ultracopier::SizeUnit_KiloByte:
+ return Translation_KB;
+ case Ultracopier::SizeUnit_MegaByte:
+ return Translation_MB;
+ case Ultracopier::SizeUnit_GigaByte:
+ return Translation_GB;
+ case Ultracopier::SizeUnit_TeraByte:
+ return Translation_TB;
+ case Ultracopier::SizeUnit_PetaByte:
+ return Translation_PB;
+ case Ultracopier::SizeUnit_ExaByte:
+ return Translation_EB;
+ case Ultracopier::SizeUnit_ZettaByte:
+ return Translation_ZB;
+ case Ultracopier::SizeUnit_YottaByte:
+ return Translation_YB;
+ default:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"sizeUnit: "+QString::number(sizeUnit));
+ return "???";
+ }
}
/// \brief translate the text
-QString FacilityEngine::translateText(const QString &text)
+QString FacilityEngine::translateText(const QString &text) const
{
- if(translations.contains(text))
- return translations[text];
- else
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,"text: "+text);
- return text;
- }
+ if(translations.contains(text))
+ return translations.value(text);
+ else
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"translation not found: "+text);
+ return text;
+ }
}
/// \brief speed to string in byte per seconds
-QString FacilityEngine::speedToString(const double &speed)
+QString FacilityEngine::speedToString(const double &speed) const
{
- return sizeToString(speed)+Translation_perSecond;
+ return sizeToString(speed)+Translation_perSecond;
}
/// \brief Decompose the time in second
-TimeDecomposition FacilityEngine::secondsToTimeDecomposition(const quint32 &seconds)
+Ultracopier::TimeDecomposition FacilityEngine::secondsToTimeDecomposition(const quint32 &seconds) const
{
- quint32 seconds_temp=seconds;
- TimeDecomposition returnValue;
- returnValue.second=seconds_temp%60;
- seconds_temp-=returnValue.second;
- seconds_temp/=60;
- returnValue.minute=seconds_temp%60;
- seconds_temp-=returnValue.minute;
- seconds_temp/=60;
- returnValue.hour=seconds_temp;
- return returnValue;
+ quint32 seconds_temp=seconds;
+ Ultracopier::TimeDecomposition returnValue;
+ returnValue.second=seconds_temp%60;
+ seconds_temp-=returnValue.second;
+ seconds_temp/=60;
+ returnValue.minute=seconds_temp%60;
+ seconds_temp-=returnValue.minute;
+ seconds_temp/=60;
+ returnValue.hour=seconds_temp;
+ return returnValue;
}
/// \brief have the functionality
-bool FacilityEngine::haveFunctionality(const QString &fonctionnality)
+bool FacilityEngine::haveFunctionality(const QString &fonctionnality) const
{
- #if defined (Q_OS_WIN32)
- if(fonctionnality=="shutdown")
- return true;
- #endif
- Q_UNUSED(fonctionnality);
- return false;
+ #if defined (Q_OS_WIN32)
+ if(fonctionnality=="shutdown")
+ return true;
+ #endif
+ Q_UNUSED(fonctionnality);
+ return false;
}
/// \brief call the fonctionnality
QVariant FacilityEngine::callFunctionality(const QString &fonctionnality,const QStringList &args)
{
- #if defined (Q_OS_WIN32)
- ExitWindowsEx(EWX_POWEROFF | EWX_FORCE,0);
- system("shutdown /s /f /t 0");
- #endif
- Q_UNUSED(fonctionnality);
- Q_UNUSED(args);
- return QVariant();
+ #if defined (Q_OS_WIN32)
+ ExitWindowsEx(EWX_POWEROFF | EWX_FORCE,0);
+ system("shutdown /s /f /t 0");
+ #endif
+ Q_UNUSED(fonctionnality);
+ Q_UNUSED(args);
+ return QVariant();
}
/// \brief Do the simplified time
-QString FacilityEngine::simplifiedRemainingTime(const quint32 &seconds)
+QString FacilityEngine::simplifiedRemainingTime(const quint32 &seconds) const
+{
+ if(seconds<50)
+ {
+ if(seconds<10)
+ return Translation_SimplifiedRemaningTime_LessThan10s.arg(seconds/10+1);
+ else
+ return Translation_SimplifiedRemaningTime_AboutSeconds.arg(seconds/10+1);
+ }
+ if(seconds<3600)
+ return Translation_SimplifiedRemaningTime_AboutMinutes.arg(seconds/60);
+ return Translation_SimplifiedRemaningTime_AboutHours.arg(seconds/3600);
+}
+
+/// \brief Return ultimate url, empty is not found or already ultimate
+QString FacilityEngine::ultimateUrl() const
+{
+ #ifdef ULTRACOPIER_VERSION_ULTIMATE
+ return QString();
+ #else
+ #if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
+ return QStringLiteral("http://ultracopier.first-world.info/shop.html");
+ #else
+ return QString();
+ #endif
+ #endif
+}
+
+/// \brief Return the software name
+QString FacilityEngine::softwareName() const
{
- if(seconds<50)
- {
- if(seconds<10)
- return Translation_SimplifiedRemaningTime_LessThan10s.arg(seconds/10+1);
- else
- return Translation_SimplifiedRemaningTime_AboutSeconds.arg(seconds/10+1);
- }
- if(seconds<3600)
- return Translation_SimplifiedRemaningTime_AboutMinutes.arg(seconds/60);
- return Translation_SimplifiedRemaningTime_AboutHours.arg(seconds/3600);
+ #ifdef ULTRACOPIER_MODE_SUPERCOPIER
+ return QStringLiteral("Supercopier");
+ #else
+ return QStringLiteral("Ultracopier");
+ #endif
}