diff --git a/src/plugins/vcsbase/vcsbasesettingspage.h b/src/plugins/vcsbase/vcsbasesettingspage.h index 4492f665444..9c271c561e9 100644 --- a/src/plugins/vcsbase/vcsbasesettingspage.h +++ b/src/plugins/vcsbase/vcsbasesettingspage.h @@ -59,6 +59,7 @@ private: class VCSBaseSettingsPage : public Core::IOptionsPage { + Q_OBJECT public: explicit VCSBaseSettingsPage(QObject *parent = 0); virtual ~VCSBaseSettingsPage(); @@ -74,6 +75,9 @@ public: VCSBaseSettings settings() const { return m_settings; } +signals: + void settingsChanged(const VCSBase::Internal::VCSBaseSettings &s); + private: void updateNickNames(); QPointer m_widget; diff --git a/src/plugins/vcsbase/vcsbasesettingspage.ui b/src/plugins/vcsbase/vcsbasesettingspage.ui index 01e478f8176..0585c680e3e 100644 --- a/src/plugins/vcsbase/vcsbasesettingspage.ui +++ b/src/plugins/vcsbase/vcsbasesettingspage.ui @@ -13,63 +13,102 @@ Form - + - + - - - QFormLayout::ExpandingFieldsGrow - - - - - Prompt for submit: - - + + + + + + + Prompt to submit + + + + + + + + + Wrap submit message at: + + + + + + + 40 + + + 200 + + + 72 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + - - - - - - - An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure. - - - Submit message check script: - - - - - - - - - - A file listing user names and email addresses in a 4-column mailmap format: + + + + + + An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure. + + + Submit message check script: + + + + + + + + + + A file listing user names and email addresses in a 4-column mailmap format: name <email> alias <email> - - - User/alias configuration file: - - - - - - - - - - A simple file containing lines with field names like "Reviewed-By:" which will be added below the submit editor. - - - User fields configuration file: - - - - - + + + User/alias configuration file: + + + + + + + + + + A simple file containing lines with field names like "Reviewed-By:" which will be added below the submit editor. + + + User fields configuration file: + + + + + + + diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index 46ae4374cf7..555e7576a61 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -136,6 +136,13 @@ VCSBaseSubmitEditor::VCSBaseSubmitEditor(const VCSBaseSubmitEditorParameters *pa if (!settings.nickNameFieldListFile.isEmpty()) createUserFields(settings.nickNameFieldListFile); connect(m_d->m_widget, SIGNAL(fieldDialogRequested(int)), this, SLOT(slotSetFieldNickName(int))); + + // wrapping. etc + slotUpdateEditorSettings(settings); + connect(Internal::VCSBasePlugin::instance(), + SIGNAL(settingsChanged(VCSBase::Internal::VCSBaseSettings)), + this, SLOT(slotUpdateEditorSettings(VCSBase::Internal::VCSBaseSettings))); + Aggregation::Aggregate *aggregate = new Aggregation::Aggregate; aggregate->add(new Find::BaseTextFind(m_d->m_widget->descriptionEdit())); aggregate->add(this); @@ -148,6 +155,12 @@ VCSBaseSubmitEditor::~VCSBaseSubmitEditor() delete m_d; } +void VCSBaseSubmitEditor::slotUpdateEditorSettings(const Internal::VCSBaseSettings &s) +{ + setLineWrapWidth(s.lineWrapWidth); + setLineWrap(s.lineWrap); +} + void VCSBaseSubmitEditor::createUserFields(const QString &fieldConfigFile) { QFile fieldFile(fieldConfigFile); @@ -160,7 +173,8 @@ void VCSBaseSubmitEditor::createUserFields(const QString &fieldConfigFile) if (fields.empty()) return; // Create a completer on user names - QCompleter *completer = new QCompleter(Internal::NickNameDialog::nickNameList(), this); + const QStandardItemModel *nickNameModel = Internal::VCSBasePlugin::instance()->nickNameModel(); + QCompleter *completer = new QCompleter(Internal::NickNameDialog::nickNameList(nickNameModel), this); foreach(const QString &field, fields) { const QString trimmedField = field.trimmed(); if (!trimmedField.isEmpty()) @@ -202,6 +216,26 @@ void VCSBaseSubmitEditor::setFileListSelectionMode(QAbstractItemView::SelectionM m_d->m_widget->setFileListSelectionMode(sm); } +bool VCSBaseSubmitEditor::lineWrap() const +{ + return m_d->m_widget->lineWrap(); +} + +void VCSBaseSubmitEditor::setLineWrap(bool w) +{ + m_d->m_widget->setLineWrap(w); +} + +int VCSBaseSubmitEditor::lineWrapWidth() const +{ + return m_d->m_widget->lineWrapWidth(); +} + +void VCSBaseSubmitEditor::setLineWrapWidth(int w) +{ + m_d->m_widget->setLineWrapWidth(w); +} + void VCSBaseSubmitEditor::slotDescriptionChanged() { } @@ -412,7 +446,7 @@ VCSBaseSubmitEditor::PromptSubmitResult QString VCSBaseSubmitEditor::promptForNickName() { if (!m_d->m_nickNameDialog) - m_d->m_nickNameDialog = new Internal::NickNameDialog(m_d->m_widget); + m_d->m_nickNameDialog = new Internal::NickNameDialog(Internal::VCSBasePlugin::instance()->nickNameModel(), m_d->m_widget); if (m_d->m_nickNameDialog->exec() == QDialog::Accepted) return m_d->m_nickNameDialog->nickName(); return QString(); diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.h b/src/plugins/vcsbase/vcsbasesubmiteditor.h index 4a02d262a29..3cd2e62bcba 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.h +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.h @@ -90,6 +90,8 @@ class VCSBASE_EXPORT VCSBaseSubmitEditor : public Core::IEditor Q_OBJECT Q_PROPERTY(int fileNameColumn READ fileNameColumn WRITE setFileNameColumn DESIGNABLE false) Q_PROPERTY(QAbstractItemView::SelectionMode fileListSelectionMode READ fileListSelectionMode WRITE setFileListSelectionMode DESIGNABLE true) + Q_PROPERTY(bool lineWrap READ lineWrap WRITE setLineWrap DESIGNABLE true); + Q_PROPERTY(int lineWrapWidth READ lineWrapWidth WRITE setLineWrapWidth DESIGNABLE true); public: typedef QList Context; @@ -121,6 +123,12 @@ public: QAbstractItemView::SelectionMode fileListSelectionMode() const; void setFileListSelectionMode(QAbstractItemView::SelectionMode sm); + bool lineWrap() const; + void setLineWrap(bool); + + int lineWrapWidth() const; + void setLineWrapWidth(int); + // Core::IEditor virtual bool createNew(const QString &contents); virtual bool open(const QString &fileName); @@ -161,6 +169,7 @@ private slots: void slotCheckSubmitMessage(); void slotInsertNickName(); void slotSetFieldNickName(int); + void slotUpdateEditorSettings(const VCSBase::Internal::VCSBaseSettings &); protected: /* These hooks allow for modifying the contents that goes to