mirror of
https://github.com/Murmele/Gittyup.git
synced 2024-10-05 14:37:31 +03:00
Added checkbox to prompt stage to directories on Tools -> Options -> Window;
Added checkbox to prompt to stage large files on Tools -> Options -> Window.
This commit is contained in:
parent
51590c19e5
commit
462ba64c67
@ -13,6 +13,8 @@ return {
|
||||
merge = true,
|
||||
revert = true,
|
||||
cherrypick = true,
|
||||
stash = false
|
||||
stash = false,
|
||||
directories = true,
|
||||
largeFiles = true
|
||||
}
|
||||
}
|
||||
|
@ -66,6 +66,14 @@ QString promptKey(Settings::PromptKind kind)
|
||||
case Settings::PromptCherryPick:
|
||||
key = "cherrypick";
|
||||
break;
|
||||
|
||||
case Settings::PromptDirectories:
|
||||
key = "directories";
|
||||
break;
|
||||
|
||||
case Settings::PromptLargeFiles:
|
||||
key = "largeFiles";
|
||||
break;
|
||||
}
|
||||
|
||||
return QString("window/prompt/%1").arg(key);
|
||||
@ -209,6 +217,12 @@ QString Settings::promptDescription(PromptKind kind) const
|
||||
|
||||
case PromptCherryPick:
|
||||
return tr("Prompt to edit commit message before cherry-picking");
|
||||
|
||||
case PromptDirectories:
|
||||
return tr("Prompt to stage directories");
|
||||
|
||||
case PromptLargeFiles:
|
||||
return tr("Prompt to stage large files");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,9 @@ public:
|
||||
PromptStash,
|
||||
PromptMerge,
|
||||
PromptRevert,
|
||||
PromptCherryPick
|
||||
PromptCherryPick,
|
||||
PromptDirectories,
|
||||
PromptLargeFiles
|
||||
};
|
||||
|
||||
QString group() const;
|
||||
|
@ -494,6 +494,20 @@ public:
|
||||
Settings::instance()->setPrompt(Settings::PromptStash, checked);
|
||||
});
|
||||
|
||||
QString largeFilesText = settings->promptDescription(Settings::PromptLargeFiles);
|
||||
QCheckBox *largeFiles = new QCheckBox(largeFilesText, this);
|
||||
largeFiles->setChecked(settings->prompt(Settings::PromptLargeFiles));
|
||||
connect(largeFiles, &QCheckBox::toggled, [](bool checked) {
|
||||
Settings::instance()->setPrompt(Settings::PromptLargeFiles, checked);
|
||||
});
|
||||
|
||||
QString directoriesText = settings->promptDescription(Settings::PromptDirectories);
|
||||
QCheckBox *directories = new QCheckBox(directoriesText, this);
|
||||
directories->setChecked(settings->prompt(Settings::PromptDirectories));
|
||||
connect(directories, &QCheckBox::toggled, [](bool checked) {
|
||||
Settings::instance()->setPrompt(Settings::PromptDirectories, checked);
|
||||
});
|
||||
|
||||
QFormLayout *layout = new QFormLayout(this);
|
||||
|
||||
layout->addRow(tr("Theme:"), comboBox);
|
||||
@ -505,6 +519,8 @@ public:
|
||||
layout->addRow(QString(), revert);
|
||||
layout->addRow(QString(), cherryPick);
|
||||
layout->addRow(QString(), stash);
|
||||
layout->addRow(QString(), directories);
|
||||
layout->addRow(QString(), largeFiles);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -153,8 +153,6 @@ Index::StagedState Index::isStaged(const QString &path) const
|
||||
|
||||
void Index::setStaged(const QStringList &files, bool staged, bool yieldFocus)
|
||||
{
|
||||
bool promptDir = true;
|
||||
bool promptSize = true;
|
||||
bool dirAdded = false;
|
||||
QStringList changedFiles;
|
||||
Repository repo(git_index_owner(d->index));
|
||||
@ -234,7 +232,7 @@ void Index::setStaged(const QStringList &files, bool staged, bool yieldFocus)
|
||||
bool allow = true;
|
||||
countDirectoryEntries(file, count);
|
||||
emit notifier->directoryAboutToBeStaged(
|
||||
file, count, allow, promptDir);
|
||||
file, count, allow);
|
||||
bool added = (allow && addDirectory(file));
|
||||
|
||||
QDir::setCurrent(current);
|
||||
@ -249,7 +247,7 @@ void Index::setStaged(const QStringList &files, bool staged, bool yieldFocus)
|
||||
bool allow = true;
|
||||
if (size > 10000000) // 10MB
|
||||
emit notifier->largeFileAboutToBeStaged(
|
||||
file, size, allow, promptSize);
|
||||
file, size, allow);
|
||||
|
||||
if (!allow)
|
||||
continue;
|
||||
|
@ -311,9 +311,9 @@ signals:
|
||||
|
||||
void directoryStaged();
|
||||
void directoryAboutToBeStaged(
|
||||
const QString &dir, int count, bool &allow, bool &prompt);
|
||||
const QString &dir, int count, bool &allow);
|
||||
void largeFileAboutToBeStaged(
|
||||
const QString &path, int size, bool &allow, bool &prompt);
|
||||
const QString &path, int size, bool &allow);
|
||||
void indexChanged(const QStringList &paths, bool yieldFocus = true);
|
||||
void indexStageError(const QString &path);
|
||||
|
||||
|
@ -304,8 +304,8 @@ RepoView::RepoView(const git::Repository &repo, MainWindow *parent)
|
||||
connect(notifier, &git::RepositoryNotifier::directoryStaged,
|
||||
this, &RepoView::refresh, Qt::QueuedConnection);
|
||||
connect(notifier, &git::RepositoryNotifier::directoryAboutToBeStaged,
|
||||
[this](const QString &dir, int count, bool &allow, bool &prompt) {
|
||||
if (!prompt)
|
||||
[this](const QString &dir, int count, bool &allow) {
|
||||
if (!Settings::instance()->prompt(Settings::PromptDirectories))
|
||||
return;
|
||||
|
||||
QString title = tr("Stage Directory?");
|
||||
@ -325,13 +325,13 @@ RepoView::RepoView(const git::Repository &repo, MainWindow *parent)
|
||||
dialog.exec();
|
||||
allow = (dialog.clickedButton() == button);
|
||||
if (cb->isChecked())
|
||||
prompt = false;
|
||||
Settings::instance()->setPrompt(Settings::PromptDirectories, false);
|
||||
});
|
||||
|
||||
// large file size warning
|
||||
connect(notifier, &git::RepositoryNotifier::largeFileAboutToBeStaged,
|
||||
[this](const QString &file, int size, bool &allow, bool &prompt) {
|
||||
if (!prompt)
|
||||
[this](const QString &file, int size, bool &allow) {
|
||||
if (!Settings::instance()->prompt(Settings::PromptLargeFiles))
|
||||
return;
|
||||
|
||||
QString title = tr("Stage Large File?");
|
||||
@ -356,7 +356,7 @@ RepoView::RepoView(const git::Repository &repo, MainWindow *parent)
|
||||
dialog.exec();
|
||||
allow = (dialog.clickedButton() == stage);
|
||||
if (cb->isChecked())
|
||||
prompt = false;
|
||||
Settings::instance()->setPrompt(Settings::PromptLargeFiles, false);
|
||||
|
||||
if (dialog.clickedButton() == track)
|
||||
configureSettings(ConfigDialog::Lfs);
|
||||
|
Loading…
Reference in New Issue
Block a user