From f83e607e6e5a83cb487ab51155d2d38445b50bb5 Mon Sep 17 00:00:00 2001 From: Seth Hillbrand <seth@kipro-pcb.com> Date: Mon, 24 Mar 2025 11:52:11 -0700 Subject: [PATCH] Enable/disable git tracking in user prefs Don't require advanced config for people who want to disable --- common/advanced_config.cpp | 11 - common/dialogs/git/panel_git_repos.cpp | 289 +-- common/dialogs/git/panel_git_repos.h | 5 +- common/dialogs/git/panel_git_repos_base.cpp | 142 +- common/dialogs/git/panel_git_repos_base.h | 40 +- .../git/panel_git_repositories_base.fbp | 1918 +++++++++-------- common/eda_base_frame.cpp | 15 +- common/settings/common_settings.cpp | 6 + include/advanced_config.h | 18 - include/settings/common_settings.h | 2 + kicad/kicad_manager_frame.cpp | 2 + kicad/menubar.cpp | 2 +- kicad/project_tree_pane.cpp | 20 +- 13 files changed, 1097 insertions(+), 1373 deletions(-) diff --git a/common/advanced_config.cpp b/common/advanced_config.cpp index e6b985b4fc..58448bee9f 100644 --- a/common/advanced_config.cpp +++ b/common/advanced_config.cpp @@ -100,7 +100,6 @@ static const wxChar V3DRT_BevelHeight_um[] = wxT( "V3DRT_BevelHeight_um" ); static const wxChar V3DRT_BevelExtentFactor[] = wxT( "V3DRT_BevelExtentFactor" ); static const wxChar EnablePcbDesignBlocks[] = wxT( "EnablePcbDesignBlocks" ); static const wxChar EnableGenerators[] = wxT( "EnableGenerators" ); -static const wxChar EnableGit[] = wxT( "EnableGit" ); static const wxChar EnableLibWithText[] = wxT( "EnableLibWithText" ); static const wxChar EnableLibDir[] = wxT( "EnableLibDir" ); static const wxChar DisambiguationTime[] = wxT( "DisambiguationTime" ); @@ -127,7 +126,6 @@ static const wxChar NetInspectorBulkUpdateOptimisationThreshold[] = wxT( "NetInspectorBulkUpdateOptimisationThreshold" ); static const wxChar ExcludeFromSimulationLineWidth[] = wxT( "ExcludeFromSimulationLineWidth" ); static const wxChar GitIconRefreshInterval[] = wxT( "GitIconRefreshInterval" ); -static const wxChar GitProjectStatusRefreshInterval[] = wxT( "GitProjectStatusRefreshInterval" ); static const wxChar ConfigurableToolbars[] = wxT( "ConfigurableToolbars" ); } // namespace KEYS @@ -259,7 +257,6 @@ ADVANCED_CFG::ADVANCED_CFG() m_ShowRepairSchematic = false; m_EnablePcbDesignBlocks = false; m_EnableGenerators = false; - m_EnableGit = true; m_EnableLibWithText = false; m_EnableLibDir = false; @@ -309,7 +306,6 @@ ADVANCED_CFG::ADVANCED_CFG() m_ExcludeFromSimulationLineWidth = 25; m_GitIconRefreshInterval = 10000; - m_GitProjectStatusRefreshInterval = 60000; m_ConfigurableToolbars = false; @@ -502,9 +498,6 @@ void ADVANCED_CFG::loadSettings( wxConfigBase& aCfg ) configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::EnableAPILogging, &m_EnableAPILogging, m_EnableAPILogging ) ); - configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::EnableGit, - &m_EnableGit, m_EnableGit ) ); - configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::EnableLibWithText, &m_EnableLibWithText, m_EnableLibWithText ) ); @@ -598,10 +591,6 @@ void ADVANCED_CFG::loadSettings( wxConfigBase& aCfg ) &m_GitIconRefreshInterval, m_GitIconRefreshInterval, 0, 100000 ) ); - configParams.push_back( new PARAM_CFG_INT( true, AC_KEYS::GitProjectStatusRefreshInterval, - &m_GitProjectStatusRefreshInterval, - m_GitProjectStatusRefreshInterval, 0, 100000 ) ); - configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::ConfigurableToolbars, &m_ConfigurableToolbars, m_ConfigurableToolbars ) ); diff --git a/common/dialogs/git/panel_git_repos.cpp b/common/dialogs/git/panel_git_repos.cpp index fbdd57c35f..4c06d2aced 100644 --- a/common/dialogs/git/panel_git_repos.cpp +++ b/common/dialogs/git/panel_git_repos.cpp @@ -38,11 +38,6 @@ PANEL_GIT_REPOS::PANEL_GIT_REPOS( wxWindow* aParent ) : PANEL_GIT_REPOS_BASE( aParent) { - - m_btnAddRepo->SetBitmap( KiBitmapBundle( BITMAPS::small_plus ) ); - m_btnEditRepo->SetBitmap( KiBitmapBundle( BITMAPS::small_edit ) ); - m_btnDelete->SetBitmap( KiBitmapBundle( BITMAPS::small_trash ) ); - } PANEL_GIT_REPOS::~PANEL_GIT_REPOS() @@ -52,7 +47,6 @@ PANEL_GIT_REPOS::~PANEL_GIT_REPOS() void PANEL_GIT_REPOS::ResetPanel() { - m_grid->ClearGrid(); m_cbDefault->SetValue( true ); m_author->SetValue( wxEmptyString ); m_authorEmail->SetValue( wxEmptyString ); @@ -103,28 +97,10 @@ static std::pair<wxString, wxString> getDefaultAuthorAndEmail() bool PANEL_GIT_REPOS::TransferDataFromWindow() { - COMMON_SETTINGS* settings = Pgm().GetCommonSettings(); - std::vector<COMMON_SETTINGS::GIT_REPOSITORY>& repos = settings->m_Git.repositories; - - repos.clear(); - - for( int row = 0; row < m_grid->GetNumberRows(); row++ ) - { - COMMON_SETTINGS::GIT_REPOSITORY repo; - - repo.active = m_grid->GetCellValue( row, COL_ACTIVE ) == "1"; - repo.name = m_grid->GetCellValue( row, COL_NAME ); - repo.path = m_grid->GetCellValue( row, COL_PATH ); - repo.authType = m_grid->GetCellValue( row, COL_AUTH_TYPE ); - repo.username = m_grid->GetCellValue( row, COL_USERNAME ); - - KIPLATFORM::SECRETS::StoreSecret( repo.path, repo.username, - m_grid->GetCellValue( row, COL_PASSWORD ) ); - repo.ssh_path = m_grid->GetCellValue( row, COL_SSH_PATH ); - repo.checkValid = m_grid->GetCellValue( row, COL_STATUS ) == "1"; - repos.push_back( repo ); - } + COMMON_SETTINGS* settings = Pgm().GetCommonSettings(); + settings->m_Git.enableGit = m_enableGit->GetValue(); + settings->m_Git.updatInterval = m_updateInterval->GetValue(); settings->m_Git.useDefaultAuthor = m_cbDefault->GetValue(); settings->m_Git.authorName = m_author->GetValue(); settings->m_Git.authorEmail = m_authorEmail->GetValue(); @@ -132,149 +108,38 @@ bool PANEL_GIT_REPOS::TransferDataFromWindow() return true; } -static bool testRepositoryConnection( COMMON_SETTINGS::GIT_REPOSITORY& repository) -{ - git_libgit2_init(); - - git_remote_callbacks callbacks; - callbacks.version = GIT_REMOTE_CALLBACKS_VERSION; - - typedef struct - { - COMMON_SETTINGS::GIT_REPOSITORY* repo; - bool success; - } callbacksPayload; - - callbacksPayload cb_data( { &repository, true } ); // If we don't need authentication, then, - // we are successful - callbacks.payload = &cb_data; - callbacks.credentials = - [](git_cred** out, const char* url, const char* username, unsigned int allowed_types, - void* payload) -> int - { - - // If we are asking for credentials, then, we need authentication - - callbacksPayload* data = static_cast<callbacksPayload*>(payload); - - data->success = false; - - if( allowed_types & GIT_CREDTYPE_USERNAME ) - { - data->success = true; - } - else if( data->repo->authType == "ssh" && ( allowed_types & GIT_CREDTYPE_SSH_KEY ) ) - { - wxString sshKeyPath = data->repo->ssh_path; - - // Check if the SSH key exists and is readable - if( wxFileExists( sshKeyPath ) && wxFile::Access( sshKeyPath, wxFile::read ) ) - data->success = true; - } - else if( data->repo->authType == "password" ) - { - data->success = ( allowed_types & GIT_CREDTYPE_USERPASS_PLAINTEXT ); - } - - return 0; - }; - - // Create a temporary directory to initialize the Git repository - wxString tempDirPath = wxFileName::CreateTempFileName(wxT("kigit_temp")); - - if( !wxFileName::Mkdir( tempDirPath, wxS_DIR_DEFAULT ) ) - { - git_libgit2_shutdown(); - wxLogError( "Failed to create temporary directory for Git repository (%s): %s", tempDirPath, - wxSysErrorMsg() ); - return false; - } - - // Initialize the Git repository - git_repository* repo = nullptr; - const char* path = tempDirPath.mb_str( wxConvUTF8 ); - - if( git_repository_init( &repo, path, 0 ) != 0 ) - { - git_libgit2_shutdown(); - wxRmdir(tempDirPath); - return false; - } - - KIGIT::GitRepositoryPtr repoPtr( repo ); - git_remote* remote = nullptr; - - if( git_remote_create_anonymous( &remote, repo, path ) != 0 ) - { - git_libgit2_shutdown(); - wxRmdir(tempDirPath); - return false; - } - - KIGIT::GitRemotePtr remotePtr( remote ); - - // We don't really care about the result of this call, the authentication callback - // will set the return values we need - git_remote_connect( remote, GIT_DIRECTION_FETCH, &callbacks, nullptr, nullptr ); - - git_remote_disconnect( remote ); - git_libgit2_shutdown(); - - // Clean up the temporary directory - wxRmdir(tempDirPath); - - return cb_data.success; -} bool PANEL_GIT_REPOS::TransferDataToWindow() { COMMON_SETTINGS* settings = Pgm().GetCommonSettings(); + std::pair<wxString, wxString> defaultAuthor = getDefaultAuthorAndEmail(); - m_grid->ClearGrid(); - - for( COMMON_SETTINGS::GIT_REPOSITORY& repo : settings->m_Git.repositories ) - { - if( repo.name.IsEmpty() || repo.path.IsEmpty() ) - continue; - - int row = m_grid->GetNumberRows(); - m_grid->AppendRows( 1 ); - - m_grid->SetCellRenderer( row, COL_ACTIVE, new wxGridCellBoolRenderer() ); - m_grid->SetCellEditor( row, COL_ACTIVE, new wxGridCellBoolEditor() ); - m_grid->SetCellValue( row, COL_ACTIVE, repo.active ? "1" : "0" ); - - m_grid->SetCellValue( row, COL_NAME, repo.name ); - m_grid->SetCellValue( row, COL_PATH, repo.path ); - m_grid->SetCellValue( row, COL_AUTH_TYPE, repo.authType ); - m_grid->SetCellValue( row, COL_USERNAME, repo.username ); - - wxString password; - KIPLATFORM::SECRETS::GetSecret( repo.path, repo.username, password ); - m_grid->SetCellValue( row, COL_PASSWORD, password ); - m_grid->SetCellValue( row, COL_SSH_PATH, repo.ssh_path ); - - if( repo.active ) - m_grid->SetCellValue( row, 3, testRepositoryConnection( repo ) ? "C" : "NC" ); - - } + m_enableGit->SetValue( settings->m_Git.enableGit ); + m_updateInterval->SetValue( settings->m_Git.updatInterval ); m_cbDefault->SetValue( settings->m_Git.useDefaultAuthor ); if( settings->m_Git.useDefaultAuthor ) { - std::pair<wxString, wxString> defaultAuthor = getDefaultAuthorAndEmail(); m_author->SetValue( defaultAuthor.first ); m_authorEmail->SetValue( defaultAuthor.second ); - m_author->Disable(); - m_authorEmail->Disable(); } else { - m_author->SetValue( settings->m_Git.authorName ); - m_authorEmail->SetValue( settings->m_Git.authorEmail ); + if( settings->m_Git.authorName.IsEmpty() ) + m_author->SetValue( defaultAuthor.first ); + else + m_author->SetValue( settings->m_Git.authorName ); + + if( settings->m_Git.authorEmail.IsEmpty() ) + m_authorEmail->SetValue( defaultAuthor.second ); + else + m_authorEmail->SetValue( settings->m_Git.authorEmail ); } + wxCommandEvent event; + onDefaultClick( event ); + onEnableGitClick( event ); return true; } @@ -286,115 +151,13 @@ void PANEL_GIT_REPOS::onDefaultClick( wxCommandEvent& event ) m_authorEmailLabel->Enable( !m_cbDefault->GetValue() ); } - -void PANEL_GIT_REPOS::onGridDClick( wxGridEvent& event ) +void PANEL_GIT_REPOS::onEnableGitClick( wxCommandEvent& aEvent ) { - if( m_grid->GetNumberRows() <= 0 ) - { - wxCommandEvent evt; - onAddClick( evt ); - return; - } - - int row = event.GetRow(); - - if( row < 0 || row >= m_grid->GetNumberRows() ) - return; - - DIALOG_GIT_REPOSITORY dialog( this, nullptr ); - - dialog.SetRepoName( m_grid->GetCellValue( row, COL_NAME ) ); - dialog.SetRepoURL( m_grid->GetCellValue( row, COL_PATH ) ); - dialog.SetUsername( m_grid->GetCellValue( row, COL_USERNAME ) ); - dialog.SetRepoSSHPath( m_grid->GetCellValue( row, COL_SSH_PATH ) ); - dialog.SetPassword( m_grid->GetCellValue( row, COL_PASSWORD ) ); - - wxString type = m_grid->GetCellValue( row, COL_AUTH_TYPE ); - - if( type == "password" ) - dialog.SetRepoType( KIGIT_COMMON::GIT_CONN_TYPE::GIT_CONN_HTTPS ); - else if( type == "ssh" ) - dialog.SetRepoType( KIGIT_COMMON::GIT_CONN_TYPE::GIT_CONN_SSH ); - else - dialog.SetRepoType( KIGIT_COMMON::GIT_CONN_TYPE::GIT_CONN_LOCAL); - - if( dialog.ShowModal() == wxID_OK ) - { - m_grid->SetCellValue( row, COL_NAME, dialog.GetRepoName() ); - m_grid->SetCellValue( row, COL_PATH, dialog.GetRepoURL() ); - m_grid->SetCellValue( row, COL_USERNAME, dialog.GetUsername() ); - m_grid->SetCellValue( row, COL_SSH_PATH, dialog.GetRepoSSHPath() ); - m_grid->SetCellValue( row, COL_PASSWORD, dialog.GetPassword() ); - - if( dialog.GetRepoType() == KIGIT_COMMON::GIT_CONN_TYPE::GIT_CONN_HTTPS ) - { - m_grid->SetCellValue( row, COL_AUTH_TYPE, "password" ); - } - else if( dialog.GetRepoType() == KIGIT_COMMON::GIT_CONN_TYPE::GIT_CONN_SSH ) - { - m_grid->SetCellValue( row, COL_AUTH_TYPE, "ssh" ); - } - else - { - m_grid->SetCellValue( row, COL_AUTH_TYPE, "none" ); - } - } - -} - - -void PANEL_GIT_REPOS::onAddClick( wxCommandEvent& event ) -{ - - DIALOG_GIT_REPOSITORY dialog( m_parent, nullptr ); - - if( dialog.ShowModal() == wxID_OK ) - { - int row = m_grid->GetNumberRows(); - m_grid->AppendRows( 1 ); - - m_grid->SetCellValue( row, COL_NAME, dialog.GetRepoName() ); - m_grid->SetCellValue( row, COL_PATH, dialog.GetRepoURL() ); - m_grid->SetCellValue( row, COL_USERNAME, dialog.GetUsername() ); - m_grid->SetCellValue( row, COL_SSH_PATH, dialog.GetRepoSSHPath() ); - m_grid->SetCellValue( row, COL_PASSWORD, dialog.GetPassword() ); - - if( dialog.GetRepoType() == KIGIT_COMMON::GIT_CONN_TYPE::GIT_CONN_HTTPS ) - { - m_grid->SetCellValue( row, COL_AUTH_TYPE, "password" ); - } - else if( dialog.GetRepoType() == KIGIT_COMMON::GIT_CONN_TYPE::GIT_CONN_SSH ) - { - m_grid->SetCellValue( row, COL_AUTH_TYPE, "ssh" ); - } - else - { - m_grid->SetCellValue( row, COL_AUTH_TYPE, "none" ); - } - - m_grid->MakeCellVisible( row, 0 ); - } -} - - -void PANEL_GIT_REPOS::onEditClick( wxCommandEvent& event ) -{ - wxGridEvent evt( m_grid->GetId(), wxEVT_GRID_CELL_LEFT_DCLICK, m_grid, - m_grid->GetGridCursorRow(), m_grid->GetGridCursorCol() ); - onGridDClick( evt ); -} - - -void PANEL_GIT_REPOS::onDeleteClick( wxCommandEvent& event ) -{ - if( !m_grid->CommitPendingChanges() || m_grid->GetNumberRows() <= 0 ) - return; - - int curRow = m_grid->GetGridCursorRow(); - - m_grid->DeleteRows( curRow ); - - curRow = std::max( 0, curRow - 1 ); - m_grid->MakeCellVisible( curRow, m_grid->GetGridCursorCol() ); - m_grid->SetGridCursor( curRow, m_grid->GetGridCursorCol() ); + bool enable = m_enableGit->GetValue(); + m_updateInterval->Enable( enable ); + m_cbDefault->Enable( enable ); + m_author->Enable( enable && !m_cbDefault->GetValue() ); + m_authorEmail->Enable( enable && !m_cbDefault->GetValue() ); + m_authorLabel->Enable( enable && !m_cbDefault->GetValue() ); + m_authorEmailLabel->Enable( enable && !m_cbDefault->GetValue() ); } diff --git a/common/dialogs/git/panel_git_repos.h b/common/dialogs/git/panel_git_repos.h index 0355e45417..5fbf09fec5 100644 --- a/common/dialogs/git/panel_git_repos.h +++ b/common/dialogs/git/panel_git_repos.h @@ -49,10 +49,7 @@ public: private: void onDefaultClick( wxCommandEvent& event ) override; - void onGridDClick( wxGridEvent& event ) override; - void onAddClick( wxCommandEvent& event ) override; - void onEditClick( wxCommandEvent& event ) override; - void onDeleteClick( wxCommandEvent& event ) override; + void onEnableGitClick( wxCommandEvent& event ) override; }; diff --git a/common/dialogs/git/panel_git_repos_base.cpp b/common/dialogs/git/panel_git_repos_base.cpp index 0640698ef7..01078feae6 100644 --- a/common/dialogs/git/panel_git_repos_base.cpp +++ b/common/dialogs/git/panel_git_repos_base.cpp @@ -1,13 +1,10 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 3.10.1-254-gc2ef7767) +// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6a-dirty) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// -#include "widgets/std_bitmap_button.h" -#include "widgets/wx_grid.h" - #include "panel_git_repos_base.h" /////////////////////////////////////////////////////////////////////////// @@ -20,9 +17,57 @@ PANEL_GIT_REPOS_BASE::PANEL_GIT_REPOS_BASE( wxWindow* parent, wxWindowID id, con wxBoxSizer* bLeftSizer; bLeftSizer = new wxBoxSizer( wxVERTICAL ); + m_enableGit = new wxCheckBox( this, wxID_ANY, _("Enable Git Tracking"), wxDefaultPosition, wxDefaultSize, 0 ); + bLeftSizer->Add( m_enableGit, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 13 ); + + m_gitSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerUpdate; + bSizerUpdate = new wxBoxSizer( wxVERTICAL ); + + m_staticText6 = new wxStaticText( this, wxID_ANY, _("Remote Tracking"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6->Wrap( -1 ); + bSizerUpdate->Add( m_staticText6, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 13 ); + + m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizerUpdate->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 ); + + wxGridBagSizer* gbUpdate; + gbUpdate = new wxGridBagSizer( 4, 5 ); + gbUpdate->SetFlexibleDirection( wxBOTH ); + gbUpdate->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + gbUpdate->SetEmptyCellSize( wxSize( -1,2 ) ); + + m_updateLabel = new wxStaticText( this, wxID_ANY, _("Update interval:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_updateLabel->Wrap( -1 ); + gbUpdate->Add( m_updateLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); + + m_updateInterval = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 60, 5 ); + m_updateInterval->SetToolTip( _("Number of minutes between remote update checks. Zero disables automatic checks.") ); + + gbUpdate->Add( m_updateInterval, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + + m_staticText7 = new wxStaticText( this, wxID_ANY, _("minutes"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText7->Wrap( -1 ); + gbUpdate->Add( m_staticText7, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); + + + gbUpdate->AddGrowableCol( 2 ); + + bSizerUpdate->Add( gbUpdate, 0, wxEXPAND|wxLEFT, 13 ); + + + m_gitSizer->Add( bSizerUpdate, 0, wxEXPAND, 5 ); + + wxBoxSizer* bSizerCommitData; + bSizerCommitData = new wxBoxSizer( wxVERTICAL ); + m_staticText12 = new wxStaticText( this, wxID_ANY, _("Git Commit Data"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText12->Wrap( -1 ); - bLeftSizer->Add( m_staticText12, 0, wxEXPAND|wxLEFT|wxTOP, 10 ); + bSizerCommitData->Add( m_staticText12, 0, wxEXPAND|wxLEFT|wxTOP, 13 ); + + m_staticline31 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizerCommitData->Add( m_staticline31, 0, wxEXPAND | wxALL, 5 ); wxFlexGridSizer* fgSizer1; fgSizer1 = new wxFlexGridSizer( 0, 2, 0, 0 ); @@ -60,84 +105,13 @@ PANEL_GIT_REPOS_BASE::PANEL_GIT_REPOS_BASE( wxWindow* parent, wxWindowID id, con fgSizer1->Add( m_authorEmail, 0, wxALL|wxEXPAND, 5 ); - bLeftSizer->Add( fgSizer1, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 13 ); - - m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bLeftSizer->Add( m_staticline3, 0, wxEXPAND|wxBOTTOM, 5 ); - - m_staticText20 = new wxStaticText( this, wxID_ANY, _("Git Repositories"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText20->Wrap( -1 ); - bLeftSizer->Add( m_staticText20, 0, wxEXPAND|wxLEFT|wxRIGHT, 13 ); - - wxBoxSizer* bAntialiasingSizer; - bAntialiasingSizer = new wxBoxSizer( wxVERTICAL ); - - m_grid = new WX_GRID( this, wxID_ANY, wxDefaultPosition, wxSize( 820,200 ), 0 ); - - // Grid - m_grid->CreateGrid( 0, 10 ); - m_grid->EnableEditing( false ); - m_grid->EnableGridLines( true ); - m_grid->EnableDragGridSize( false ); - m_grid->SetMargins( 0, 0 ); - - // Columns - m_grid->SetColSize( 0, 60 ); - m_grid->SetColSize( 1, 200 ); - m_grid->SetColSize( 2, 500 ); - m_grid->SetColSize( 3, 60 ); - m_grid->SetColSize( 4, 0 ); - m_grid->SetColSize( 5, 0 ); - m_grid->SetColSize( 6, 0 ); - m_grid->SetColSize( 7, 0 ); - m_grid->SetColSize( 8, 0 ); - m_grid->SetColSize( 9, 0 ); - m_grid->EnableDragColMove( false ); - m_grid->EnableDragColSize( true ); - m_grid->SetColLabelValue( 0, _("Active") ); - m_grid->SetColLabelValue( 1, _("Name") ); - m_grid->SetColLabelValue( 2, _("Path") ); - m_grid->SetColLabelValue( 3, _("Status") ); - m_grid->SetColLabelSize( 22 ); - m_grid->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER ); - - // Rows - m_grid->EnableDragRowSize( true ); - m_grid->SetRowLabelSize( 0 ); - m_grid->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER ); - - // Label Appearance - - // Cell Defaults - m_grid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP ); - bAntialiasingSizer->Add( m_grid, 5, wxALL|wxEXPAND, 5 ); + bSizerCommitData->Add( fgSizer1, 0, wxBOTTOM|wxEXPAND|wxLEFT, 8 ); - bLeftSizer->Add( bAntialiasingSizer, 0, wxEXPAND|wxLEFT|wxTOP, 5 ); - - wxBoxSizer* bButtonsSizer; - bButtonsSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_btnAddRepo = new STD_BITMAP_BUTTON( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 ); - m_btnAddRepo->SetToolTip( _("Add new repository") ); - - bButtonsSizer->Add( m_btnAddRepo, 0, wxALL, 5 ); - - m_btnEditRepo = new STD_BITMAP_BUTTON( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 ); - m_btnEditRepo->SetToolTip( _("Edit repository properties") ); - - bButtonsSizer->Add( m_btnEditRepo, 0, wxALL, 5 ); + m_gitSizer->Add( bSizerCommitData, 1, wxEXPAND, 5 ); - bButtonsSizer->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_btnDelete = new STD_BITMAP_BUTTON( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 ); - m_btnDelete->SetToolTip( _("Remove Git Repository") ); - - bButtonsSizer->Add( m_btnDelete, 0, wxBOTTOM|wxRIGHT|wxTOP, 5 ); - - - bLeftSizer->Add( bButtonsSizer, 1, wxALL|wxEXPAND, 5 ); + bLeftSizer->Add( m_gitSizer, 0, wxEXPAND, 0 ); bPanelSizer->Add( bLeftSizer, 0, wxRIGHT, 20 ); @@ -148,20 +122,14 @@ PANEL_GIT_REPOS_BASE::PANEL_GIT_REPOS_BASE( wxWindow* parent, wxWindowID id, con bPanelSizer->Fit( this ); // Connect Events + m_enableGit->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onEnableGitClick ), NULL, this ); m_cbDefault->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onDefaultClick ), NULL, this ); - m_grid->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( PANEL_GIT_REPOS_BASE::onGridDClick ), NULL, this ); - m_btnAddRepo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onAddClick ), NULL, this ); - m_btnEditRepo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onEditClick ), NULL, this ); - m_btnDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onDeleteClick ), NULL, this ); } PANEL_GIT_REPOS_BASE::~PANEL_GIT_REPOS_BASE() { // Disconnect Events + m_enableGit->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onEnableGitClick ), NULL, this ); m_cbDefault->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onDefaultClick ), NULL, this ); - m_grid->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( PANEL_GIT_REPOS_BASE::onGridDClick ), NULL, this ); - m_btnAddRepo->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onAddClick ), NULL, this ); - m_btnEditRepo->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onEditClick ), NULL, this ); - m_btnDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_GIT_REPOS_BASE::onDeleteClick ), NULL, this ); } diff --git a/common/dialogs/git/panel_git_repos_base.h b/common/dialogs/git/panel_git_repos_base.h index c6001fdac3..82a7edf799 100644 --- a/common/dialogs/git/panel_git_repos_base.h +++ b/common/dialogs/git/panel_git_repos_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 3.10.1-254-gc2ef7767) +// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6a-dirty) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -10,26 +10,19 @@ #include <wx/artprov.h> #include <wx/xrc/xmlres.h> #include <wx/intl.h> -class STD_BITMAP_BUTTON; -class WX_GRID; - #include "widgets/resettable_panel.h" #include <wx/string.h> -#include <wx/stattext.h> +#include <wx/checkbox.h> #include <wx/gdicmn.h> #include <wx/font.h> #include <wx/colour.h> #include <wx/settings.h> -#include <wx/checkbox.h> -#include <wx/textctrl.h> -#include <wx/sizer.h> +#include <wx/stattext.h> #include <wx/statline.h> -#include <wx/grid.h> -#include <wx/bmpbuttn.h> -#include <wx/bitmap.h> -#include <wx/image.h> -#include <wx/icon.h> -#include <wx/button.h> +#include <wx/spinctrl.h> +#include <wx/gbsizer.h> +#include <wx/sizer.h> +#include <wx/textctrl.h> #include <wx/panel.h> /////////////////////////////////////////////////////////////////////////// @@ -42,25 +35,24 @@ class PANEL_GIT_REPOS_BASE : public RESETTABLE_PANEL private: protected: + wxCheckBox* m_enableGit; + wxBoxSizer* m_gitSizer; + wxStaticText* m_staticText6; + wxStaticLine* m_staticline2; + wxStaticText* m_updateLabel; + wxSpinCtrl* m_updateInterval; + wxStaticText* m_staticText7; wxStaticText* m_staticText12; + wxStaticLine* m_staticline31; wxCheckBox* m_cbDefault; wxStaticText* m_authorLabel; wxTextCtrl* m_author; wxStaticText* m_authorEmailLabel; wxTextCtrl* m_authorEmail; - wxStaticLine* m_staticline3; - wxStaticText* m_staticText20; - WX_GRID* m_grid; - STD_BITMAP_BUTTON* m_btnAddRepo; - STD_BITMAP_BUTTON* m_btnEditRepo; - STD_BITMAP_BUTTON* m_btnDelete; // Virtual event handlers, override them in your derived class + virtual void onEnableGitClick( wxCommandEvent& event ) { event.Skip(); } virtual void onDefaultClick( wxCommandEvent& event ) { event.Skip(); } - virtual void onGridDClick( wxGridEvent& event ) { event.Skip(); } - virtual void onAddClick( wxCommandEvent& event ) { event.Skip(); } - virtual void onEditClick( wxCommandEvent& event ) { event.Skip(); } - virtual void onDeleteClick( wxCommandEvent& event ) { event.Skip(); } public: diff --git a/common/dialogs/git/panel_git_repositories_base.fbp b/common/dialogs/git/panel_git_repositories_base.fbp index da03f75ab2..f307bd24bc 100644 --- a/common/dialogs/git/panel_git_repositories_base.fbp +++ b/common/dialogs/git/panel_git_repositories_base.fbp @@ -1,953 +1,979 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <wxFormBuilder_Project> - <FileVersion major="1" minor="16" /> - <object class="Project" expanded="1"> - <property name="class_decoration"></property> - <property name="code_generation">C++</property> - <property name="disconnect_events">1</property> - <property name="disconnect_mode">source_name</property> - <property name="disconnect_php_events">0</property> - <property name="disconnect_python_events">0</property> - <property name="embedded_files_path">res</property> - <property name="encoding">UTF-8</property> - <property name="event_generation">connect</property> - <property name="file">panel_git_repos_base</property> - <property name="first_id">1000</property> - <property name="help_provider">none</property> - <property name="image_path_wrapper_function_name"></property> - <property name="indent_with_spaces"></property> - <property name="internationalize">1</property> - <property name="name">PanelGitRepos</property> - <property name="namespace"></property> - <property name="path">.</property> - <property name="precompiled_header"></property> - <property name="relative_path">1</property> - <property name="skip_lua_events">1</property> - <property name="skip_php_events">1</property> - <property name="skip_python_events">1</property> - <property name="ui_table">UI</property> - <property name="use_array_enum">0</property> - <property name="use_enum">1</property> - <property name="use_microsoft_bom">0</property> - <object class="Panel" expanded="1"> - <property name="aui_managed">0</property> - <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property> - <property name="bg"></property> - <property name="context_help"></property> - <property name="context_menu">1</property> - <property name="drag_accept_files">0</property> - <property name="enabled">1</property> - <property name="event_handler">impl_virtual</property> - <property name="fg"></property> - <property name="font"></property> - <property name="hidden">0</property> - <property name="id">wxID_ANY</property> - <property name="maximum_size"></property> + <FileVersion major="1" minor="18"/> + <object class="Project" expanded="true"> + <property name="code_generation">C++</property> + <property name="cpp_class_decoration"></property> + <property name="cpp_disconnect_events">1</property> + <property name="cpp_event_generation">connect</property> + <property name="cpp_help_provider">none</property> + <property name="cpp_namespace"></property> + <property name="cpp_precompiled_header"></property> + <property name="cpp_use_array_enum">0</property> + <property name="cpp_use_enum">1</property> + <property name="embedded_files_path">res</property> + <property name="encoding">UTF-8</property> + <property name="file">panel_git_repos_base</property> + <property name="first_id">1000</property> + <property name="internationalize">1</property> + <property name="lua_skip_events">1</property> + <property name="lua_ui_table">UI</property> + <property name="name">PanelGitRepos</property> + <property name="path">.</property> + <property name="php_disconnect_events">0</property> + <property name="php_disconnect_mode">source_name</property> + <property name="php_skip_events">1</property> + <property name="python_disconnect_events">0</property> + <property name="python_disconnect_mode">source_name</property> + <property name="python_image_path_wrapper_function_name"></property> + <property name="python_indent_with_spaces"></property> + <property name="python_skip_events">1</property> + <property name="relative_path">1</property> + <property name="use_microsoft_bom">0</property> + <property name="use_native_eol">0</property> + <object class="Panel" expanded="true"> + <property name="aui_managed">0</property> + <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property> + <property name="bg"></property> + <property name="context_help"></property> + <property name="context_menu">1</property> + <property name="drag_accept_files">0</property> + <property name="enabled">1</property> + <property name="event_handler">impl_virtual</property> + <property name="fg"></property> + <property name="font"></property> + <property name="hidden">0</property> + <property name="id">wxID_ANY</property> + <property name="maximum_size"></property> + <property name="minimum_size"></property> + <property name="name">PANEL_GIT_REPOS_BASE</property> + <property name="pos"></property> + <property name="size">-1,-1</property> + <property name="subclass">RESETTABLE_PANEL; widgets/resettable_panel.h; Not forward_declare</property> + <property name="tooltip"></property> + <property name="two_step_creation">0</property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style">wxTAB_TRAVERSAL</property> + <object class="wxBoxSizer" expanded="true"> + <property name="minimum_size"></property> + <property name="name">bPanelSizer</property> + <property name="orient">wxHORIZONTAL</property> + <property name="permission">none</property> + <object class="sizeritem" expanded="true"> + <property name="border">20</property> + <property name="flag">wxRIGHT</property> + <property name="proportion">0</property> + <object class="wxBoxSizer" expanded="true"> <property name="minimum_size"></property> - <property name="name">PANEL_GIT_REPOS_BASE</property> - <property name="pos"></property> - <property name="size">-1,-1</property> - <property name="subclass">RESETTABLE_PANEL; widgets/resettable_panel.h; Not forward_declare</property> - <property name="tooltip"></property> - <property name="two_step_creation">0</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="name">bLeftSizer</property> + <property name="orient">wxVERTICAL</property> + <property name="permission">none</property> + <object class="sizeritem" expanded="true"> + <property name="border">13</property> + <property name="flag">wxEXPAND|wxLEFT|wxRIGHT|wxTOP</property> + <property name="proportion">0</property> + <object class="wxCheckBox" expanded="true"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="checked">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="drag_accept_files">0</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">Enable Git Tracking</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="name">bPanelSizer</property> - <property name="orient">wxHORIZONTAL</property> - <property name="permission">none</property> - <object class="sizeritem" expanded="1"> - <property name="border">20</property> - <property name="flag">wxRIGHT</property> - <property name="proportion">0</property> - <object class="wxBoxSizer" expanded="1"> - <property name="minimum_size"></property> - <property name="name">bLeftSizer</property> - <property name="orient">wxVERTICAL</property> - <property name="permission">none</property> - <object class="sizeritem" expanded="0"> - <property name="border">10</property> - <property name="flag">wxEXPAND|wxLEFT|wxTOP</property> - <property name="proportion">0</property> - <object class="wxStaticText" expanded="0"> - <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="drag_accept_files">0</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">Git Commit Data</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">m_staticText12</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">13</property> - <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxTOP</property> - <property name="proportion">1</property> - <object class="wxFlexGridSizer" expanded="1"> - <property name="cols">2</property> - <property name="flexible_direction">wxBOTH</property> - <property name="growablecols">1</property> - <property name="growablerows"></property> - <property name="hgap">0</property> - <property name="minimum_size"></property> - <property name="name">fgSizer1</property> - <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property> - <property name="permission">none</property> - <property name="rows">0</property> - <property name="vgap">0</property> - <object class="sizeritem" expanded="0"> - <property name="border">5</property> - <property name="flag">wxALL</property> - <property name="proportion">0</property> - <object class="wxCheckBox" expanded="0"> - <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="checked">1</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="drag_accept_files">0</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">Use default values</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">m_cbDefault</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="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="OnCheckBox">onDefaultClick</event> - </object> - </object> - <object class="sizeritem" expanded="0"> - <property name="border">5</property> - <property name="flag">wxEXPAND</property> - <property name="proportion">0</property> - <object class="spacer" expanded="0"> - <property name="height">0</property> - <property name="permission">protected</property> - <property name="width">0</property> - </object> - </object> - <object class="sizeritem" expanded="0"> - <property name="border">5</property> - <property name="flag">wxALL</property> - <property name="proportion">0</property> - <object class="wxStaticText" expanded="0"> - <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="drag_accept_files">0</property> - <property name="enabled">0</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">Author name:</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">m_authorLabel</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="0"> - <property name="border">5</property> - <property name="flag">wxALL|wxEXPAND</property> - <property name="proportion">0</property> - <object class="wxTextCtrl" expanded="0"> - <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="drag_accept_files">0</property> - <property name="enabled">0</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="maxlength"></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">m_author</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="validator_data_type"></property> - <property name="validator_style">wxFILTER_NONE</property> - <property name="validator_type">wxDefaultValidator</property> - <property name="validator_variable"></property> - <property name="value"></property> - <property name="window_extra_style"></property> - <property name="window_name"></property> - <property name="window_style"></property> - </object> - </object> - <object class="sizeritem" expanded="0"> - <property name="border">5</property> - <property name="flag">wxALL</property> - <property name="proportion">0</property> - <object class="wxStaticText" expanded="0"> - <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="drag_accept_files">0</property> - <property name="enabled">0</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">Author e-mail:</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">m_authorEmailLabel</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="0"> - <property name="border">5</property> - <property name="flag">wxALL|wxEXPAND</property> - <property name="proportion">0</property> - <object class="wxTextCtrl" expanded="0"> - <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="drag_accept_files">0</property> - <property name="enabled">0</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="maxlength"></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">m_authorEmail</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="validator_data_type"></property> - <property name="validator_style">wxFILTER_NONE</property> - <property name="validator_type">wxDefaultValidator</property> - <property name="validator_variable"></property> - <property name="value"></property> - <property name="window_extra_style"></property> - <property name="window_name"></property> - <property name="window_style"></property> - </object> - </object> - </object> - </object> - <object class="sizeritem" expanded="0"> - <property name="border">5</property> - <property name="flag">wxEXPAND|wxBOTTOM</property> - <property name="proportion">0</property> - <object class="wxStaticLine" expanded="0"> - <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="drag_accept_files">0</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">m_staticline3</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">wxLI_HORIZONTAL</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> - </object> - </object> - <object class="sizeritem" expanded="0"> - <property name="border">13</property> - <property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property> - <property name="proportion">0</property> - <object class="wxStaticText" expanded="0"> - <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="drag_accept_files">0</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">Git Repositories</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">m_staticText20</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">wxEXPAND|wxLEFT|wxTOP</property> - <property name="proportion">0</property> - <object class="wxBoxSizer" expanded="1"> - <property name="minimum_size"></property> - <property name="name">bAntialiasingSizer</property> - <property name="orient">wxVERTICAL</property> - <property name="permission">none</property> - <object class="sizeritem" expanded="0"> - <property name="border">5</property> - <property name="flag">wxALL|wxEXPAND</property> - <property name="proportion">5</property> - <object class="wxGrid" expanded="0"> - <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="autosize_cols">0</property> - <property name="autosize_rows">0</property> - <property name="best_size"></property> - <property name="bg"></property> - <property name="caption"></property> - <property name="caption_visible">1</property> - <property name="cell_bg"></property> - <property name="cell_font"></property> - <property name="cell_horiz_alignment">wxALIGN_LEFT</property> - <property name="cell_text"></property> - <property name="cell_vert_alignment">wxALIGN_TOP</property> - <property name="center_pane">0</property> - <property name="close_button">1</property> - <property name="col_label_horiz_alignment">wxALIGN_CENTER</property> - <property name="col_label_size">22</property> - <property name="col_label_values">"Active" "Name" "Path" "Status"</property> - <property name="col_label_vert_alignment">wxALIGN_CENTER</property> - <property name="cols">10</property> - <property name="column_sizes">60,200,500,60,0,0,0,0,0,0</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="drag_accept_files">0</property> - <property name="drag_col_move">0</property> - <property name="drag_col_size">1</property> - <property name="drag_grid_size">0</property> - <property name="drag_row_size">1</property> - <property name="editing">0</property> - <property name="enabled">1</property> - <property name="fg"></property> - <property name="floatable">1</property> - <property name="font"></property> - <property name="grid_line_color"></property> - <property name="grid_lines">1</property> - <property name="gripper">0</property> - <property name="hidden">0</property> - <property name="id">wxID_ANY</property> - <property name="label_bg"></property> - <property name="label_font"></property> - <property name="label_text"></property> - <property name="margin_height">0</property> - <property name="margin_width">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">m_grid</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="row_label_horiz_alignment">wxALIGN_CENTER</property> - <property name="row_label_size">0</property> - <property name="row_label_values"></property> - <property name="row_label_vert_alignment">wxALIGN_CENTER</property> - <property name="row_sizes"></property> - <property name="rows">0</property> - <property name="show">1</property> - <property name="size">820,200</property> - <property name="subclass">WX_GRID; widgets/wx_grid.h; 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> - <event name="OnGridCellLeftDClick">onGridDClick</event> - </object> - </object> - </object> - </object> - <object class="sizeritem" expanded="1"> - <property name="border">5</property> - <property name="flag">wxALL|wxEXPAND</property> - <property name="proportion">1</property> - <object class="wxBoxSizer" expanded="1"> - <property name="minimum_size"></property> - <property name="name">bButtonsSizer</property> - <property name="orient">wxHORIZONTAL</property> - <property name="permission">none</property> - <object class="sizeritem" expanded="1"> - <property name="border">5</property> - <property name="flag">wxALL</property> - <property name="proportion">0</property> - <object class="wxBitmapButton" 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="auth_needed">0</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">0</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="drag_accept_files">0</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">MyButton</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">m_btnAddRepo</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">STD_BITMAP_BUTTON; widgets/std_bitmap_button.h; forward_declare</property> - <property name="toolbar_pane">0</property> - <property name="tooltip">Add new repository</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">onAddClick</event> - </object> - </object> - <object class="sizeritem" expanded="1"> - <property name="border">5</property> - <property name="flag">wxALL</property> - <property name="proportion">0</property> - <object class="wxBitmapButton" 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="auth_needed">0</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">0</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="drag_accept_files">0</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">MyButton</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">m_btnEditRepo</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">STD_BITMAP_BUTTON; widgets/std_bitmap_button.h; forward_declare</property> - <property name="toolbar_pane">0</property> - <property name="tooltip">Edit repository properties</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">onEditClick</event> - </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">5</property> - <property name="flag">wxBOTTOM|wxRIGHT|wxTOP</property> - <property name="proportion">0</property> - <object class="wxBitmapButton" 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="auth_needed">0</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">0</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="drag_accept_files">0</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">MyButton</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">m_btnDelete</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">STD_BITMAP_BUTTON; widgets/std_bitmap_button.h; forward_declare</property> - <property name="toolbar_pane">0</property> - <property name="tooltip">Remove Git Repository</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">onDeleteClick</event> - </object> - </object> - </object> - </object> - </object> - </object> + <property name="moveable">1</property> + <property name="name">m_enableGit</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="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="OnCheckBox">onEnableGitClick</event> + </object> </object> + <object class="sizeritem" expanded="true"> + <property name="border">0</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">0</property> + <object class="wxBoxSizer" expanded="true"> + <property name="minimum_size"></property> + <property name="name">m_gitSizer</property> + <property name="orient">wxVERTICAL</property> + <property name="permission">protected</property> + <object class="sizeritem" expanded="true"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">0</property> + <object class="wxBoxSizer" expanded="true"> + <property name="minimum_size"></property> + <property name="name">bSizerUpdate</property> + <property name="orient">wxVERTICAL</property> + <property name="permission">none</property> + <object class="sizeritem" expanded="false"> + <property name="border">13</property> + <property name="flag">wxEXPAND|wxLEFT|wxRIGHT|wxTOP</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">Remote Tracking</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">m_staticText6</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="false"> + <property name="border">5</property> + <property name="flag">wxEXPAND | wxALL</property> + <property name="proportion">0</property> + <object class="wxStaticLine" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">m_staticline2</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">wxLI_HORIZONTAL</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> + </object> + </object> + <object class="sizeritem" expanded="true"> + <property name="border">13</property> + <property name="flag">wxEXPAND|wxLEFT</property> + <property name="proportion">0</property> + <object class="wxGridBagSizer" expanded="false"> + <property name="empty_cell_size">-1,2</property> + <property name="flexible_direction">wxBOTH</property> + <property name="growablecols">2</property> + <property name="growablerows"></property> + <property name="hgap">5</property> + <property name="minimum_size"></property> + <property name="name">gbUpdate</property> + <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property> + <property name="permission">none</property> + <property name="vgap">4</property> + <object class="gbsizeritem" expanded="false"> + <property name="border">5</property> + <property name="colspan">1</property> + <property name="column">0</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT</property> + <property name="row">0</property> + <property name="rowspan">1</property> + <object class="wxStaticText" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">Update interval:</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">m_updateLabel</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="gbsizeritem" expanded="false"> + <property name="border">5</property> + <property name="colspan">1</property> + <property name="column">1</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND</property> + <property name="row">0</property> + <property name="rowspan">1</property> + <object class="wxSpinCtrl" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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="initial">5</property> + <property name="max">60</property> + <property name="max_size"></property> + <property name="maximize_button">0</property> + <property name="maximum_size"></property> + <property name="min">0</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">m_updateInterval</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">wxSP_ARROW_KEYS</property> + <property name="subclass">; ; forward_declare</property> + <property name="toolbar_pane">0</property> + <property name="tooltip">Number of minutes between remote update checks. Zero disables automatic checks.</property> + <property name="value"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + </object> + </object> + <object class="gbsizeritem" expanded="false"> + <property name="border">5</property> + <property name="colspan">1</property> + <property name="column">2</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT</property> + <property name="row">0</property> + <property name="rowspan">1</property> + <object class="wxStaticText" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">minutes</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">m_staticText7</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> + </object> + </object> + </object> + <object class="sizeritem" expanded="true"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">1</property> + <object class="wxBoxSizer" expanded="true"> + <property name="minimum_size"></property> + <property name="name">bSizerCommitData</property> + <property name="orient">wxVERTICAL</property> + <property name="permission">none</property> + <object class="sizeritem" expanded="false"> + <property name="border">13</property> + <property name="flag">wxEXPAND|wxLEFT|wxTOP</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">Git Commit Data</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">m_staticText12</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="false"> + <property name="border">5</property> + <property name="flag">wxEXPAND | wxALL</property> + <property name="proportion">0</property> + <object class="wxStaticLine" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">m_staticline31</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">wxLI_HORIZONTAL</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> + </object> + </object> + <object class="sizeritem" expanded="false"> + <property name="border">8</property> + <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT</property> + <property name="proportion">0</property> + <object class="wxFlexGridSizer" expanded="false"> + <property name="cols">2</property> + <property name="flexible_direction">wxBOTH</property> + <property name="growablecols">1</property> + <property name="growablerows"></property> + <property name="hgap">0</property> + <property name="minimum_size"></property> + <property name="name">fgSizer1</property> + <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property> + <property name="permission">none</property> + <property name="rows">0</property> + <property name="vgap">0</property> + <object class="sizeritem" expanded="false"> + <property name="border">5</property> + <property name="flag">wxALL</property> + <property name="proportion">0</property> + <object class="wxCheckBox" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="checked">1</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="drag_accept_files">0</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">Use default values</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">m_cbDefault</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="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="OnCheckBox">onDefaultClick</event> + </object> + </object> + <object class="sizeritem" expanded="false"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">0</property> + <object class="spacer" expanded="false"> + <property name="height">0</property> + <property name="permission">protected</property> + <property name="width">0</property> + </object> + </object> + <object class="sizeritem" expanded="false"> + <property name="border">5</property> + <property name="flag">wxALL</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</property> + <property name="enabled">0</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">Author name:</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">m_authorLabel</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="false"> + <property name="border">5</property> + <property name="flag">wxALL|wxEXPAND</property> + <property name="proportion">0</property> + <object class="wxTextCtrl" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</property> + <property name="enabled">0</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="maxlength">0</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">m_author</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="validator_data_type"></property> + <property name="validator_style">wxFILTER_NONE</property> + <property name="validator_type">wxDefaultValidator</property> + <property name="validator_variable"></property> + <property name="value"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + </object> + </object> + <object class="sizeritem" expanded="false"> + <property name="border">5</property> + <property name="flag">wxALL</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</property> + <property name="enabled">0</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">Author e-mail:</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">m_authorEmailLabel</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="false"> + <property name="border">5</property> + <property name="flag">wxALL|wxEXPAND</property> + <property name="proportion">0</property> + <object class="wxTextCtrl" expanded="false"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</property> + <property name="enabled">0</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="maxlength">0</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">m_authorEmail</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="validator_data_type"></property> + <property name="validator_style">wxFILTER_NONE</property> + <property name="validator_type">wxDefaultValidator</property> + <property name="validator_variable"></property> + <property name="value"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + </object> + </object> + </object> + </object> + </object> + </object> + </object> + </object> + </object> </object> + </object> </object> + </object> </wxFormBuilder_Project> diff --git a/common/eda_base_frame.cpp b/common/eda_base_frame.cpp index 5299c3ed2d..bd5d48c12d 100644 --- a/common/eda_base_frame.cpp +++ b/common/eda_base_frame.cpp @@ -1253,16 +1253,11 @@ void EDA_BASE_FRAME::ShowPreferences( wxString aStartPage, wxString aStartParent book->AddPage( hotkeysPanel, _( "Hotkeys" ) ); - // This currently allows pre-defined repositories that we - // don't use, so keep it disabled at the moment - if( ADVANCED_CFG::GetCfg().m_EnableGit && false ) - { - book->AddLazyPage( - []( wxWindow* aParent ) -> wxWindow* - { - return new PANEL_GIT_REPOS( aParent ); - }, _( "Version Control" ) ); - } + book->AddLazyPage( + []( wxWindow* aParent ) -> wxWindow* + { + return new PANEL_GIT_REPOS( aParent ); + }, _( "Version Control" ) ); #ifdef KICAD_USE_SENTRY book->AddLazyPage( diff --git a/common/settings/common_settings.cpp b/common/settings/common_settings.cpp index 29d73aef35..76697ec989 100644 --- a/common/settings/common_settings.cpp +++ b/common/settings/common_settings.cpp @@ -419,6 +419,12 @@ COMMON_SETTINGS::COMMON_SETTINGS() : m_params.emplace_back( new PARAM<bool>( "git.useDefaultAuthor", &m_Git.useDefaultAuthor, true ) ); + m_params.emplace_back( new PARAM<bool>( "git.enableGit", + &m_Git.enableGit, true ) ); + + m_params.emplace_back( new PARAM<int>( "git.updatInterval", + &m_Git.updatInterval, 5 ) ); + m_params.emplace_back( new PARAM<wxString>( "api.interpreter_path", &m_Api.python_interpreter, wxS( "" ) ) ); diff --git a/include/advanced_config.h b/include/advanced_config.h index 3e0f55d6a4..42b8386db6 100644 --- a/include/advanced_config.h +++ b/include/advanced_config.h @@ -488,15 +488,6 @@ public: */ bool m_EnableGenerators; - /** - * Enable git integration. - * - * Setting name: "EnableGit" - * Valid values: 0 or 1 - * Default value: 0 - */ - bool m_EnableGit; - /** * Enable option to load lib files with text editor. * @@ -748,15 +739,6 @@ public: */ int m_GitIconRefreshInterval; - /** - * The interval in milliseconds to refresh the project status by performing - * a git fetch on the remote project. Set to 0 to disable. - * - * Setting name: "GitProjectStatusRefreshInterval" - * Default value: 60000 - */ - int m_GitProjectStatusRefreshInterval; - /** * Enable the UI to configure toolbars. * diff --git a/include/settings/common_settings.h b/include/settings/common_settings.h index 0c0f30ebce..4c881e56a7 100644 --- a/include/settings/common_settings.h +++ b/include/settings/common_settings.h @@ -166,6 +166,8 @@ public: struct GIT { std::vector<GIT_REPOSITORY> repositories; + bool enableGit; + int updatInterval; bool useDefaultAuthor; wxString authorName; wxString authorEmail; diff --git a/kicad/kicad_manager_frame.cpp b/kicad/kicad_manager_frame.cpp index be3661825b..4fcc142e30 100644 --- a/kicad/kicad_manager_frame.cpp +++ b/kicad/kicad_manager_frame.cpp @@ -1014,6 +1014,8 @@ void KICAD_MANAGER_FRAME::CommonSettingsChanged( int aFlags ) onToolbarSizeChanged(); m_lastToolbarIconSize = settings->m_Appearance.toolbar_icon_size; } + + m_leftWin->ReCreateTreePrj(); } diff --git a/kicad/menubar.cpp b/kicad/menubar.cpp index 69df89106b..4b9f953e29 100644 --- a/kicad/menubar.cpp +++ b/kicad/menubar.cpp @@ -76,7 +76,7 @@ void KICAD_MANAGER_FRAME::doReCreateMenuBar() fileMenu->Add( KICAD_MANAGER_ACTIONS::newProject ); fileMenu->Add( KICAD_MANAGER_ACTIONS::newFromTemplate ); - if( ADVANCED_CFG::GetCfg().m_EnableGit ) + if( Pgm().GetCommonSettings()->m_Git.enableGit ) { fileMenu->Add( KICAD_MANAGER_ACTIONS::newFromRepository ); } diff --git a/kicad/project_tree_pane.cpp b/kicad/project_tree_pane.cpp index b73af2fa16..40403a7618 100644 --- a/kicad/project_tree_pane.cpp +++ b/kicad/project_tree_pane.cpp @@ -660,7 +660,7 @@ void PROJECT_TREE_PANE::ReCreateTreePrj() bool prjOpened = fn.FileExists(); // Bind the git repository to the project tree (if it exists) - if( ADVANCED_CFG::GetCfg().m_EnableGit ) + if( Pgm().GetCommonSettings()->m_Git.enableGit ) { m_TreeProject->SetGitRepo( get_git_repository_for_file( fn.GetPath().c_str() ) ); @@ -801,7 +801,7 @@ void PROJECT_TREE_PANE::onRight( wxTreeEvent& Event ) bool vcs_can_push = vcs_can_fetch && git->HasLocalCommits(); bool vcs_can_pull = vcs_can_fetch; bool vcs_can_switch = vcs_has_repo; - bool vcs_menu = ADVANCED_CFG::GetCfg().m_EnableGit; + bool vcs_menu = Pgm().GetCommonSettings()->m_Git.enableGit; // Check if the libgit2 library has been successfully initialized #if ( LIBGIT2_VER_MAJOR >= 1 ) || ( LIBGIT2_VER_MINOR >= 99 ) @@ -1975,7 +1975,7 @@ void PROJECT_TREE_PANE::updateGitStatusIcons() return; } - if( ADVANCED_CFG::GetCfg().m_EnableGit == false || !m_TreeProject ) + if( !Pgm().GetCommonSettings()->m_Git.enableGit || !m_TreeProject ) { wxLogTrace( traceGit, wxS( "updateGitStatusIcons: Git is disabled or tree control is null" ) ); return; @@ -2068,7 +2068,7 @@ void PROJECT_TREE_PANE::updateGitStatusIconMap() #endif - if( ADVANCED_CFG::GetCfg().m_EnableGit == false || !m_TreeProject ) + if( !Pgm().GetCommonSettings()->m_Git.enableGit || !m_TreeProject ) return; std::unique_lock<std::mutex> lock1( m_gitStatusMutex, std::try_to_lock ); @@ -2662,7 +2662,9 @@ void PROJECT_TREE_PANE::onRunSelectedJobsFile(wxCommandEvent& event) void PROJECT_TREE_PANE::onGitSyncTimer( wxTimerEvent& aEvent ) { wxLogTrace( traceGit, "onGitSyncTimer" ); - if( ADVANCED_CFG::GetCfg().m_EnableGit == false || !m_TreeProject ) + COMMON_SETTINGS::GIT& gitSettings = Pgm().GetCommonSettings()->m_Git; + + if( !gitSettings.enableGit || !m_TreeProject ) return; thread_pool& tp = GetKiCadThreadPool(); @@ -2686,11 +2688,11 @@ void PROJECT_TREE_PANE::onGitSyncTimer( wxTimerEvent& aEvent ) } ); } ); - if( ADVANCED_CFG::GetCfg().m_GitProjectStatusRefreshInterval > 0 ) + if( gitSettings.updatInterval > 0 ) { wxLogTrace( traceGit, "onGitSyncTimer: Restarting git sync timer" ); - m_gitSyncTimer.Start( ADVANCED_CFG::GetCfg().m_GitProjectStatusRefreshInterval, - wxTIMER_ONE_SHOT ); + // We store the timer interval in minutes but wxTimer uses milliseconds + m_gitSyncTimer.Start( gitSettings.updatInterval * 60 * 1000, wxTIMER_ONE_SHOT ); } } @@ -2710,7 +2712,7 @@ void PROJECT_TREE_PANE::gitStatusTimerHandler() void PROJECT_TREE_PANE::onGitStatusTimer( wxTimerEvent& aEvent ) { wxLogTrace( traceGit, "onGitStatusTimer" ); - if( ADVANCED_CFG::GetCfg().m_EnableGit == false || !m_TreeProject ) + if( !Pgm().GetCommonSettings()->m_Git.enableGit || !m_TreeProject ) return; gitStatusTimerHandler();