KiCad PCB EDA Suite
Loading...
Searching...
No Matches
panel_git_branches.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef PANEL_GIT_BRANCHES_H
21#define PANEL_GIT_BRANCHES_H
22
23#include <vector>
24
27
28class EDA_BASE_FRAME;
31
32
38{
39public:
40 PANEL_GIT_BRANCHES( wxWindow* aParent, GIT_ADVANCED_DIALOG* aDialog, EDA_BASE_FRAME* aFrame );
41 ~PANEL_GIT_BRANCHES() override;
42
44 void Populate();
45
47 void StopTransfer();
48
49private:
51 void reloadBranches();
52
54 void showBranchDetail( const wxString& aBranch );
55 void fillBranchDetail( const KIGIT_BRANCH_DETAIL& aDetail );
56 void hideBranchDetail();
57
58 void onNewBranch();
59 void onDeleteBranch();
60
62 void onForcePush();
63 void startForcePush( std::shared_ptr<KIGIT_COMMON> aCommon, const wxString& aExpectedBranch,
64 const wxString& aExpectedHeadOid );
65
68
71 std::vector<bool> m_branchIsRemote;
72
75
79
82
85
87 bool m_fillingBranches = false;
88};
89
90#endif // PANEL_GIT_BRANCHES_H
The base frame for deriving all KiCad main window classes.
The advanced Git window: a non-modal dialog with a top bar naming the repository and branch and a sid...
Read repository state without blocking the UI.
PANEL_GIT_BRANCHES_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
void StopTransfer()
Ask a force push still running to stop. It finishes on its own.
PANEL_GIT_BRANCHES(wxWindow *aParent, GIT_ADVANCED_DIALOG *aDialog, EDA_BASE_FRAME *aFrame)
void fillBranchDetail(const KIGIT_BRANCH_DETAIL &aDetail)
int m_branchSashPos
Where the user left the sash between the list and its detail pane.
KIGIT_QUERY m_listQuery
List and detail reads share the session lock without waiting on the UI thread.
void showBranchDetail(const wxString &aBranch)
Fill the detail pane with aBranch, or hide it when the name is empty or gone.
GIT_ADVANCED_DIALOG * m_dialog
void reloadBranches()
Refill the list after the search text changed.
void onForcePush()
Force push the current branch, after an explicit confirmation.
void Populate()
Fill the list from the repository's branches. The repository is read on a worker.
EDA_BASE_FRAME * m_frame
std::vector< bool > m_branchIsRemote
Whether each listed row is a remote-tracking branch.
void startForcePush(std::shared_ptr< KIGIT_COMMON > aCommon, const wxString &aExpectedBranch, const wxString &aExpectedHeadOid)
KIGIT_TRANSFER m_push
The force push this page started.
KIGIT_QUERY m_actionQuery
Reads needed before an action's confirmation, separate from list refreshes.
bool m_fillingBranches
True while the list is being refilled, when its selection events are its own.