Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::AppUpdater Class Reference

#include <src/slic3r/Utils/AppUpdater.hpp>

+ Collaboration diagram for Slic3r::AppUpdater:

Classes

struct  priv
 

Public Member Functions

 AppUpdater ()
 
 ~AppUpdater ()
 
 AppUpdater (AppUpdater &&)=delete
 
 AppUpdater (const AppUpdater &)=delete
 
AppUpdateroperator= (AppUpdater &&)=delete
 
AppUpdateroperator= (const AppUpdater &)=delete
 
void sync_download ()
 
void sync_version (const std::string &version_check_url, bool from_user)
 
void cancel ()
 
bool cancel_callback ()
 
std::string get_default_dest_folder ()
 
bool get_triggered_by_user () const
 
bool get_download_ongoing () const
 
void set_app_data (DownloadAppData data)
 
DownloadAppData get_app_data ()
 

Static Public Member Functions

static std::string get_filename_from_url (const std::string &url)
 
static std::string get_file_extension_from_url (const std::string &url)
 

Private Attributes

std::unique_ptr< privp
 

Detailed Description

Constructor & Destructor Documentation

◆ AppUpdater() [1/3]

Slic3r::AppUpdater::AppUpdater ( )
548 :p(new priv())
549{
550}
std::unique_ptr< priv > p
Definition AppUpdater.hpp:57
Definition CutSurface.cpp:39

◆ ~AppUpdater()

Slic3r::AppUpdater::~AppUpdater ( )
552{
553 if (p && p->m_thread.joinable()) {
554 // This will stop transfers being done by the thread, if any.
555 // Cancelling takes some time, but should complete soon enough.
556 p->m_cancel = true;
557 p->m_thread.join();
558 }
559}

References p.

◆ AppUpdater() [2/3]

Slic3r::AppUpdater::AppUpdater ( AppUpdater &&  )
delete

◆ AppUpdater() [3/3]

Slic3r::AppUpdater::AppUpdater ( const AppUpdater )
delete

Member Function Documentation

◆ cancel()

void Slic3r::AppUpdater::cancel ( )
608{
609 p->m_cancel = true;
610}

References p.

Referenced by cancel_callback(), and Slic3r::AppUpdater::priv::http_get_file().

+ Here is the caller graph for this function:

◆ cancel_callback()

bool Slic3r::AppUpdater::cancel_callback ( )
612{
613 cancel();
614 return true;
615}
void cancel()
Definition AppUpdater.cpp:607

References cancel().

Referenced by Slic3r::GUI::GUI_App::app_updater().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_app_data()

DownloadAppData Slic3r::AppUpdater::get_app_data ( )
640{
641 return p->get_app_data();
642}

References p.

◆ get_default_dest_folder()

std::string Slic3r::AppUpdater::get_default_dest_folder ( )
618{
619 return p->m_default_dest_folder.string();
620}

References p.

◆ get_download_ongoing()

bool Slic3r::AppUpdater::get_download_ongoing ( ) const
650{
651 return p->get_download_ongoing();
652}

References p.

◆ get_file_extension_from_url()

std::string Slic3r::AppUpdater::get_file_extension_from_url ( const std::string &  url)
static
629{
630 size_t dot = url.rfind('.');
631 return (dot != std::string::npos ? url.substr(dot) : url);
632}
T dot(const boost::geometry::model::d2::point_xy< T > &v1, const boost::geometry::model::d2::point_xy< T > &v2)
Definition ExtrusionSimulator.cpp:143

References Slic3r::dot().

+ Here is the call graph for this function:

◆ get_filename_from_url()

std::string Slic3r::AppUpdater::get_filename_from_url ( const std::string &  url)
static
623{
624 size_t slash = url.rfind('/');
625 return (slash != std::string::npos ? url.substr(slash + 1) : url);
626}

Referenced by Slic3r::AppUpdater::priv::parse_version_string().

+ Here is the caller graph for this function:

◆ get_triggered_by_user()

bool Slic3r::AppUpdater::get_triggered_by_user ( ) const
645{
646 return p->get_triggered_by_user();
647}

References p.

◆ operator=() [1/2]

AppUpdater & Slic3r::AppUpdater::operator= ( AppUpdater &&  )
delete

◆ operator=() [2/2]

AppUpdater & Slic3r::AppUpdater::operator= ( const AppUpdater )
delete

◆ set_app_data()

void Slic3r::AppUpdater::set_app_data ( DownloadAppData  data)
635{
636 p->set_app_data(std::move(data));
637}

References p.

Referenced by Slic3r::AppUpdater::priv::parse_version_string().

+ Here is the caller graph for this function:

◆ sync_download()

void Slic3r::AppUpdater::sync_download ( )
561{
562 assert(p);
563 // join thread first - it could have been in sync_version
564 if (p->m_thread.joinable()) {
565 // This will stop transfers being done by the thread, if any.
566 // Cancelling takes some time, but should complete soon enough.
567 p->m_cancel = true;
568 p->m_thread.join();
569 }
570 p->m_cancel = false;
571
572 DownloadAppData input_data = p->get_app_data();
573 assert(!input_data.url.empty());
574
575 p->m_thread = std::thread(
576 [this, input_data]() {
577 p->m_download_ongoing = true;
578 if (boost::filesystem::path dest_path = p->download_file(input_data); boost::filesystem::exists(dest_path)){
579 if (input_data.start_after) {
580 p->run_downloaded_file(std::move(dest_path));
581 } else {
582 GUI::desktop_open_folder(dest_path.parent_path());
583 }
584 }
585 p->m_download_ongoing = false;
586 });
587}
void desktop_open_folder(const boost::filesystem::path &path)
Definition GUI.cpp:474

References Slic3r::GUI::desktop_open_folder(), p, Slic3r::DownloadAppData::start_after, and Slic3r::DownloadAppData::url.

+ Here is the call graph for this function:

◆ sync_version()

void Slic3r::AppUpdater::sync_version ( const std::string &  version_check_url,
bool  from_user 
)
590{
591 assert(p);
592 // join thread first - it could have been in sync_download
593 if (p->m_thread.joinable()) {
594 // This will stop transfers being done by the thread, if any.
595 // Cancelling takes some time, but should complete soon enough.
596 p->m_cancel = true;
597 p->m_thread.join();
598 }
599 p->m_triggered_by_user = from_user;
600 p->m_cancel = false;
601 p->m_thread = std::thread(
602 [this, version_check_url]() {
603 p->version_check(version_check_url);
604 });
605}

References p.

Member Data Documentation

◆ p


The documentation for this class was generated from the following files: