Refactor: Move Semver from slice3r to libslic3r

A static symbol Slic3r::SEMVER is introduced, which holds
the running slicer's Semver object.

This is mainly done to make testing updater behaviour
_much_ easier. Additionaly to cleanup some questionable code
(Semver was being parsed multiple times / in multiple places
in the frontend.)
This commit is contained in:
Vojtech Kral 2019-08-09 17:01:37 +02:00
parent b5dd13b987
commit 745182988d
13 changed files with 21 additions and 27 deletions

View file

@ -366,7 +366,7 @@ const Snapshot& SnapshotDB::take_snapshot(const AppConfig &app_config, Snapshot:
// Snapshot header.
snapshot.time_captured = Slic3r::Utils::get_current_time_utc();
snapshot.id = Slic3r::Utils::format_time_ISO8601Z(snapshot.time_captured);
snapshot.slic3r_version_captured = *Semver::parse(SLIC3R_VERSION); // XXX: have Semver Slic3r version
snapshot.slic3r_version_captured = Slic3r::SEMVER;
snapshot.comment = comment;
snapshot.reason = reason;
// Active presets at the time of the snapshot.

View file

@ -8,8 +8,8 @@
#include <boost/filesystem.hpp>
#include "libslic3r/Semver.hpp"
#include "Version.hpp"
#include "../Utils/Semver.hpp"
namespace Slic3r {

View file

@ -15,7 +15,6 @@ namespace Slic3r {
namespace GUI {
namespace Config {
static const Semver s_current_slic3r_semver(SLIC3R_VERSION);
// Optimized lexicographic compare of two pre-release versions, ignoring the numeric suffix.
static int compare_prerelease(const char *p1, const char *p2)
@ -64,7 +63,7 @@ bool Version::is_slic3r_supported(const Semver &slic3r_version) const
bool Version::is_current_slic3r_supported() const
{
return this->is_slic3r_supported(s_current_slic3r_semver);
return this->is_slic3r_supported(Slic3r::SEMVER);
}
#if 0

View file

@ -7,7 +7,7 @@
#include <boost/filesystem.hpp>
#include "libslic3r/FileParserError.hpp"
#include "../Utils/Semver.hpp"
#include "libslic3r/Semver.hpp"
namespace Slic3r {
namespace GUI {