dolphin: show the file(s) staged for commit in git plugin commit dialog

or should it show diff rather?

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-07-12 19:47:13 +03:00
parent 6b689bbdbc
commit ec94a7cf06
3 changed files with 26 additions and 10 deletions

View file

@ -369,7 +369,7 @@ void FileViewGitPlugin::slotCommit()
const QStringList changedgitfiles = changedGitFiles(); const QStringList changedgitfiles = changedGitFiles();
Q_ASSERT(!changedgitfiles.isEmpty()); Q_ASSERT(!changedgitfiles.isEmpty());
GitCommitDialog gitdialog; GitCommitDialog gitdialog(changedgitfiles, nullptr);
if (gitdialog.exec() != QDialog::Accepted) { if (gitdialog.exec() != QDialog::Accepted) {
return; return;
} }

View file

@ -26,22 +26,33 @@
#include <git2/message.h> #include <git2/message.h>
#include <git2/errors.h> #include <git2/errors.h>
GitCommitDialog::GitCommitDialog(QWidget *parent) GitCommitDialog::GitCommitDialog(const QStringList &changedfiles, QWidget *parent)
: KDialog(parent), : KDialog(parent),
m_vbox(nullptr), m_mainvbox(nullptr),
m_commit(nullptr) m_commit(nullptr),
m_detailsvbox(nullptr),
m_changedfiles(nullptr)
{ {
setCaption(i18nc("@title:window", "<application>Git</application> Commit")); setCaption(i18nc("@title:window", "<application>Git</application> Commit"));
setButtons(KDialog::Ok | KDialog::Cancel); setButtons(KDialog::Details| KDialog::Ok | KDialog::Cancel);
setDefaultButton(KDialog::Ok); setDefaultButton(KDialog::Ok);
setButtonText(KDialog::Ok, i18nc("@action:button", "Commit")); setButtonText(KDialog::Ok, i18nc("@action:button", "Commit"));
m_vbox = new KVBox(this); m_mainvbox = new KVBox(this);
setMainWidget(m_vbox); setMainWidget(m_mainvbox);
m_commit = new KTextEdit(m_vbox); m_commit = new KTextEdit(m_mainvbox);
m_commit->setLineWrapMode(QTextEdit::FixedColumnWidth); m_commit->setLineWrapMode(QTextEdit::FixedColumnWidth);
m_commit->setLineWrapColumnOrWidth(72); m_commit->setLineWrapColumnOrWidth(72);
m_detailsvbox = new QGroupBox(m_mainvbox);
m_detailsvbox->setTitle(i18n("The following files are staged for commit"));
m_detailslayout = new QVBoxLayout(m_detailsvbox);
m_changedfiles = new KTextEdit(m_detailsvbox);
m_changedfiles->setReadOnly(true);
m_changedfiles->setText(changedfiles.join(QLatin1String("\n")));
m_detailslayout->addWidget(m_changedfiles);
setDetailsWidget(m_detailsvbox);
} }
GitCommitDialog::~GitCommitDialog() GitCommitDialog::~GitCommitDialog()

View file

@ -22,19 +22,24 @@
#include <kdialog.h> #include <kdialog.h>
#include <kvbox.h> #include <kvbox.h>
#include <ktextedit.h> #include <ktextedit.h>
#include <QGroupBox>
#include <QVBoxLayout>
class GitCommitDialog : public KDialog class GitCommitDialog : public KDialog
{ {
Q_OBJECT Q_OBJECT
public: public:
GitCommitDialog(QWidget *parent = nullptr); GitCommitDialog(const QStringList &changedfiles, QWidget *parent = nullptr);
~GitCommitDialog(); ~GitCommitDialog();
QByteArray message() const; QByteArray message() const;
private: private:
KVBox* m_vbox; KVBox* m_mainvbox;
KTextEdit* m_commit; KTextEdit* m_commit;
QGroupBox* m_detailsvbox;
QVBoxLayout* m_detailslayout;
KTextEdit* m_changedfiles;
}; };
#endif // GITCOMMITDIALOG_H #endif // GITCOMMITDIALOG_H