13 #include <QMainWindow>
22 class QListWidgetItem;
23 class QTableWidgetItem;
24 class QTreeWidgetItem;
54 : data(s.data(), s.size())
72 class AbstractGitCommand;
79 std::shared_ptr<ProcessStatus>
status;
102 IndexRole = Qt::UserRole,
161 operator bool ()
const
171 void postEvent(QObject *receiver, QEvent *event,
int ms_later);
173 void cancelPendingUserEvents();
175 void updateFileList(
const GitHash &
id);
177 void updateFileListLater(
int delay_ms);
178 void cancelUpdateFileList();
179 void initUpdateFileListTimer();
182 bool new_session =
true;
184 bool validate =
false;
185 bool wait_cursor =
true;
186 bool keep_selection =
false;
188 bool clear_log =
true;
189 bool do_fetch =
true;
191 bool suppress_uncommit_changes =
false;
196 void openSelectedRepository();
200 QStringList selectedFiles_(QListWidget *listwidget)
const;
201 QStringList selectedFiles()
const;
202 void for_each_selected_files(std::function<
void (QString
const &)>
const &fn);
203 void clearFileList();
204 void clearDiffView();
209 void buildRepoTree(QString
const &group, QTreeWidgetItem *item, QList<RepositoryInfo> *repos);
210 void refrectRepositories();
212 void updateDiffView(QListWidgetItem *item);
213 void updateDiffView();
214 void updateUnstagedFileCurrentItem();
215 void updateStagedFileCurrentItem();
216 void updateStatusBarText();
217 void setRepositoryInfo(QString
const &reponame, QString
const &brname);
219 QString getIncrementalSearchText()
const;
220 void setFilterText(
const QString &text,
int repo_list_select_row = -1);
221 void clearFilterText(
int repo_list_select_row = -1);
222 void clearAllFilters(
int select_row = -1);
224 void _appendCharToFilterText(ushort c);
234 void setRemoteOnline(
bool f,
bool save);
236 void setNetworkingCommandsEnabled(
bool enabled);
237 void blame(QListWidgetItem *item);
239 QListWidgetItem *currentFileItem()
const;
240 void execAreYouSureYouWantToContinueConnectingDialog(
const QString &windowtitle);
242 QStringList remoteBranches(
const GitHash &
id, QStringList *all);
243 bool isUninitialized();
244 void onLogCurrentItemChanged(
bool update_file_list);
246 void findText(
const QString &text);
247 bool locateCommitID(QString
const &commit_id);
250 void showLogWindow(
bool show);
251 bool isValidRemoteURL(
const QString &url,
const QString &sshkey);
252 QStringList whichCommand_(
const QString &cmdfile1,
const QString &cmdfile2 = {});
253 QString selectCommand_(
const QString &cmdname,
const QStringList &cmdfiles,
const QStringList &list, QString path,
const std::function<
void (
const QString &)> &callback);
254 QString selectCommand_(
const QString &cmdname,
const QString &cmdfile,
const QStringList &list,
const QString &path,
const std::function<
void (
const QString &)> &callback);
255 const RepositoryInfo *findRegisteredRepository(QString *workdir)
const;
256 bool execSetGlobalUserDialog();
257 void revertAllFiles();
258 bool execWelcomeWizardDialog();
259 void execRepositoryPropertyDialog(
const RepositoryInfo &repo,
bool open_repository_menu =
false);
260 void execConfigUserDialog(
const GitUser &global_user,
const GitUser &local_user,
bool enable_local_user,
const QString &reponame);
261 void setGitCommand(
const QString &path,
bool save);
262 void setGpgCommand(
const QString &path,
bool save);
263 void setSshCommand(
const QString &path,
bool save);
264 bool checkGitCommand();
265 bool saveByteArrayAs(
const QByteArray &ba,
const QString &dstpath);
266 QString executableOrEmpty(
const QString &path);
267 bool checkExecutable(
const QString &path);
268 void internalSaveCommandPath(
const QString &path,
bool save,
const QString &name);
269 void logGitVersion();
270 void internalClearRepositoryInfo();
273 void setCurrentRepository(
const RepositoryInfo &repo,
bool clear_authentication);
274 std::optional<QList<GitDiff>> makeDiffs(
GitRunner g,
GitHash id, std::future<QList<GitSubmoduleItem>> &&async_modules);
276 void updateRemoteInfo();
278 void submodule_add(QString url = {},
const QString &local_dir = {});
280 void commit(
bool amend =
false);
285 void push(
bool set_upstream,
const QString &remote,
const QString &branch,
bool force);
287 void stage(
GitRunner g,
const QStringList &paths);
291 void delete_tags(
GitRunner g,
const QStringList &tagnames);
297 void deleteSelectedBranch();
298 void resetFile(
const QStringList &paths);
299 void clearAuthentication();
300 void clearSshAuthentication();
301 void internalDeleteTags(
const QStringList &tagnames);
302 void internalAddTag(
const QString &name);
303 void createRepository(
const QString &dir);
304 void addRepository(
const QString &local_dir,
const QString &group = {});
306 void scanFolderAndRegister(
const QString &group);
307 void doGitCommand(
const std::function<
void (
GitRunner)> &callback);
308 void setWindowTitle_(
const GitUser &user);
309 void setUnknownRepositoryInfo();
310 void setCurrentRemoteName(
const QString &name);
312 QStringList remotes()
const;
314 QString tempfileHeader()
const;
315 void deleteTempFiles();
316 QString newTempFilePath();
317 int limitLogCount()
const;
318 bool isThereUncommitedChanges()
const;
320 const std::map<GitHash, BranchList> &branchmap()
const;
322 void updateWindowTitle(
const GitUser &user);
325 std::tuple<QString, BranchLabelList> makeCommitLabels(
GitCommitItem const &commit, std::map<GitHash, BranchList>
const &branch_map, std::map<GitHash, TagList>
const &tag_map)
const;
328 void removeRepositoryFromBookmark(RepositoryTreeIndex
const &index,
bool ask);
331 bool askAreYouSureYouWantToRun(
const QString &title,
const QString &command);
332 bool editFile(
const QString &path,
const QString &title);
335 void saveApplicationSettings();
337 void setDiffResult(
const QList<GitDiff> &diffs);
338 const QList<GitSubmoduleItem> &submodules()
const;
339 void setSubmodules(
const QList<GitSubmoduleItem> &submodules);
340 bool runOnRepositoryDir(
const std::function<
void (QString, QString)> &callback,
const RepositoryInfo *repo);
343 const std::map<GitHash, TagList> &tagmap()
const;
344 std::map<GitHash, TagList> queryTags(
GitRunner g);
347 void sshSetPassphrase(
const std::string &user,
const std::string &pass);
348 std::string sshPassphraseUser()
const;
349 std::string sshPassphrasePass()
const;
350 void httpSetAuthentication(
const std::string &user,
const std::string &pass);
351 std::string httpAuthenticationUser()
const;
352 std::string httpAuthenticationPass()
const;
355 bool saveRepositoryBookmarks();
356 QString getBookmarksFilePath()
const;
357 void stopPtyProcess();
358 void abortPtyProcess();
361 bool getPtyProcessOk()
const;
362 bool isPtyProcessRunning()
const;
363 void setCompletedHandler(std::function<
void (
bool,
const QVariant &)> fn,
const QVariant &userdata);
364 void setPtyProcessOk(
bool pty_process_ok);
366 const QList<RepositoryInfo> &repositoryList()
const;
367 void setRepositoryList(QList<RepositoryInfo> &&list);
369 bool interactionEnabled()
const;
370 void setInteractionEnabled(
bool enabled);
371 InteractionMode interactionMode()
const;
372 void setInteractionMode(
const InteractionMode &im);
373 void setUncommitedChanges(
bool uncommited_changes);
374 QList<GitDiff>
const *diffResult()
const;
376 void clearLabelMap();
381 void setHeadId(
const GitHash &head_id);
382 void setPtyProcessCompletionData(
const QVariant &value);
383 const QVariant &getTempRepoForCloneCompleteV()
const;
384 void msgNoRepositorySelected();
385 bool isRepositoryOpened()
const;
386 void initRepository(
const QString &path,
const QString &reponame,
const GitRemote &remote);
387 void updatePocessLog(
bool processevents);
388 void appendLogHistory(
const QByteArray &str);
389 std::vector<std::string> getLogHistoryLines();
390 void clearLogHistory();
391 void updateAvatar(
const GitUser &user,
bool request);
392 void cleanSubModule(
GitRunner g, QListWidgetItem *item);
394 void updateUncommitedChanges(
GitRunner g);
396 QString preferredRepositoryGroup()
const;
397 void setPreferredRepositoryGroup(
const QString &group);
398 bool _addExistingLocalRepository(QString dir, QString name, QString sshkey,
bool open,
bool save =
true,
bool msgbox_if_err =
true);
399 void addExistingLocalRepositoryWithGroup(
const QString &dir,
const QString &group);
400 bool addExistingLocalRepository(
const QString &dir,
bool open);
403 int rowFromCommitId(
const GitHash &
id);
405 void _updateCommitLogTableView(
int delay_ms);
413 void jump(
GitRunner g,
const QString &text);
414 void connectPtyProcessCompleted();
415 void setupShowFileListHandler();
417 void setRetry(std::function<
void (
const QVariant &)> fn,
const QVariant &
var);
420 bool isRetryQueued()
const;
422 void clearGitCommandCache();
423 void clearGitObjectCache();
431 void setupAddFileObjectData();
433 void setupStatusInfoHandler();
434 void connectSetCommitLog();
436 void _chooseRepository(QTreeWidgetItem *item);
437 void chooseRepository();
440 std::optional<GitCommitItem> getCommitItem(
GitRunner g,
const GitHash &hash)
const;
442 void closeEvent(QCloseEvent *event)
override;
443 void dragEnterEvent(QDragEnterEvent *event)
override;
444 void keyPressEvent(QKeyEvent *event)
override;
445 bool event(QEvent *event)
override;
446 bool eventFilter(QObject *watched, QEvent *event)
override;
447 std::optional<RepositoryInfo> selectedRepositoryItem()
const;
448 void removeSelectedRepositoryFromBookmark(
bool ask);
455 void onLogVisibilityChanged();
456 void onRepositoriesTreeDropped();
457 void onInterval10ms();
458 void onAvatarReady();
459 void onCommitDetailGetterReady();
462 void onCommitLogCurrentRowChanged(
int row);
464 void on_action_about_triggered();
465 void on_action_add_repository_triggered();
466 void on_action_clean_df_triggered();
467 void on_action_commit_triggered();
468 void on_action_create_desktop_launcher_file_triggered();
469 void on_action_delete_branch_triggered();
470 void on_action_delete_remote_branch_triggered();
471 void on_action_edit_git_config_triggered();
472 void on_action_edit_gitignore_triggered();
473 void on_action_edit_global_gitconfig_triggered();
474 void on_action_edit_settings_triggered();
475 void on_action_edit_tags_triggered();
476 void on_action_exit_triggered();
477 void on_action_expand_commit_log_triggered();
478 void on_action_expand_diff_view_triggered();
479 void on_action_expand_file_list_triggered();
480 void on_action_explorer_triggered();
481 void on_action_fetch_prune_triggered();
482 void on_action_fetch_triggered();
483 void on_action_find_next_triggered();
484 void on_action_find_triggered();
485 void on_action_offline_triggered();
486 void on_action_online_triggered();
487 void on_action_pull_triggered();
488 void on_action_push_all_tags_triggered();
489 void on_action_push_triggered();
490 void on_action_reflog_triggered();
491 void on_action_repo_checkout_triggered();
492 void on_action_repo_jump_to_head_triggered();
493 void on_action_repo_jump_triggered();
494 void on_action_repo_merge_triggered();
495 void on_action_repositories_panel_triggered();
496 void on_action_repository_property_triggered();
497 void on_action_repository_status_triggered();
498 void on_action_reset_HEAD_1_triggered();
499 void on_action_reset_hard_triggered();
500 void on_action_configure_user_triggered();
501 void on_action_set_gpg_signing_triggered();
502 void on_action_show_labels_triggered();
503 void on_action_show_graph_triggered();
504 void on_action_show_avatars_triggered();
505 void on_action_sidebar_triggered();
506 void on_action_stash_apply_triggered();
507 void on_action_stash_drop_triggered();
508 void on_action_stash_triggered();
509 void on_action_stop_process_triggered();
510 void on_action_submodule_add_triggered();
511 void on_action_submodule_update_triggered();
512 void on_action_submodules_triggered();
513 void on_action_terminal_triggered();
514 void on_action_view_refresh_triggered();
515 void on_action_window_log_triggered(
bool checked);
516 void on_listWidget_files_currentRowChanged(
int currentRow);
517 void on_listWidget_files_customContextMenuRequested(
const QPoint &pos);
518 void on_listWidget_files_itemDoubleClicked(QListWidgetItem *item);
519 void on_listWidget_staged_currentRowChanged(
int currentRow);
520 void on_listWidget_staged_customContextMenuRequested(
const QPoint &pos);
521 void on_listWidget_staged_itemDoubleClicked(QListWidgetItem *item);
522 void on_listWidget_unstaged_currentRowChanged(
int currentRow);
523 void on_listWidget_unstaged_customContextMenuRequested(
const QPoint &pos);
524 void on_listWidget_unstaged_itemDoubleClicked(QListWidgetItem *item);
525 void on_radioButton_remote_offline_clicked();
526 void on_radioButton_remote_online_clicked();
527 void on_tableWidget_log_customContextMenuRequested(
const QPoint &pos);
528 void on_tableWidget_log_doubleClicked(
const QModelIndex &index);
529 void on_toolButton_commit_clicked();
530 void on_toolButton_explorer_clicked();
531 void on_toolButton_fetch_clicked();
532 void on_toolButton_pull_clicked();
533 void on_toolButton_push_clicked();
534 void on_toolButton_select_all_clicked();
535 void on_toolButton_stage_clicked();
536 void on_toolButton_status_clicked();
537 void on_toolButton_stop_process_clicked();
538 void on_toolButton_terminal_clicked();
539 void on_toolButton_unstage_clicked();
540 void on_treeWidget_repos_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
541 void on_treeWidget_repos_customContextMenuRequested(
const QPoint &pos);
542 void on_treeWidget_repos_itemDoubleClicked(QTreeWidgetItem *item,
int column);
543 void on_toolButton_addrepo_clicked();
546 void toggleMaximized();
548 void onRemoteInfoChanged();
549 void onShowStatusInfo(
StatusInfo const &info);
550 void on_action_rebase_abort_triggered();
555 void on_action_view_sort_by_time_changed();
557 void on_action_ssh_triggered();
559 void on_action_restart_trace_logger_triggered();
576 explicit MainWindow(QWidget *parent =
nullptr);
579 QColor color(
unsigned int i);
580 bool isOnlineMode()
const;
581 void updateCurrentFileList();
585 const TagList &queryCurrentCommitTagList()
const;
587 static int indexOfLog(QListWidgetItem *item);
588 static int indexOfDiff(QListWidgetItem *item);
589 static QList<GitSubmoduleItem> updateSubmodules(
GitRunner g,
const GitHash &
id);
591 static TagList findTag(std::map<GitHash, TagList>
const &tagmap,
GitHash const &
id);
592 static QString makeRepositoryName(
const QString &loc);
593 static void addDiffItems(
const QList<GitDiff> *diff_list,
const std::function<
void (
const ObjectData &)> &add_item);
594 static GitHash getObjectID(QListWidgetItem *item);
595 static QString getFilePath(QListWidgetItem *item);
596 static QString getSubmodulePath(QListWidgetItem *item);
597 static QString getSubmoduleCommitId(QListWidgetItem *item);
600 static std::string parseDetectedDubiousOwnershipInRepositoryAt(
const std::vector<std::string> &lines);
603 static bool isValidWorkingCopy(
GitRunner g);
604 bool isValidWorkingCopy(QString
const &local_dir);
607 void drawDigit(QPainter *pr,
int x,
int y,
int n)
const;
608 static constexpr
int DIGIT_WIDTH = 5;
609 static constexpr
int DIGIT_HEIGHT = 7;
611 void clearStatusInfo();
612 bool setCurrentLogRow(
int row);
614 void deleteTags(QStringList
const &tagnames);
615 void addTag(QString
const &name);
616 int selectedLogIndex()
const;
617 void updateAncestorCommitMap();
618 bool isAncestorCommit(
GitHash const &
id)
const;
619 void postStartEvent(
int ms_later);
620 void setShowLabels(
bool show,
bool save);
621 void setShowGraph(
bool show,
bool save);
622 void setShowAvatars(
bool show,
bool save);
623 bool isLabelsVisible()
const;
624 bool isGraphVisible()
const;
625 bool isAvatarsVisible()
const;
626 bool isAvatarEnabled()
const;
627 void makeDiffList(
const GitHash &
id, QList<GitDiff> *diff_list, QListWidget *listwidget);
629 void execCommitPropertyDialog(QWidget *parent,
const GitCommitItem &commit);
630 void execCommitExploreWindow(QWidget *parent,
const GitCommitItem *commit);
631 void execFileHistory(
const QString &path);
632 void execFileHistory(QListWidgetItem *item);
633 void showObjectProperty(QListWidgetItem *item);
634 bool testRemoteRepositoryValidity(
const QString &url,
const QString &sshkey);
635 QString selectGitCommand(
bool save);
636 QString selectGpgCommand(
bool save);
637 QString selectSshCommand(
bool save);
639 void setCurrentBranch(
const GitBranch &b);
641 QString currentRepositoryName()
const;
642 QString currentRemoteName()
const;
643 QString currentBranchName()
const;
644 GitRunner _git(
const QString &dir,
const QString &submodpath,
const QString &sshkey)
const;
645 GitRunner unassosiated_git_runner()
const;
646 GitRunner new_git_runner(
const QString &dir,
const QString &sshkey);
650 bool isValidWorkingCopy(QString
const &dir)
const;
651 void autoOpenRepository(QString dir,
const QString &commit_id = {});
652 std::optional<GitCommitItem> queryCommit(
const GitHash &
id);
653 bool checkoutLocalBranch(QString
const &name);
654 void checkout(QWidget *parent,
const GitCommitItem &commit, std::function<
void ()> accepted_callback = {});
656 bool jumpToCommit(
const GitHash &
id);
657 bool jumpToCommit(
const QString &
id);
660 void emitWriteLog(
LogData const &logdata);
661 QString findFileID(
const GitHash &commit_id,
const QString &file);
664 QImage committerIcon(
int row, QSize size)
const;
665 void changeSshKey(
const QString &local_dir,
const QString &ssh_key,
bool save);
668 QString defaultWorkingDir()
const;
669 QIcon signatureVerificationIcon(
const GitHash &
id)
const;
670 QAction *addMenuActionProperty(QMenu *menu);
671 QString currentWorkingCopyDir()
const;
675 GitUser currentGitUser()
const;
676 void setupExternalPrograms();
677 void updateCommitLogTableViewLater();
679 void changeRepositoryBookmarkName(
RepositoryInfo item, QString new_name);
681 void setProgress(
float progress);
682 void showProgress(
const QString &text,
float progress = -1.0f);
684 void internalAfterFetch();
685 void onRepositoryTreeSortRecent(
bool f);
688 void clearLogContents();
689 void updateLogTableView();
690 void setFocusToLogTable();
691 void selectLogTableRow(
int row);
695 bool saveFileAs(
const QString &srcpath,
const QString &dstpath);
696 bool saveBlobAs(
const QString &
id,
const QString &dstpath);
698 void internalWriteLog(
const LogData &logdata);
GitMergeFastForward
Definition: GitTypes.h:360
QList< NamedCommitItem > NamedCommitList
Definition: Git.h:256
QList< BranchLabel > BranchLabelList
Definition: RepositoryModel.h:9
QList< GitBranch > BranchList
Definition: RepositoryModel.h:8
QList< GitTag > TagList
Definition: RepositoryModel.h:7
std::shared_ptr< TextEditorTheme > TextEditorThemePtr
Definition: TextEditorTheme.h:9
Definition: AboutDialog.h:10
Definition: AddRepositoryDialog.h:14
Definition: ApplicationSettings.h:23
ログテーブルウィジェットのブランチ名ラベル
Definition: BranchLabel.h:11
Definition: FileHistoryWindow.h:14
std::variant< Git_clone, Git_fetch, Git_stage, Git_push, Git_pull, Git_push_tags, Git_delete_tag, Git_delete_tags, Git_add_tag, Git_submodule_add > variant_t
Definition: GitCommandRunner.h:133
Definition: GitTypes.h:142
Definition: GitTypes.h:31
Definition: GitObjectManager.h:37
Definition: GitRunner.h:14
Definition: MainWindow.h:65
std::vector< std::string > lines
Definition: MainWindow.h:69
size_t pos
Definition: MainWindow.h:68
size_t len
Definition: MainWindow.h:68
int hunk_number
Definition: MainWindow.h:67
Definition: MainWindow.h:701
MainWindow::FileListType files_list_type
Definition: MainWindow.h:703
std::vector< MainWindow::ObjectData > object_data
Definition: MainWindow.h:704
Definition: MainWindow.h:157
QByteArray content
Definition: MainWindow.h:160
bool is(GitObject::Type t) const
Definition: MainWindow.h:165
Definition: MainWindow.h:90
@ FilePathRole
Definition: MainWindow.h:103
@ DiffIndexRole
Definition: MainWindow.h:104
@ HeaderRole
Definition: MainWindow.h:106
@ ObjectIdRole
Definition: MainWindow.h:105
@ SubmoduleCommitIdRole
Definition: MainWindow.h:108
@ SubmodulePathRole
Definition: MainWindow.h:107
void signalShowStatusInfo(StatusInfo const &info)
void signalSetProgress(float progress)
void setForceFetch(bool force_fetch)
Ui::MainWindow * ui
Definition: MainWindow.h:143
static std::pair< QString, QString > makeFileItemText(const ObjectData &data)
Private * m
Definition: MainWindow.h:145
InteractionMode
Definition: MainWindow.h:115
@ None
Definition: MainWindow.h:116
@ Busy
Definition: MainWindow.h:117
void signalHideProgress()
NamedCommitFlag
Definition: MainWindow.h:120
void sigPtyFetchCompleted(bool ok, QVariant const &userdata)
QString currentFileMimeFileType() const
void sigPtyCloneCompleted(bool ok, QVariant const &userdata)
FileListType
Definition: MainWindow.h:126
CloneOperation
Definition: MainWindow.h:110
@ SubmoduleAdd
Definition: MainWindow.h:112
@ Clone
Definition: MainWindow.h:111
void enableDragAndDropOnRepositoryTree(bool enabled)
bool getForceFetch() const
void signalAddFileObjectData(const MainWindowExchangeData &data)
void sigSetCommitLog(const CommitLogExchangeData &log)
void signalUpdateCommitLog()
void connectShowFileListHandler()
void sigPtyProcessCompleted(bool ok, PtyProcessCompleted const &data)
FilterTarget
Definition: MainWindow.h:152
void sigWriteLog(LogData const &logdata)
void sigShowFileList(FileListType files_list_type)
Definition: MyProcess.h:21
Definition: MainWindow.h:76
PtyProcessCompleted()
Definition: MainWindow.h:83
QString process_name
Definition: MainWindow.h:81
QVariant userdata
Definition: MainWindow.h:80
QElapsedTimer elapsed
Definition: MainWindow.h:82
std::function< void(ProcessStatus *, QVariant const &)> callback
Definition: MainWindow.h:78
std::shared_ptr< ProcessStatus > status
Definition: MainWindow.h:79
Definition: StatusInfo.h:8
Definition: UnixPtyProcess.h:7
Definition: UserEvent.h:31
std::variant< StartEventData, CloneRepositoryEventData > variant_t
Definition: UserEvent.h:36
Definition: AboutDialog.h:6
static Variant var(jstream::Reader const &reader)
Definition: jstream.h:1612
Definition: GitTypes.h:67
Definition: MainWindow.h:32
RepositoryInfo repodata
Definition: MainWindow.h:34
GitCloneData clonedata
Definition: MainWindow.h:33
Definition: RepositoryModel.h:28
Definition: GitTypes.h:220
Definition: GitTypes.h:247
Definition: GitTypes.h:114
Definition: MainWindow.h:60
QString repository_name
Definition: MainWindow.h:62
QString owner_account_name
Definition: MainWindow.h:61
Type
Definition: GitTypes.h:78
Definition: GitTypes.h:11
Definition: GitTypes.h:366
Definition: GitTypes.h:211
Definition: MainWindow.h:38
LogData(QByteArray const &ba)
Definition: MainWindow.h:41
LogData(char const *p, int n)
Definition: MainWindow.h:49
LogData(std::string_view const &s)
Definition: MainWindow.h:53
QByteArray data
Definition: MainWindow.h:39
LogData(QString const &s)
Definition: MainWindow.h:45
Definition: MainWindow.h:133
QString header
Definition: MainWindow.h:138
int idiff
Definition: MainWindow.h:139
QString id
Definition: MainWindow.h:134
GitSubmoduleItem submod
Definition: MainWindow.h:136
QString path
Definition: MainWindow.h:135
GitCommitItem submod_commit
Definition: MainWindow.h:137
Definition: MainWindow.h:181
Definition: MainWindow.cpp:114
Definition: MainWindow.h:148
Definition: RepositoryModel.h:11
Definition: RepositoryInfo.h:7