Skip to content

Commit 10d89c9

Browse files
committed
Change how uninstalling works
1 parent 9da9c76 commit 10d89c9

7 files changed

+185
-83
lines changed

source/add_install_dlg_derived.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ wxBEGIN_EVENT_TABLE(AddNewInstallDlg, wxDialog)
1717
EVT_COMMAND(UPDATEEVT, updateEvt, AddNewInstallDlg::PopulateTable)
1818
EVT_COMMAND(REENABLEEVT, reenableEvt, AddNewInstallDlg::Reenable)
1919
EVT_BUTTON(wxID_FILE,AddNewInstallDlg::InstallSelected)
20+
EVT_BUTTON(INSTALLVIAHUB,AddNewInstallDlg::InstallSelectedWithHub)
2021
EVT_SEARCHCTRL_SEARCH_BTN(wxID_FIND,AddNewInstallDlg::Filter)
2122
wxEND_EVENT_TABLE()
2223

@@ -44,6 +45,7 @@ void AddNewInstallDlg::PopulateTable(wxCommandEvent&){
4445

4546
installBtn->SetLabel("Install Selected");
4647
installBtn->Enable();
48+
installViaHubBtn->Enable();
4749
installBtn->Fit();
4850
installSearchSizer->Layout();
4951
}
@@ -190,7 +192,17 @@ void AddNewInstallDlg::InstallSelected(wxCommandEvent&){
190192
}
191193
}
192194

195+
void AddNewInstallDlg::InstallSelectedWithHub(wxCommandEvent &){
196+
auto item = versionsListCtrl->GetSelection();
197+
auto data = *(reinterpret_cast<version*>(versionsListCtrl->GetItemData(item)));
198+
199+
auto url = fmt::format("unityhub://{}/{}", data.name,data.hashcode);
200+
201+
wxLaunchDefaultBrowser(url);
202+
}
203+
193204
void AddNewInstallDlg::Reenable(wxCommandEvent &){
194205
installBtn->Enable();
206+
installViaHubBtn->Enable();
195207
installBtn->SetLabel("Install Selected");
196208
}

source/form.fbp

+149-66
Original file line numberDiff line numberDiff line change
@@ -3231,74 +3231,157 @@
32313231
</object>
32323232
<object class="sizeritem" expanded="1">
32333233
<property name="border">5</property>
3234-
<property name="flag">wxALL|wxALIGN_RIGHT</property>
3234+
<property name="flag">wxALIGN_RIGHT</property>
32353235
<property name="proportion">0</property>
3236-
<object class="wxButton" expanded="1">
3237-
<property name="BottomDockable">1</property>
3238-
<property name="LeftDockable">1</property>
3239-
<property name="RightDockable">1</property>
3240-
<property name="TopDockable">1</property>
3241-
<property name="aui_layer"></property>
3242-
<property name="aui_name"></property>
3243-
<property name="aui_position"></property>
3244-
<property name="aui_row"></property>
3245-
<property name="best_size"></property>
3246-
<property name="bg"></property>
3247-
<property name="bitmap"></property>
3248-
<property name="caption"></property>
3249-
<property name="caption_visible">1</property>
3250-
<property name="center_pane">0</property>
3251-
<property name="close_button">1</property>
3252-
<property name="context_help"></property>
3253-
<property name="context_menu">1</property>
3254-
<property name="current"></property>
3255-
<property name="default">0</property>
3256-
<property name="default_pane">0</property>
3257-
<property name="disabled"></property>
3258-
<property name="dock">Dock</property>
3259-
<property name="dock_fixed">0</property>
3260-
<property name="docking">Left</property>
3261-
<property name="enabled">0</property>
3262-
<property name="fg"></property>
3263-
<property name="floatable">1</property>
3264-
<property name="focus"></property>
3265-
<property name="font"></property>
3266-
<property name="gripper">0</property>
3267-
<property name="hidden">0</property>
3268-
<property name="id">wxID_FILE</property>
3269-
<property name="label">Loading...</property>
3270-
<property name="margins"></property>
3271-
<property name="markup">0</property>
3272-
<property name="max_size"></property>
3273-
<property name="maximize_button">0</property>
3274-
<property name="maximum_size"></property>
3275-
<property name="min_size"></property>
3276-
<property name="minimize_button">0</property>
3236+
<object class="wxBoxSizer" expanded="1">
32773237
<property name="minimum_size"></property>
3278-
<property name="moveable">1</property>
3279-
<property name="name">installBtn</property>
3280-
<property name="pane_border">1</property>
3281-
<property name="pane_position"></property>
3282-
<property name="pane_size"></property>
3283-
<property name="permission">protected</property>
3284-
<property name="pin_button">1</property>
3285-
<property name="pos"></property>
3286-
<property name="position"></property>
3287-
<property name="pressed"></property>
3288-
<property name="resize">Resizable</property>
3289-
<property name="show">1</property>
3290-
<property name="size"></property>
3291-
<property name="style"></property>
3292-
<property name="subclass">; ; forward_declare</property>
3293-
<property name="toolbar_pane">0</property>
3294-
<property name="tooltip"></property>
3295-
<property name="validator_data_type"></property>
3296-
<property name="validator_style">wxFILTER_NONE</property>
3297-
<property name="validator_type">wxDefaultValidator</property>
3298-
<property name="validator_variable"></property>
3299-
<property name="window_extra_style"></property>
3300-
<property name="window_name"></property>
3301-
<property name="window_style"></property>
3238+
<property name="name">btnPairSizer</property>
3239+
<property name="orient">wxHORIZONTAL</property>
3240+
<property name="permission">none</property>
3241+
<object class="sizeritem" expanded="1">
3242+
<property name="border">5</property>
3243+
<property name="flag">wxALL</property>
3244+
<property name="proportion">0</property>
3245+
<object class="wxButton" expanded="1">
3246+
<property name="BottomDockable">1</property>
3247+
<property name="LeftDockable">1</property>
3248+
<property name="RightDockable">1</property>
3249+
<property name="TopDockable">1</property>
3250+
<property name="aui_layer"></property>
3251+
<property name="aui_name"></property>
3252+
<property name="aui_position"></property>
3253+
<property name="aui_row"></property>
3254+
<property name="best_size"></property>
3255+
<property name="bg"></property>
3256+
<property name="bitmap"></property>
3257+
<property name="caption"></property>
3258+
<property name="caption_visible">1</property>
3259+
<property name="center_pane">0</property>
3260+
<property name="close_button">1</property>
3261+
<property name="context_help"></property>
3262+
<property name="context_menu">1</property>
3263+
<property name="current"></property>
3264+
<property name="default">0</property>
3265+
<property name="default_pane">0</property>
3266+
<property name="disabled"></property>
3267+
<property name="dock">Dock</property>
3268+
<property name="dock_fixed">0</property>
3269+
<property name="docking">Left</property>
3270+
<property name="enabled">0</property>
3271+
<property name="fg"></property>
3272+
<property name="floatable">1</property>
3273+
<property name="focus"></property>
3274+
<property name="font"></property>
3275+
<property name="gripper">0</property>
3276+
<property name="hidden">0</property>
3277+
<property name="id">wxID_FILE</property>
3278+
<property name="label">Loading...</property>
3279+
<property name="margins"></property>
3280+
<property name="markup">0</property>
3281+
<property name="max_size"></property>
3282+
<property name="maximize_button">0</property>
3283+
<property name="maximum_size"></property>
3284+
<property name="min_size"></property>
3285+
<property name="minimize_button">0</property>
3286+
<property name="minimum_size"></property>
3287+
<property name="moveable">1</property>
3288+
<property name="name">installBtn</property>
3289+
<property name="pane_border">1</property>
3290+
<property name="pane_position"></property>
3291+
<property name="pane_size"></property>
3292+
<property name="permission">protected</property>
3293+
<property name="pin_button">1</property>
3294+
<property name="pos"></property>
3295+
<property name="position"></property>
3296+
<property name="pressed"></property>
3297+
<property name="resize">Resizable</property>
3298+
<property name="show">1</property>
3299+
<property name="size"></property>
3300+
<property name="style"></property>
3301+
<property name="subclass">; ; forward_declare</property>
3302+
<property name="toolbar_pane">0</property>
3303+
<property name="tooltip"></property>
3304+
<property name="validator_data_type"></property>
3305+
<property name="validator_style">wxFILTER_NONE</property>
3306+
<property name="validator_type">wxDefaultValidator</property>
3307+
<property name="validator_variable"></property>
3308+
<property name="window_extra_style"></property>
3309+
<property name="window_name"></property>
3310+
<property name="window_style"></property>
3311+
</object>
3312+
</object>
3313+
<object class="sizeritem" expanded="1">
3314+
<property name="border">5</property>
3315+
<property name="flag">wxALL</property>
3316+
<property name="proportion">0</property>
3317+
<object class="wxButton" expanded="1">
3318+
<property name="BottomDockable">1</property>
3319+
<property name="LeftDockable">1</property>
3320+
<property name="RightDockable">1</property>
3321+
<property name="TopDockable">1</property>
3322+
<property name="aui_layer"></property>
3323+
<property name="aui_name"></property>
3324+
<property name="aui_position"></property>
3325+
<property name="aui_row"></property>
3326+
<property name="best_size"></property>
3327+
<property name="bg"></property>
3328+
<property name="bitmap"></property>
3329+
<property name="caption"></property>
3330+
<property name="caption_visible">1</property>
3331+
<property name="center_pane">0</property>
3332+
<property name="close_button">1</property>
3333+
<property name="context_help"></property>
3334+
<property name="context_menu">1</property>
3335+
<property name="current"></property>
3336+
<property name="default">0</property>
3337+
<property name="default_pane">0</property>
3338+
<property name="disabled"></property>
3339+
<property name="dock">Dock</property>
3340+
<property name="dock_fixed">0</property>
3341+
<property name="docking">Left</property>
3342+
<property name="enabled">0</property>
3343+
<property name="fg"></property>
3344+
<property name="floatable">1</property>
3345+
<property name="focus"></property>
3346+
<property name="font"></property>
3347+
<property name="gripper">0</property>
3348+
<property name="hidden">0</property>
3349+
<property name="id">INSTALLVIAHUB</property>
3350+
<property name="label">Install Via Hub</property>
3351+
<property name="margins"></property>
3352+
<property name="markup">0</property>
3353+
<property name="max_size"></property>
3354+
<property name="maximize_button">0</property>
3355+
<property name="maximum_size"></property>
3356+
<property name="min_size"></property>
3357+
<property name="minimize_button">0</property>
3358+
<property name="minimum_size"></property>
3359+
<property name="moveable">1</property>
3360+
<property name="name">installViaHubBtn</property>
3361+
<property name="pane_border">1</property>
3362+
<property name="pane_position"></property>
3363+
<property name="pane_size"></property>
3364+
<property name="permission">protected</property>
3365+
<property name="pin_button">1</property>
3366+
<property name="pos"></property>
3367+
<property name="position"></property>
3368+
<property name="pressed"></property>
3369+
<property name="resize">Resizable</property>
3370+
<property name="show">1</property>
3371+
<property name="size"></property>
3372+
<property name="style"></property>
3373+
<property name="subclass">; ; forward_declare</property>
3374+
<property name="toolbar_pane">0</property>
3375+
<property name="tooltip"></property>
3376+
<property name="validator_data_type"></property>
3377+
<property name="validator_style">wxFILTER_NONE</property>
3378+
<property name="validator_type">wxDefaultValidator</property>
3379+
<property name="validator_variable"></property>
3380+
<property name="window_extra_style"></property>
3381+
<property name="window_name"></property>
3382+
<property name="window_style"></property>
3383+
</object>
3384+
</object>
33023385
</object>
33033386
</object>
33043387
</object>

source/globals.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ struct editor{
3333

3434
//where to find various Unity things on macOS
3535
static const std::string executable = "Unity.app/Contents/MacOS/Unity";
36-
static const std::string defaultInstall = "/Applications/Unity/Hub/Editor";
36+
static const std::vector<std::string> defaultInstall = {"/Applications/Unity/Hub/Editor","/Applications/Unity/"};
3737
//TODO: make this a preference?
3838
static const std::string hubDefault = "/Applications/Unity Hub.app";
3939
static const std::string templatesDir = "Unity.app/Contents/Resources/PackageManager/ProjectTemplates/";
@@ -57,7 +57,7 @@ struct editor{
5757

5858
//where to find various Unity things on windows
5959
static const std::string executable = "Editor\\Unity.exe";
60-
static const std::string defaultInstall = "\\Program Files\\Unity\\Hub\\Editor";
60+
static const std::vector<std::string> defaultInstall = {"\\Program Files\\Unity\\Hub\\Editor"};
6161

6262
static const std::string hubDefault = "\\Program Files\\Unity Hub\\Unity Hub.exe";
6363
static const std::string templatesDir = "Editor\\Data\\Resources\\PackageManager\\ProjectTemplates\\";
@@ -122,7 +122,7 @@ struct editor{
122122
static const char dirsep = '/';
123123

124124
static const std::string executable = "Editor/Unity";
125-
static const std::string defaultInstall = getpwuid(getuid())->pw_dir +string("/Unity/Hub/Editor");
125+
static const std::vector<std::string> defaultInstall = {getpwuid(getuid())->pw_dir +string("/Unity/Hub/Editor")};
126126
//TODO: make this a preference?
127127
static const std::string hubDefault = "/Applications/Unity Hub.app";
128128
static const std::string templatesDir = "Editor/Data/Resources/PackageManager/ProjectTemplates/";

source/interface.cpp

+12-1
Original file line numberDiff line numberDiff line change
@@ -390,10 +390,21 @@ AddNewInstallDlgBase::AddNewInstallDlgBase( wxWindow* parent, wxWindowID id, con
390390
dateCol = versionsListCtrl->AppendTextColumn( wxT("Date"), wxDATAVIEW_CELL_INERT, -1, static_cast<wxAlignment>(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE );
391391
installSearchSizer->Add( versionsListCtrl, 1, wxALL|wxEXPAND, 5 );
392392

393+
wxBoxSizer* btnPairSizer;
394+
btnPairSizer = new wxBoxSizer( wxHORIZONTAL );
395+
393396
installBtn = new wxButton( this, wxID_FILE, wxT("Loading..."), wxDefaultPosition, wxDefaultSize, 0 );
394397
installBtn->Enable( false );
395398

396-
installSearchSizer->Add( installBtn, 0, wxALL|wxALIGN_RIGHT, 5 );
399+
btnPairSizer->Add( installBtn, 0, wxALL, 5 );
400+
401+
installViaHubBtn = new wxButton( this, INSTALLVIAHUB, wxT("Install Via Hub"), wxDefaultPosition, wxDefaultSize, 0 );
402+
installViaHubBtn->Enable( false );
403+
404+
btnPairSizer->Add( installViaHubBtn, 0, wxALL, 5 );
405+
406+
407+
installSearchSizer->Add( btnPairSizer, 0, wxALIGN_RIGHT, 5 );
397408

398409

399410
this->SetSizer( installSearchSizer );

source/interface.h

+2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
#define Nav_Home 1008
4848
#define wxID_TOP 1009
4949
#define VERSIONS_LIST 1010
50+
#define INSTALLVIAHUB 1011
5051

5152
///////////////////////////////////////////////////////////////////////////////
5253
/// Class MainFrame
@@ -134,6 +135,7 @@ class AddNewInstallDlgBase : public wxDialog
134135
wxDataViewColumn* versionCol;
135136
wxDataViewColumn* dateCol;
136137
wxButton* installBtn;
138+
wxButton* installViaHubBtn;
137139

138140
public:
139141

0 commit comments

Comments
 (0)