Files
OrcaSlicer-bambulab/src/slic3r/Utils/PresetUpdater.hpp
T

62 lines
1.8 KiB
C++
Raw Normal View History

2018-03-13 12:39:57 +01:00
#ifndef slic3r_PresetUpdate_hpp_
#define slic3r_PresetUpdate_hpp_
#include <memory>
#include <vector>
2018-03-13 12:39:57 +01:00
2019-02-18 13:54:20 +01:00
#include <wx/event.h>
2018-03-13 12:39:57 +01:00
namespace Slic3r {
class AppConfig;
class PresetBundle;
class Semver;
2018-03-13 12:39:57 +01:00
class PresetUpdater
{
public:
PresetUpdater();
2018-03-13 12:39:57 +01:00
PresetUpdater(PresetUpdater &&) = delete;
PresetUpdater(const PresetUpdater &) = delete;
PresetUpdater &operator=(PresetUpdater &&) = delete;
PresetUpdater &operator=(const PresetUpdater &) = delete;
~PresetUpdater();
2018-04-23 11:16:47 +02:00
// If either version check or config updating is enabled, get the appropriate data in the background and cache it.
2018-04-17 16:59:53 +02:00
void sync(PresetBundle *preset_bundle);
2018-04-23 11:16:47 +02:00
// If version check is enabled, check if chaced online slic3r version is newer, notify if so.
2018-04-17 16:59:53 +02:00
void slic3r_update_notify();
2018-04-23 11:16:47 +02:00
enum UpdateResult {
R_NOOP,
R_INCOMPAT_EXIT,
R_INCOMPAT_CONFIGURED,
R_UPDATE_INSTALLED,
R_UPDATE_REJECT,
2020-08-03 15:36:55 +02:00
R_UPDATE_NOTIFICATION
};
2018-04-23 11:16:47 +02:00
// If updating is enabled, check if updates are available in cache, if so, ask about installation.
// A false return value implies Slic3r should exit due to incompatibility of configuration.
// Providing old slic3r version upgrade profiles on upgrade of an application even in case
// that the config index installed from the Internet is equal to the index contained in the installation package.
2020-08-03 15:36:55 +02:00
// no_notification = force modal textbox, otherwise some cases only shows notification
UpdateResult config_update(const Semver &old_slic3r_version, bool no_notification) const;
2018-04-23 11:16:47 +02:00
// "Update" a list of bundles from resources (behaves like an online update).
void install_bundles_rsrc(std::vector<std::string> bundles, bool snapshot = true) const;
2020-08-03 15:36:55 +02:00
void on_update_notification_confirm();
2018-03-13 12:39:57 +01:00
private:
struct priv;
std::unique_ptr<priv> p;
};
2019-02-14 16:51:41 +01:00
wxDECLARE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent);
2018-03-13 12:39:57 +01:00
}
#endif