1 | #include "StashesContextMenu.h" |
2 | |
3 | #include <BranchDlg.h> |
4 | #include <GitQlientStyles.h> |
5 | #include <GitStashes.h> |
6 | |
7 | #include <QMessageBox> |
8 | |
9 | StashesContextMenu::(const QSharedPointer<GitBase> &git, const QString &stashId, QWidget *parent) |
10 | : QMenu(parent) |
11 | , mGit(git) |
12 | , mStashId(stashId) |
13 | { |
14 | setAttribute(Qt::WA_DeleteOnClose); |
15 | |
16 | connect(addAction(tr("Branch" )), &QAction::triggered, this, &StashesContextMenu::branch); |
17 | connect(addAction(tr("Drop" )), &QAction::triggered, this, &StashesContextMenu::drop); |
18 | connect(addAction(tr("Clear all" )), &QAction::triggered, this, &StashesContextMenu::clear); |
19 | } |
20 | |
21 | void StashesContextMenu::() |
22 | { |
23 | BranchDlg dlg({ mStashId, BranchDlgMode::STASH_BRANCH, nullptr, mGit }); |
24 | const auto ret = dlg.exec(); |
25 | |
26 | if (ret == QDialog::Accepted) |
27 | emit signalUpdateView(); |
28 | } |
29 | |
30 | void StashesContextMenu::() |
31 | { |
32 | QScopedPointer<GitStashes> git(new GitStashes(mGit)); |
33 | const auto ret = git->stashDrop(mStashId); |
34 | |
35 | if (ret.success) |
36 | emit signalUpdateView(); |
37 | else |
38 | { |
39 | QMessageBox msgBox(QMessageBox::Critical, tr("Error while dropping stash" ), |
40 | tr("There were problems during the stash drop operation. Please, see the detailed " |
41 | "description for more information." ), |
42 | QMessageBox::Ok, this); |
43 | msgBox.setDetailedText(ret.output); |
44 | msgBox.setStyleSheet(GitQlientStyles::getStyles()); |
45 | msgBox.exec(); |
46 | } |
47 | } |
48 | |
49 | void StashesContextMenu::() |
50 | { |
51 | QScopedPointer<GitStashes> git(new GitStashes(mGit)); |
52 | const auto ret = git->stashClear(); |
53 | |
54 | if (ret.success) |
55 | emit signalUpdateView(); |
56 | else |
57 | { |
58 | QMessageBox msgBox(QMessageBox::Critical, tr("Error while branch stash" ), |
59 | tr("There were problems during the branch stash operation. Please, see the detailed " |
60 | "description for more information." ), |
61 | QMessageBox::Ok, this); |
62 | msgBox.setDetailedText(ret.output); |
63 | msgBox.setStyleSheet(GitQlientStyles::getStyles()); |
64 | msgBox.exec(); |
65 | } |
66 | } |
67 | |