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,
177 operator bool ()
const
187 void postEvent(QObject *receiver, QEvent *event,
int ms_later);
189 void cancelPendingUserEvents();
191 void updateFileList(
const Git::Hash &
id);
193 void updateFileListLater(
int delay_ms);
194 void cancelUpdateFileList();
195 void initUpdateFileListTimer();
198 bool new_session =
true;
200 bool validate =
false;
201 bool wait_cursor =
true;
202 bool keep_selection =
false;
204 bool clear_log =
true;
205 bool do_fetch =
true;
209 void reopenRepository(
bool validate);
210 void openSelectedRepository();
214 QStringList selectedFiles_(QListWidget *listwidget)
const;
215 QStringList selectedFiles()
const;
216 void for_each_selected_files(std::function<
void (QString
const &)>
const &fn);
217 void clearFileList();
218 void clearDiffView();
223 void buildRepoTree(QString
const &group, QTreeWidgetItem *item, QList<RepositoryInfo> *repos);
224 void refrectRepositories();
226 void updateDiffView(QListWidgetItem *item);
227 void updateDiffView();
228 void updateUnstagedFileCurrentItem();
229 void updateStagedFileCurrentItem();
230 void updateStatusBarText();
231 void setRepositoryInfo(QString
const &reponame, QString
const &brname);
233 QString getIncrementalSearchText()
const;
234 void setFilterText(
const QString &text,
int repo_list_select_row = -1);
235 void clearFilterText(
int repo_list_select_row = -1);
236 void clearAllFilters(
int select_row = -1);
238 void _appendCharToFilterText(ushort c);
248 void setRemoteOnline(
bool f,
bool save);
250 void setNetworkingCommandsEnabled(
bool enabled);
251 void blame(QListWidgetItem *item);
253 QListWidgetItem *currentFileItem()
const;
254 void execAreYouSureYouWantToContinueConnectingDialog(
const QString &windowtitle);
256 QStringList remoteBranches(
const Git::Hash &
id, QStringList *all);
257 bool isUninitialized();
258 void onLogCurrentItemChanged(
bool update_file_list);
260 void findText(
const QString &text);
261 bool locateCommitID(QString
const &commit_id);
264 void showLogWindow(
bool show);
265 bool isValidRemoteURL(
const QString &url,
const QString &sshkey);
266 QStringList whichCommand_(
const QString &cmdfile1,
const QString &cmdfile2 = {});
267 QString selectCommand_(
const QString &cmdname,
const QStringList &cmdfiles,
const QStringList &list, QString path,
const std::function<
void (
const QString &)> &callback);
268 QString selectCommand_(
const QString &cmdname,
const QString &cmdfile,
const QStringList &list,
const QString &path,
const std::function<
void (
const QString &)> &callback);
269 const RepositoryInfo *findRegisteredRepository(QString *workdir)
const;
270 bool execSetGlobalUserDialog();
271 void revertAllFiles();
272 bool execWelcomeWizardDialog();
273 void execRepositoryPropertyDialog(
const RepositoryInfo &repo,
bool open_repository_menu =
false);
274 void execConfigUserDialog(
const Git::User &global_user,
const Git::User &local_user,
bool enable_local_user,
const QString &reponame);
275 void setGitCommand(
const QString &path,
bool save);
276 void setGpgCommand(
const QString &path,
bool save);
277 void setSshCommand(
const QString &path,
bool save);
278 bool checkGitCommand();
279 bool saveBlobAs(
const QString &
id,
const QString &dstpath);
280 bool saveByteArrayAs(
const QByteArray &ba,
const QString &dstpath);
281 bool saveFileAs(
const QString &srcpath,
const QString &dstpath);
282 QString executableOrEmpty(
const QString &path);
283 bool checkExecutable(
const QString &path);
284 void internalSaveCommandPath(
const QString &path,
bool save,
const QString &name);
285 void logGitVersion();
286 void internalClearRepositoryInfo();
289 void setCurrentRepository(
const RepositoryInfo &repo,
bool clear_authentication);
292 void updateRemoteInfo();
294 void submodule_add(QString url = {},
const QString &local_dir = {});
296 void commit(
bool amend =
false);
301 void push(
bool set_upstream,
const QString &remote,
const QString &branch,
bool force);
303 void stage(
GitRunner g,
const QStringList &paths);
307 void delete_tags(
GitRunner g,
const QStringList &tagnames);
313 void deleteSelectedBranch();
314 void resetFile(
const QStringList &paths);
315 void clearAuthentication();
316 void clearSshAuthentication();
317 void internalDeleteTags(
const QStringList &tagnames);
318 void internalAddTag(
const QString &name);
319 void createRepository(
const QString &dir);
320 void addRepository(
const QString &local_dir,
const QString &group = {});
322 void scanFolderAndRegister(
const QString &group);
323 void doGitCommand(
const std::function<
void (
GitRunner)> &callback);
324 void setWindowTitle_(
const Git::User &user);
325 void setUnknownRepositoryInfo();
326 void setCurrentRemoteName(
const QString &name);
328 QStringList remotes()
const;
330 QString tempfileHeader()
const;
331 void deleteTempFiles();
332 QString newTempFilePath();
333 int limitLogCount()
const;
334 bool isThereUncommitedChanges()
const;
336 const std::map<Git::Hash, BranchList> &branchmap()
const;
338 void updateWindowTitle(
const Git::User &user);
341 std::tuple<QString, BranchLabelList> makeCommitLabels(
Git::CommitItem const &commit, std::map<Git::Hash, BranchList>
const &branch_map, std::map<Git::Hash, TagList>
const &tag_map)
const;
344 void removeRepositoryFromBookmark(RepositoryTreeIndex
const &index,
bool ask);
347 bool askAreYouSureYouWantToRun(
const QString &title,
const QString &command);
348 bool editFile(
const QString &path,
const QString &title);
350 QStringList findGitObject(
const QString &
id)
const;
351 void saveApplicationSettings();
352 void loadApplicationSettings();
353 void setDiffResult(
const QList<Git::Diff> &diffs);
354 const QList<Git::SubmoduleItem> &submodules()
const;
355 void setSubmodules(
const QList<Git::SubmoduleItem> &submodules);
356 bool runOnRepositoryDir(
const std::function<
void (QString, QString)> &callback,
const RepositoryInfo *repo);
359 const std::map<Git::Hash, TagList> &tagmap()
const;
360 std::map<Git::Hash, TagList> queryTags(
GitRunner g);
363 void sshSetPassphrase(
const std::string &user,
const std::string &pass);
364 std::string sshPassphraseUser()
const;
365 std::string sshPassphrasePass()
const;
366 void httpSetAuthentication(
const std::string &user,
const std::string &pass);
367 std::string httpAuthenticationUser()
const;
368 std::string httpAuthenticationPass()
const;
371 bool saveRepositoryBookmarks();
372 QString getBookmarksFilePath()
const;
373 void stopPtyProcess();
374 void abortPtyProcess();
377 bool getPtyProcessOk()
const;
378 bool isPtyProcessRunning()
const;
379 void setCompletedHandler(std::function<
void (
bool,
const QVariant &)> fn,
const QVariant &userdata);
380 void setPtyProcessOk(
bool pty_process_ok);
382 const QList<RepositoryInfo> &repositoryList()
const;
383 void setRepositoryList(QList<RepositoryInfo> &&list);
385 bool interactionEnabled()
const;
386 void setInteractionEnabled(
bool enabled);
387 InteractionMode interactionMode()
const;
388 void setInteractionMode(
const InteractionMode &im);
389 void setUncommitedChanges(
bool uncommited_changes);
390 QList<Git::Diff>
const *diffResult()
const;
392 void clearLabelMap();
397 void setHeadId(
const Git::Hash &head_id);
398 void setPtyProcessCompletionData(
const QVariant &value);
399 const QVariant &getTempRepoForCloneCompleteV()
const;
400 void msgNoRepositorySelected();
401 bool isRepositoryOpened()
const;
402 void initRepository(
const QString &path,
const QString &reponame,
const Git::Remote &remote);
403 void updatePocessLog(
bool processevents);
404 void appendLogHistory(
const QByteArray &str);
405 std::vector<std::string> getLogHistoryLines();
406 void clearLogHistory();
407 void updateAvatar(
const Git::User &user,
bool request);
408 void cleanSubModule(
GitRunner g, QListWidgetItem *item);
410 void updateUncommitedChanges(
GitRunner g);
412 QString preferredRepositoryGroup()
const;
413 void setPreferredRepositoryGroup(
const QString &group);
414 bool _addExistingLocalRepository(QString dir, QString name, QString sshkey,
bool open,
bool save =
true,
bool msgbox_if_err =
true);
415 void addExistingLocalRepositoryWithGroup(
const QString &dir,
const QString &group);
416 bool addExistingLocalRepository(
const QString &dir,
bool open);
419 int rowFromCommitId(
const Git::Hash &
id);
421 void _updateCommitLogTableView(
int delay_ms);
429 void jump(
GitRunner g,
const QString &text);
430 void connectPtyProcessCompleted();
431 void setupShowFileListHandler();
433 void setRetry(std::function<
void (
const QVariant &)> fn,
const QVariant &
var);
436 bool isRetryQueued()
const;
437 void clearGitCommandCache();
444 void setupAddFileObjectData();
446 void setupStatusInfoHandler();
447 void connectSetCommitLog();
449 void _chooseRepository(QTreeWidgetItem *item);
450 void chooseRepository();
454 void closeEvent(QCloseEvent *event)
override;
455 void dragEnterEvent(QDragEnterEvent *event)
override;
456 void keyPressEvent(QKeyEvent *event)
override;
457 bool event(QEvent *event)
override;
458 bool eventFilter(QObject *watched, QEvent *event)
override;
459 std::optional<RepositoryInfo> selectedRepositoryItem()
const;
460 void removeSelectedRepositoryFromBookmark(
bool ask);
467 void onLogVisibilityChanged();
468 void onRepositoriesTreeDropped();
469 void onInterval10ms();
470 void onAvatarReady();
471 void onCommitDetailGetterReady();
474 void onCommitLogCurrentRowChanged(
int row);
476 void on_action_about_triggered();
477 void on_action_add_repository_triggered();
478 void on_action_clean_df_triggered();
479 void on_action_commit_triggered();
480 void on_action_create_desktop_launcher_file_triggered();
481 void on_action_delete_branch_triggered();
482 void on_action_delete_remote_branch_triggered();
483 void on_action_edit_git_config_triggered();
484 void on_action_edit_gitignore_triggered();
485 void on_action_edit_global_gitconfig_triggered();
486 void on_action_edit_settings_triggered();
487 void on_action_edit_tags_triggered();
488 void on_action_exit_triggered();
489 void on_action_expand_commit_log_triggered();
490 void on_action_expand_diff_view_triggered();
491 void on_action_expand_file_list_triggered();
492 void on_action_explorer_triggered();
493 void on_action_fetch_prune_triggered();
494 void on_action_fetch_triggered();
495 void on_action_find_next_triggered();
496 void on_action_find_triggered();
497 void on_action_offline_triggered();
498 void on_action_online_triggered();
499 void on_action_pull_triggered();
500 void on_action_push_all_tags_triggered();
501 void on_action_push_triggered();
502 void on_action_reflog_triggered();
503 void on_action_repo_checkout_triggered();
504 void on_action_repo_jump_to_head_triggered();
505 void on_action_repo_jump_triggered();
506 void on_action_repo_merge_triggered();
507 void on_action_repositories_panel_triggered();
508 void on_action_repository_property_triggered();
509 void on_action_repository_status_triggered();
510 void on_action_reset_HEAD_1_triggered();
511 void on_action_reset_hard_triggered();
512 void on_action_configure_user_triggered();
513 void on_action_set_gpg_signing_triggered();
514 void on_action_show_labels_triggered();
515 void on_action_show_graph_triggered();
516 void on_action_show_avatars_triggered();
517 void on_action_sidebar_triggered();
518 void on_action_stash_apply_triggered();
519 void on_action_stash_drop_triggered();
520 void on_action_stash_triggered();
521 void on_action_stop_process_triggered();
522 void on_action_submodule_add_triggered();
523 void on_action_submodule_update_triggered();
524 void on_action_submodules_triggered();
525 void on_action_terminal_triggered();
526 void on_action_view_refresh_triggered();
527 void on_action_window_log_triggered(
bool checked);
528 void on_listWidget_files_currentRowChanged(
int currentRow);
529 void on_listWidget_files_customContextMenuRequested(
const QPoint &pos);
530 void on_listWidget_files_itemDoubleClicked(QListWidgetItem *item);
531 void on_listWidget_staged_currentRowChanged(
int currentRow);
532 void on_listWidget_staged_customContextMenuRequested(
const QPoint &pos);
533 void on_listWidget_staged_itemDoubleClicked(QListWidgetItem *item);
534 void on_listWidget_unstaged_currentRowChanged(
int currentRow);
535 void on_listWidget_unstaged_customContextMenuRequested(
const QPoint &pos);
536 void on_listWidget_unstaged_itemDoubleClicked(QListWidgetItem *item);
537 void on_radioButton_remote_offline_clicked();
538 void on_radioButton_remote_online_clicked();
539 void on_tableWidget_log_customContextMenuRequested(
const QPoint &pos);
540 void on_tableWidget_log_doubleClicked(
const QModelIndex &index);
541 void on_toolButton_commit_clicked();
542 void on_toolButton_explorer_clicked();
543 void on_toolButton_fetch_clicked();
544 void on_toolButton_pull_clicked();
545 void on_toolButton_push_clicked();
546 void on_toolButton_select_all_clicked();
547 void on_toolButton_stage_clicked();
548 void on_toolButton_status_clicked();
549 void on_toolButton_stop_process_clicked();
550 void on_toolButton_terminal_clicked();
551 void on_toolButton_unstage_clicked();
552 void on_treeWidget_repos_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
553 void on_treeWidget_repos_customContextMenuRequested(
const QPoint &pos);
554 void on_treeWidget_repos_itemDoubleClicked(QTreeWidgetItem *item,
int column);
555 void on_toolButton_addrepo_clicked();
558 void toggleMaximized();
560 void onRemoteInfoChanged();
561 void onShowStatusInfo(
StatusInfo const &info);
562 void on_action_rebase_abort_triggered();
567 void on_action_view_sort_by_time_changed();
569 void on_action_ssh_triggered();
586 explicit MainWindow(QWidget *parent =
nullptr);
589 QColor color(
unsigned int i);
590 bool isOnlineMode()
const;
591 void updateCurrentFileList();
595 const TagList &queryCurrentCommitTagList()
const;
600 static int indexOfLog(QListWidgetItem *item);
601 static int indexOfDiff(QListWidgetItem *item);
602 static void updateSubmodules(
GitRunner g,
const Git::Hash &
id, QList<Git::SubmoduleItem> *out);
604 static TagList findTag(std::map<Git::Hash, TagList>
const &tagmap,
Git::Hash const &
id);
605 static QString makeRepositoryName(
const QString &loc);
606 static void addDiffItems(
const QList<Git::Diff> *diff_list,
const std::function<
void (
const ObjectData &)> &add_item);
607 static Git::Hash getObjectID(QListWidgetItem *item);
608 static QString getFilePath(QListWidgetItem *item);
609 static QString getSubmodulePath(QListWidgetItem *item);
610 static QString getSubmoduleCommitId(QListWidgetItem *item);
613 static std::string parseDetectedDubiousOwnershipInRepositoryAt(
const std::vector<std::string> &lines);
616 static bool isValidWorkingCopy(
GitRunner g);
617 bool isValidWorkingCopy(QString
const &local_dir);
620 void drawDigit(QPainter *pr,
int x,
int y,
int n)
const;
621 static constexpr
int DIGIT_WIDTH = 5;
622 static constexpr
int DIGIT_HEIGHT = 7;
624 void clearStatusInfo();
625 bool setCurrentLogRow(
int row);
627 void deleteTags(QStringList
const &tagnames);
628 void addTag(QString
const &name);
629 int selectedLogIndex()
const;
630 void updateAncestorCommitMap();
631 bool isAncestorCommit(
Git::Hash const &
id)
const;
632 void postStartEvent(
int ms_later);
633 void setShowLabels(
bool show,
bool save);
634 void setShowGraph(
bool show,
bool save);
635 void setShowAvatars(
bool show,
bool save);
636 bool isLabelsVisible()
const;
637 bool isGraphVisible()
const;
638 bool isAvatarsVisible()
const;
639 bool isAvatarEnabled()
const;
640 void makeDiffList(
const Git::Hash &
id, QList<Git::Diff> *diff_list, QListWidget *listwidget);
642 void execCommitPropertyDialog(QWidget *parent,
const Git::CommitItem &commit);
643 void execCommitExploreWindow(QWidget *parent,
const Git::CommitItem *commit);
644 void execFileHistory(
const QString &path);
645 void execFileHistory(QListWidgetItem *item);
646 void showObjectProperty(QListWidgetItem *item);
647 bool testRemoteRepositoryValidity(
const QString &url,
const QString &sshkey);
648 QString selectGitCommand(
bool save);
649 QString selectGpgCommand(
bool save);
650 QString selectSshCommand(
bool save);
654 QString currentRepositoryName()
const;
655 QString currentRemoteName()
const;
656 QString currentBranchName()
const;
657 GitRunner _git(
const QString &dir,
const QString &submodpath,
const QString &sshkey,
bool use_cache)
const;
658 GitRunner unassosiated_git_runner()
const;
659 GitRunner new_git_runner(
const QString &dir,
const QString &sshkey);
663 bool isValidWorkingCopy(QString
const &dir)
const;
664 void autoOpenRepository(QString dir,
const QString &commit_id = {});
665 std::optional<Git::CommitItem> queryCommit(
const Git::Hash &
id);
666 bool checkoutLocalBranch(QString
const &name);
667 void checkout(QWidget *parent,
const Git::CommitItem &commit, std::function<
void ()> accepted_callback = {});
670 bool jumpToCommit(
const QString &
id);
673 bool saveAs(
const QString &
id,
const QString &dstpath);
676 void emitWriteLog(
LogData const &logdata);
677 QString findFileID(
const Git::Hash &commit_id,
const QString &file);
680 QImage committerIcon(
int row, QSize size)
const;
681 void changeSshKey(
const QString &local_dir,
const QString &ssh_key,
bool save);
684 QString defaultWorkingDir()
const;
685 QIcon signatureVerificationIcon(
const Git::Hash &
id)
const;
686 QAction *addMenuActionProperty(QMenu *menu);
687 QString currentWorkingCopyDir()
const;
692 void setupExternalPrograms();
693 void updateCommitLogTableViewLater();
695 void changeRepositoryBookmarkName(
RepositoryInfo item, QString new_name);
697 void setProgress(
float progress);
698 void showProgress(
const QString &text,
float progress = -1.0f);
700 void internalAfterFetch();
701 void onRepositoryTreeSortRecent(
bool f);
704 void clearLogContents();
705 void updateLogTableView();
706 void setFocusToLogTable();
707 void selectLogTableRow(
int row);
712 void internalWriteLog(
const LogData &logdata);
QList< NamedCommitItem > NamedCommitList
Definition: Git.h:710
QList< Git::Branch > BranchList
Definition: RepositoryModel.h:9
QList< BranchLabel > BranchLabelList
Definition: RepositoryModel.h:10
QList< Git::Tag > TagList
Definition: RepositoryModel.h:8
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: GitObjectManager.h:41
MergeFastForward
Definition: Git.h:325
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:715
MainWindow::FileListType files_list_type
Definition: MainWindow.h:717
std::vector< MainWindow::ObjectData > object_data
Definition: MainWindow.h:718
Definition: MainWindow.h:173
QByteArray content
Definition: MainWindow.h:176
bool is(Git::Object::Type t) const
Definition: MainWindow.h:181
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:159
static std::pair< QString, QString > makeFileItemText(const ObjectData &data)
Private * m
Definition: MainWindow.h:161
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:168
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: MainWindow.h:32
RepositoryInfo repodata
Definition: MainWindow.h:34
Git::CloneData clonedata
Definition: MainWindow.h:33
Definition: RepositoryModel.h:31
Definition: MainWindow.h:60
QString repository_name
Definition: MainWindow.h:62
QString owner_account_name
Definition: MainWindow.h:61
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:143
std::vector< int > indexes
Definition: MainWindow.h:145
Definition: MainWindow.h:149
QString header
Definition: MainWindow.h:154
int idiff
Definition: MainWindow.h:155
Git::CommitItem submod_commit
Definition: MainWindow.h:153
Git::SubmoduleItem submod
Definition: MainWindow.h:152
QString id
Definition: MainWindow.h:150
QString path
Definition: MainWindow.h:151
Definition: MainWindow.h:197
Definition: MainWindow.cpp:116
Definition: MainWindow.h:164
Definition: MainWindow.h:132
Task(int index, int parent)
Definition: MainWindow.h:136
Definition: RepositoryModel.h:12
Definition: RepositoryInfo.h:7