diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2009-03-20 14:20:28 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2009-03-20 14:20:28 +0100 |
commit | 0ada412ee635506a17073f43bb0ba30c07a228c9 (patch) | |
tree | a3f02c1f4495b55c2a792d94590be94c2ce841ba /src/plugins/vcsbase/nicknamedialog.cpp | |
parent | 361a70ab0e4f48a8a7429e05ce05d0f4819dd333 (diff) | |
download | qt-creator-0ada412ee635506a17073f43bb0ba30c07a228c9.tar.gz |
Add option to wrap commit message at 72 chars and make it default.
Reorganize the settings model in the VCS base plugin, store model in the plugin for better delayed initialization/update.
Diffstat (limited to 'src/plugins/vcsbase/nicknamedialog.cpp')
-rw-r--r-- | src/plugins/vcsbase/nicknamedialog.cpp | 57 |
1 files changed, 24 insertions, 33 deletions
diff --git a/src/plugins/vcsbase/nicknamedialog.cpp b/src/plugins/vcsbase/nicknamedialog.cpp index d6a10ad302..ad694c1aa8 100644 --- a/src/plugins/vcsbase/nicknamedialog.cpp +++ b/src/plugins/vcsbase/nicknamedialog.cpp @@ -28,7 +28,6 @@ **************************************************************************/ #include "nicknamedialog.h" -#include "vcsbaseplugin.h" #include "ui_nicknamedialog.h" #include <QtCore/QDebug> @@ -120,13 +119,18 @@ QString NickNameEntry::nickName() const QList<QStandardItem *> NickNameEntry::toModelRow() const { const QVariant nickNameData = nickName(); + const Qt::ItemFlags flags = Qt::ItemIsSelectable|Qt::ItemIsEnabled; QStandardItem *i1 = new QStandardItem(name); + i1->setFlags(flags); i1->setData(nickNameData, NickNameRole); QStandardItem *i2 = new QStandardItem(email); + i1->setFlags(flags); i2->setData(nickNameData, NickNameRole); QStandardItem *i3 = new QStandardItem(aliasName); + i3->setFlags(flags); i3->setData(nickNameData, NickNameRole); QStandardItem *i4 = new QStandardItem(aliasEmail); + i4->setFlags(flags); i4->setData(nickNameData, NickNameRole); QList<QStandardItem *> row; row << i1 << i2 << i3 << i4; @@ -145,31 +149,10 @@ QDebug operator<<(QDebug d, const NickNameEntry &e) return d; } -// Globally cached model tacked onto the plugin. -static QStandardItemModel *nickModel() -{ - static QStandardItemModel *model = 0; - if (!model) { - model = new QStandardItemModel(VCSBasePlugin::instance()); - QStringList headers; - headers << NickNameDialog::tr("Name") - << NickNameDialog::tr("E-mail") - << NickNameDialog::tr("Alias") - << NickNameDialog::tr("Alias e-mail"); - model->setHorizontalHeaderLabels(headers); - } - return model; -} - -static inline void clearModel(QStandardItemModel *model) -{ - if (const int rowCount = model->rowCount()) - model->removeRows(0, rowCount); -} - -NickNameDialog::NickNameDialog(QWidget *parent) : +NickNameDialog::NickNameDialog(QStandardItemModel *model, QWidget *parent) : QDialog(parent), m_ui(new Ui::NickNameDialog), + m_model(model), m_filterModel(new QSortFilterProxyModel(this)) { setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); @@ -177,7 +160,7 @@ NickNameDialog::NickNameDialog(QWidget *parent) : okButton()->setEnabled(false); // Populate model and grow tree to accommodate it - m_filterModel->setSourceModel(nickModel()); + m_filterModel->setSourceModel(model); m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); m_ui->filterTreeView->setModel(m_filterModel); const int columnCount = m_filterModel->columnCount(); @@ -221,26 +204,35 @@ QString NickNameDialog::nickName() const const QModelIndex index = m_ui->filterTreeView->selectionModel()->currentIndex(); if (index.isValid()) { const QModelIndex sourceIndex = m_filterModel->mapToSource(index); - if (const QStandardItem *item = nickModel()->itemFromIndex(sourceIndex)) + if (const QStandardItem *item = m_model->itemFromIndex(sourceIndex)) return NickNameEntry::nickNameOf(item); } return QString(); } -void NickNameDialog::clearNickNames() +QStandardItemModel *NickNameDialog::createModel(QObject *parent) { - clearModel(nickModel()); + QStandardItemModel *model = new QStandardItemModel(parent); + QStringList headers; + headers << tr("Name") << tr("E-mail") + << tr("Alias") << tr("Alias e-mail"); + model->setHorizontalHeaderLabels(headers); + return model; } -bool NickNameDialog::readNickNamesFromMailCapFile(const QString &fileName, QString *errorMessage) +bool NickNameDialog::populateModelFromMailCapFile(const QString &fileName, + QStandardItemModel *model, + QString *errorMessage) { + if (const int rowCount = model->rowCount()) + model->removeRows(0, rowCount); + if (fileName.isEmpty()) + return true; QFile file(fileName); if (!file.open(QIODevice::ReadOnly|QIODevice::Text)) { *errorMessage = tr("Cannot open '%1': %2").arg(fileName, file.errorString()); return false; } - QStandardItemModel *model = nickModel(); - clearModel(model); // Split into lines and read NickNameEntry entry; const QStringList lines = QString::fromUtf8(file.readAll()).trimmed().split(QLatin1Char('\n')); @@ -256,10 +248,9 @@ bool NickNameDialog::readNickNamesFromMailCapFile(const QString &fileName, QStri return true; } -QStringList NickNameDialog::nickNameList() +QStringList NickNameDialog::nickNameList(const QStandardItemModel *model) { QStringList rc; - const QStandardItemModel *model = nickModel(); const int rowCount = model->rowCount(); for (int r = 0; r < rowCount; r++) rc.push_back(NickNameEntry::nickNameOf(model->item(r, 0))); |