feat(modulo): add wrong edition page in Wizard GUI
This commit is contained in:
parent
0d70cd8405
commit
ad029b626e
|
@ -97,12 +97,17 @@ const int MIGRATE_RESULT_CLEAN_FAILURE = 1;
|
|||
const int MIGRATE_RESULT_DIRTY_FAILURE = 2;
|
||||
const int MIGRATE_RESULT_UNKNOWN_FAILURE = 3;
|
||||
|
||||
const int DETECTED_OS_UNKNOWN = 0;
|
||||
const int DETECTED_OS_X11 = 1;
|
||||
const int DETECTED_OS_WAYLAND = 2;
|
||||
|
||||
typedef struct WizardMetadata {
|
||||
const char *version;
|
||||
|
||||
const int is_welcome_page_enabled;
|
||||
const int is_move_bundle_page_enabled;
|
||||
const int is_legacy_version_page_enabled;
|
||||
const int is_wrong_edition_page_enabled;
|
||||
const int is_migrate_page_enabled;
|
||||
const int is_add_path_page_enabled;
|
||||
const int is_accessibility_page_enabled;
|
||||
|
@ -111,6 +116,7 @@ typedef struct WizardMetadata {
|
|||
const char *welcome_image_path;
|
||||
const char *accessibility_image_1_path;
|
||||
const char *accessibility_image_2_path;
|
||||
const int detected_os;
|
||||
|
||||
// METHODS
|
||||
int (*is_legacy_version_running)();
|
||||
|
|
|
@ -113,6 +113,10 @@ pub const WIZARD_MIGRATE_RESULT_CLEAN_FAILURE: i32 = 1;
|
|||
pub const WIZARD_MIGRATE_RESULT_DIRTY_FAILURE: i32 = 2;
|
||||
pub const WIZARD_MIGRATE_RESULT_UNKNOWN_FAILURE: i32 = 3;
|
||||
|
||||
pub const WIZARD_DETECTED_OS_UNKNOWN: i32 = 0;
|
||||
pub const WIZARD_DETECTED_OS_X11: i32 = 1;
|
||||
pub const WIZARD_DETECTED_OS_WAYLAND: i32 = 2;
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
pub struct WizardMetadata {
|
||||
|
@ -121,6 +125,7 @@ pub struct WizardMetadata {
|
|||
pub is_welcome_page_enabled: c_int,
|
||||
pub is_move_bundle_page_enabled: c_int,
|
||||
pub is_legacy_version_page_enabled: c_int,
|
||||
pub is_wrong_edition_page_enabled: c_int,
|
||||
pub is_migrate_page_enabled: c_int,
|
||||
pub is_add_path_page_enabled: c_int,
|
||||
pub is_accessibility_page_enabled: c_int,
|
||||
|
@ -129,6 +134,7 @@ pub struct WizardMetadata {
|
|||
pub welcome_image_path: *const c_char,
|
||||
pub accessibility_image_1_path: *const c_char,
|
||||
pub accessibility_image_2_path: *const c_char,
|
||||
pub detected_os: c_int,
|
||||
|
||||
pub is_legacy_version_running: extern fn() -> c_int,
|
||||
pub backup_and_migrate: extern fn() -> c_int,
|
||||
|
|
|
@ -20,8 +20,17 @@
|
|||
use std::os::raw::{c_char, c_int};
|
||||
use std::{ffi::CString, sync::Mutex};
|
||||
|
||||
use crate::sys::interop::{
|
||||
WIZARD_DETECTED_OS_UNKNOWN, WIZARD_DETECTED_OS_WAYLAND, WIZARD_DETECTED_OS_X11,
|
||||
};
|
||||
use crate::sys::util::convert_to_cstring_or_null;
|
||||
use crate::{sys::interop::{WIZARD_MIGRATE_RESULT_CLEAN_FAILURE, WIZARD_MIGRATE_RESULT_DIRTY_FAILURE, WIZARD_MIGRATE_RESULT_SUCCESS, WIZARD_MIGRATE_RESULT_UNKNOWN_FAILURE, WizardMetadata}, wizard::{WizardHandlers, WizardOptions}};
|
||||
use crate::{
|
||||
sys::interop::{
|
||||
WizardMetadata, WIZARD_MIGRATE_RESULT_CLEAN_FAILURE, WIZARD_MIGRATE_RESULT_DIRTY_FAILURE,
|
||||
WIZARD_MIGRATE_RESULT_SUCCESS, WIZARD_MIGRATE_RESULT_UNKNOWN_FAILURE,
|
||||
},
|
||||
wizard::{WizardHandlers, WizardOptions},
|
||||
};
|
||||
|
||||
lazy_static! {
|
||||
static ref HANDLERS: Mutex<Option<WizardHandlers>> = Mutex::new(None);
|
||||
|
@ -126,7 +135,7 @@ pub fn show(options: WizardOptions) -> bool {
|
|||
(*handler_ref)()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
let mut lock = HANDLERS.lock().expect("unable to acquire handlers lock");
|
||||
*lock = Some(options.handlers)
|
||||
|
@ -150,6 +159,11 @@ pub fn show(options: WizardOptions) -> bool {
|
|||
} else {
|
||||
0
|
||||
},
|
||||
is_wrong_edition_page_enabled: if options.is_wrong_edition_page_enabled {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
},
|
||||
is_migrate_page_enabled: if options.is_migrate_page_enabled {
|
||||
1
|
||||
} else {
|
||||
|
@ -170,6 +184,11 @@ pub fn show(options: WizardOptions) -> bool {
|
|||
welcome_image_path: c_welcome_image_path_ptr,
|
||||
accessibility_image_1_path: c_accessibility_image_1_path_ptr,
|
||||
accessibility_image_2_path: c_accessibility_image_2_path_ptr,
|
||||
detected_os: match options.detected_os {
|
||||
crate::wizard::DetectedOS::Unknown => WIZARD_DETECTED_OS_UNKNOWN,
|
||||
crate::wizard::DetectedOS::X11 => WIZARD_DETECTED_OS_X11,
|
||||
crate::wizard::DetectedOS::Wayland => WIZARD_DETECTED_OS_WAYLAND,
|
||||
},
|
||||
|
||||
is_legacy_version_running,
|
||||
backup_and_migrate,
|
||||
|
@ -179,9 +198,11 @@ pub fn show(options: WizardOptions) -> bool {
|
|||
on_completed,
|
||||
};
|
||||
|
||||
let successful = unsafe {
|
||||
super::interop::interop_show_wizard(&wizard_metadata)
|
||||
};
|
||||
let successful = unsafe { super::interop::interop_show_wizard(&wizard_metadata) };
|
||||
|
||||
if successful == 1 { true } else { false }
|
||||
}
|
||||
if successful == 1 {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,7 +30,8 @@
|
|||
const int WELCOME_PAGE_INDEX = 0;
|
||||
const int MOVE_BUNDLE_PAGE_INDEX = WELCOME_PAGE_INDEX + 1;
|
||||
const int LEGACY_VERSION_PAGE_INDEX = MOVE_BUNDLE_PAGE_INDEX + 1;
|
||||
const int MIGRATE_PAGE_INDEX = LEGACY_VERSION_PAGE_INDEX + 1;
|
||||
const int WRONG_EDITION_PAGE_INDEX = LEGACY_VERSION_PAGE_INDEX + 1;
|
||||
const int MIGRATE_PAGE_INDEX = WRONG_EDITION_PAGE_INDEX + 1;
|
||||
const int ADD_PATH_PAGE_INDEX = MIGRATE_PAGE_INDEX + 1;
|
||||
const int ACCESSIBILITY_PAGE_INDEX = ADD_PATH_PAGE_INDEX + 1;
|
||||
const int MAX_PAGE_INDEX = ACCESSIBILITY_PAGE_INDEX + 1; // Update if a new page is added at the end
|
||||
|
@ -71,6 +72,11 @@ int find_next_page(int current_index)
|
|||
{
|
||||
return LEGACY_VERSION_PAGE_INDEX;
|
||||
}
|
||||
case WRONG_EDITION_PAGE_INDEX:
|
||||
if (wizard_metadata->is_wrong_edition_page_enabled)
|
||||
{
|
||||
return WRONG_EDITION_PAGE_INDEX;
|
||||
}
|
||||
case MIGRATE_PAGE_INDEX:
|
||||
if (wizard_metadata->is_migrate_page_enabled)
|
||||
{
|
||||
|
@ -101,6 +107,7 @@ protected:
|
|||
void migrate_compatibility_mode_clicked(wxCommandEvent &event);
|
||||
void add_path_continue_clicked( wxCommandEvent& event );
|
||||
void accessibility_enable_clicked( wxCommandEvent& event );
|
||||
void quit_espanso_clicked( wxCommandEvent& event );
|
||||
|
||||
void navigate_to_next_page_or_close();
|
||||
void change_default_button(int target_page);
|
||||
|
@ -135,6 +142,16 @@ DerivedFrame::DerivedFrame(wxWindow *parent)
|
|||
this->accessibility_image2->SetBitmap(accessiblityImage2);
|
||||
}
|
||||
|
||||
// Wrong edition
|
||||
if (wizard_metadata->is_wrong_edition_page_enabled) {
|
||||
if (wizard_metadata->detected_os == DETECTED_OS_X11) {
|
||||
this->wrong_edition_description_x11->Hide();
|
||||
}
|
||||
if (wizard_metadata->detected_os == DETECTED_OS_WAYLAND) {
|
||||
this->wrong_edition_description_wayland->Hide();
|
||||
}
|
||||
}
|
||||
|
||||
// Load the first page
|
||||
int page = find_next_page(-1);
|
||||
if (page >= 0)
|
||||
|
@ -244,6 +261,11 @@ void DerivedFrame::accessibility_enable_clicked( wxCommandEvent& event )
|
|||
}
|
||||
}
|
||||
|
||||
void DerivedFrame::quit_espanso_clicked( wxCommandEvent& event )
|
||||
{
|
||||
Close(true);
|
||||
}
|
||||
|
||||
void DerivedFrame::check_timer_tick(wxTimerEvent &event)
|
||||
{
|
||||
if (this->m_simplebook->GetSelection() == LEGACY_VERSION_PAGE_INDEX)
|
||||
|
|
|
@ -1136,6 +1136,407 @@
|
|||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="simplebookpage" expanded="1">
|
||||
<property name="label">a page</property>
|
||||
<property name="select">0</property>
|
||||
<object class="wxPanel" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg">wxSYS_COLOUR_WINDOW</property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">wrong_edition_panel</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style">wxTAB_TRAVERSAL</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer213</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">20</property>
|
||||
<property name="flag">wxALIGN_CENTER_HORIZONTAL|wxALIGN_LEFT|wxTOP</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font">,90,92,18,70,0</property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Incompatibility detected</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">wrong_edition_title</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag"></property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="spacer" expanded="1">
|
||||
<property name="height">20</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="width">0</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">10</property>
|
||||
<property name="flag">wxLEFT|wxRIGHT|wxTOP</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">This version of espanso was compiled to support X11-based systems, but it seems you are on a Wayland-based desktop environment.

Unfortunately, the two versions are incompatible. To use espanso, please download the Wayland version from the website.

For more information:</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">wrong_edition_description_x11</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">500</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">10</property>
|
||||
<property name="flag">wxLEFT|wxRIGHT|wxTOP</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">This version of espanso was compiled to support Wayland-based systems, but it seems you are on a X11-based desktop environment.

Unfortunately, the two versions are incompatible. To use espanso, please download the X11 version from the website.

For more information:</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">wrong_edition_description_wayland</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">500</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">10</property>
|
||||
<property name="flag">wxLEFT|wxRIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxHyperlinkCtrl" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="hover_color"></property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">https://espanso.org/install</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">wrong_edition_link</property>
|
||||
<property name="normal_color"></property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxHL_DEFAULT_STYLE</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="url">https://espanso.org/install</property>
|
||||
<property name="visited_color"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="spacer" expanded="1">
|
||||
<property name="height">0</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="width">0</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">10</property>
|
||||
<property name="flag">wxALIGN_RIGHT|wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxButton" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="bitmap"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="current"></property>
|
||||
<property name="default">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="disabled"></property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="focus"></property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Quit Espanso</property>
|
||||
<property name="margins"></property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">wrong_edition_button</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="position"></property>
|
||||
<property name="pressed"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnButtonClick">quit_espanso_clicked</event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="simplebookpage" expanded="1">
|
||||
<property name="label">a page</property>
|
||||
<property name="select">0</property>
|
||||
|
|
|
@ -133,6 +133,45 @@ WizardFrame::WizardFrame( wxWindow* parent, wxWindowID id, const wxString& title
|
|||
legacy_version_panel->Layout();
|
||||
bSizer21->Fit( legacy_version_panel );
|
||||
m_simplebook->AddPage( legacy_version_panel, wxT("a page"), false );
|
||||
wrong_edition_panel = new wxPanel( m_simplebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
wrong_edition_panel->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
|
||||
|
||||
wxBoxSizer* bSizer213;
|
||||
bSizer213 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wrong_edition_title = new wxStaticText( wrong_edition_panel, wxID_ANY, wxT("Incompatibility detected"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
wrong_edition_title->Wrap( -1 );
|
||||
wrong_edition_title->SetFont( wxFont( 18, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
|
||||
|
||||
bSizer213->Add( wrong_edition_title, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_LEFT|wxTOP, 20 );
|
||||
|
||||
|
||||
bSizer213->Add( 0, 20, 0, 0, 5 );
|
||||
|
||||
wrong_edition_description_x11 = new wxStaticText( wrong_edition_panel, wxID_ANY, wxT("This version of espanso was compiled to support X11-based systems, but it seems you are on a Wayland-based desktop environment.\n\nUnfortunately, the two versions are incompatible. To use espanso, please download the Wayland version from the website.\n\nFor more information:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
wrong_edition_description_x11->Wrap( 500 );
|
||||
bSizer213->Add( wrong_edition_description_x11, 0, wxLEFT|wxRIGHT|wxTOP, 10 );
|
||||
|
||||
wrong_edition_description_wayland = new wxStaticText( wrong_edition_panel, wxID_ANY, wxT("This version of espanso was compiled to support Wayland-based systems, but it seems you are on a X11-based desktop environment.\n\nUnfortunately, the two versions are incompatible. To use espanso, please download the X11 version from the website.\n\nFor more information:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
wrong_edition_description_wayland->Wrap( 500 );
|
||||
bSizer213->Add( wrong_edition_description_wayland, 0, wxLEFT|wxRIGHT|wxTOP, 10 );
|
||||
|
||||
wrong_edition_link = new wxHyperlinkCtrl( wrong_edition_panel, wxID_ANY, wxT("https://espanso.org/install"), wxT("https://espanso.org/install"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
|
||||
bSizer213->Add( wrong_edition_link, 0, wxLEFT|wxRIGHT, 10 );
|
||||
|
||||
|
||||
bSizer213->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||
|
||||
wrong_edition_button = new wxButton( wrong_edition_panel, wxID_ANY, wxT("Quit Espanso"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
|
||||
wrong_edition_button->SetDefault();
|
||||
bSizer213->Add( wrong_edition_button, 0, wxALIGN_RIGHT|wxALL, 10 );
|
||||
|
||||
|
||||
wrong_edition_panel->SetSizer( bSizer213 );
|
||||
wrong_edition_panel->Layout();
|
||||
bSizer213->Fit( wrong_edition_panel );
|
||||
m_simplebook->AddPage( wrong_edition_panel, wxT("a page"), false );
|
||||
migrate_panel = new wxPanel( m_simplebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
migrate_panel->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
|
||||
|
||||
|
@ -284,6 +323,7 @@ WizardFrame::WizardFrame( wxWindow* parent, wxWindowID id, const wxString& title
|
|||
m_simplebook->Connect( wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED, wxBookCtrlEventHandler( WizardFrame::on_page_changed ), NULL, this );
|
||||
welcome_start_button->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::welcome_start_clicked ), NULL, this );
|
||||
move_bundle_quit_button->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::move_bundle_quit_clicked ), NULL, this );
|
||||
wrong_edition_button->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::quit_espanso_clicked ), NULL, this );
|
||||
migrate_compatibility_mode_button->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::migrate_compatibility_mode_clicked ), NULL, this );
|
||||
migrate_backup_and_migrate_button->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::migrate_button_clicked ), NULL, this );
|
||||
add_path_continue_button->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::add_path_continue_clicked ), NULL, this );
|
||||
|
@ -297,6 +337,7 @@ WizardFrame::~WizardFrame()
|
|||
m_simplebook->Disconnect( wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED, wxBookCtrlEventHandler( WizardFrame::on_page_changed ), NULL, this );
|
||||
welcome_start_button->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::welcome_start_clicked ), NULL, this );
|
||||
move_bundle_quit_button->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::move_bundle_quit_clicked ), NULL, this );
|
||||
wrong_edition_button->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::quit_espanso_clicked ), NULL, this );
|
||||
migrate_compatibility_mode_button->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::migrate_compatibility_mode_clicked ), NULL, this );
|
||||
migrate_backup_and_migrate_button->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::migrate_button_clicked ), NULL, this );
|
||||
add_path_continue_button->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WizardFrame::add_path_continue_clicked ), NULL, this );
|
||||
|
|
|
@ -57,6 +57,12 @@ class WizardFrame : public wxFrame
|
|||
wxStaticText* legacy_version_description;
|
||||
wxHyperlinkCtrl* legacy_version_docs_link;
|
||||
wxButton* legacy_version_continue_button;
|
||||
wxPanel* wrong_edition_panel;
|
||||
wxStaticText* wrong_edition_title;
|
||||
wxStaticText* wrong_edition_description_x11;
|
||||
wxStaticText* wrong_edition_description_wayland;
|
||||
wxHyperlinkCtrl* wrong_edition_link;
|
||||
wxButton* wrong_edition_button;
|
||||
wxPanel* migrate_panel;
|
||||
wxStaticText* migrate_title;
|
||||
wxStaticText* migrate_description;
|
||||
|
@ -83,6 +89,7 @@ class WizardFrame : public wxFrame
|
|||
virtual void on_page_changed( wxBookCtrlEvent& event ) { event.Skip(); }
|
||||
virtual void welcome_start_clicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void move_bundle_quit_clicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void quit_espanso_clicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void migrate_compatibility_mode_clicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void migrate_button_clicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void add_path_continue_clicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
|
|
@ -25,6 +25,7 @@ pub struct WizardOptions {
|
|||
pub is_welcome_page_enabled: bool,
|
||||
pub is_move_bundle_page_enabled: bool,
|
||||
pub is_legacy_version_page_enabled: bool,
|
||||
pub is_wrong_edition_page_enabled: bool,
|
||||
pub is_migrate_page_enabled: bool,
|
||||
pub is_add_path_page_enabled: bool,
|
||||
pub is_accessibility_page_enabled: bool,
|
||||
|
@ -33,6 +34,7 @@ pub struct WizardOptions {
|
|||
pub welcome_image_path: Option<String>,
|
||||
pub accessibility_image_1_path: Option<String>,
|
||||
pub accessibility_image_2_path: Option<String>,
|
||||
pub detected_os: DetectedOS,
|
||||
|
||||
pub handlers: WizardHandlers,
|
||||
}
|
||||
|
@ -53,3 +55,10 @@ pub enum MigrationResult {
|
|||
DirtyFailure,
|
||||
UnknownFailure,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum DetectedOS {
|
||||
Unknown,
|
||||
X11,
|
||||
Wayland,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user