VCS[git]: Make Branchdialog non-modal as is StashDialog.

Give dialogs a consistent look, set
WA_DeleteOnClose on them and improve updating.
Add a Refresh/Diff buttons to branch dialog.
This commit is contained in:
Friedemann Kleint
2010-01-27 12:47:14 +01:00
parent 8ecc80ec4c
commit 18ab532e56
11 changed files with 179 additions and 91 deletions

View File

@@ -52,30 +52,30 @@ class RemoteBranchModel;
* Branch dialog. Displays a list of local branches at the top and remote
* branches below. Offers to checkout/delete local branches.
*
* TODO: Add new branch (optionally tracking a remote one).
* How to find out that a local branch is a tracking one?
*/
class BranchDialog : public QDialog {
Q_OBJECT
Q_DISABLE_COPY(BranchDialog)
public:
explicit BranchDialog(QWidget *parent = 0);
bool init(GitClient *client, const QString &workingDirectory, QString *errorMessage);
virtual ~BranchDialog();
protected:
virtual void changeEvent(QEvent *e);
public slots:
void refresh(const QString &repository, bool force);
private slots:
void slotEnableButtons();
void slotCheckoutSelectedBranch();
void slotDeleteSelectedBranch();
void slotDiffSelected();
void slotRefresh();
void slotLocalBranchActivated();
void slotRemoteBranchActivated(const QModelIndex &);
void slotCreateLocalBranch(const QString &branchName);
protected:
virtual void changeEvent(QEvent *e);
private:
bool ask(const QString &title, const QString &what, bool defaultButton);
void selectLocalBranch(const QString &b);
@@ -83,14 +83,15 @@ private:
int selectedLocalBranchIndex() const;
int selectedRemoteBranchIndex() const;
GitClient *m_client;
Ui::BranchDialog *m_ui;
QPushButton *m_checkoutButton;
QPushButton *m_diffButton;
QPushButton *m_refreshButton;
QPushButton *m_deleteButton;
LocalBranchModel *m_localModel;
RemoteBranchModel *m_remoteModel;
QString m_repoDirectory;
QString m_repository;
};
} // namespace Internal