Index: src/app/qgspluginmanager.cpp =================================================================== --- src/app/qgspluginmanager.cpp (revisión: 7986) +++ src/app/qgspluginmanager.cpp (copia de trabajo) @@ -72,13 +72,13 @@ void QgsPluginManager::setTable() { lstPlugins->setAlternatingRowColors(true); - modelPlugins= new QStandardItemModel(0,4); - modelPlugins->setHorizontalHeaderItem(0,new QStandardItem(tr("Name"))); - modelPlugins->setHorizontalHeaderItem(1,new QStandardItem(tr("Version"))); - modelPlugins->setHorizontalHeaderItem(2,new QStandardItem(tr("Description"))); - modelPlugins->setHorizontalHeaderItem(3,new QStandardItem(tr("Library name"))); + mModelPlugins= new QStandardItemModel(0,4); + mModelPlugins->setHorizontalHeaderItem(0,new QStandardItem(tr("Name"))); + mModelPlugins->setHorizontalHeaderItem(1,new QStandardItem(tr("Version"))); + mModelPlugins->setHorizontalHeaderItem(2,new QStandardItem(tr("Description"))); + mModelPlugins->setHorizontalHeaderItem(3,new QStandardItem(tr("Library name"))); - lstPlugins->setModel(modelPlugins); + lstPlugins->setModel(mModelPlugins); // No vertical headers lstPlugins->verticalHeader()->hide(); lstPlugins->setSelectionBehavior(QAbstractItemView::SelectRows); @@ -95,7 +95,7 @@ void QgsPluginManager::sortModel(int column) { // Sort column ascending. - modelPlugins->sort(column); + mModelPlugins->sort(column); QgsDebugMsg("QgsPluginManager::sortModel\n"); } @@ -157,7 +157,7 @@ // Add items to model QList myItems; myItems << myName << myVersion << myDesc << myDir; - modelPlugins->appendRow(myItems); + mModelPlugins->appendRow(myItems); } #endif } @@ -299,7 +299,7 @@ // Add items to model QList myItems; myItems << myName << myVersion << myDesc << myDir; - modelPlugins->appendRow(myItems); + mModelPlugins->appendRow(myItems); delete myLib; } @@ -317,18 +317,18 @@ #ifdef QGISDEBUG std::cout << "Checking for plugins to unload" << std::endl; #endif - for (int row=0;row < modelPlugins->rowCount();row++) + for (int row=0;row < mModelPlugins->rowCount();row++) { // FPV - I want to use index. You can do evrething with item. - QModelIndex myIndex=modelPlugins->index(row,0); - if (modelPlugins->data(myIndex,Qt::CheckStateRole).toInt() == 0) + QModelIndex myIndex=mModelPlugins->index(row,0); + if (mModelPlugins->data(myIndex,Qt::CheckStateRole).toInt() == 0) { // its off -- see if it is loaded and if so, unload it QgsPluginRegistry *pRegistry = QgsPluginRegistry::instance(); #ifdef QGISDEBUG - std::cout << "Checking to see if " << modelPlugins->data(myIndex).toString().toLocal8Bit().data() << " is loaded" << std::endl; + std::cout << "Checking to see if " << mModelPlugins->data(myIndex).toString().toLocal8Bit().data() << " is loaded" << std::endl; #endif - QString pluginName = modelPlugins->data(myIndex).toString(); + QString pluginName = mModelPlugins->data(myIndex).toString(); if (pRegistry->isPythonPlugin(pluginName)) { #ifdef HAVE_PYTHON @@ -358,15 +358,14 @@ { std::vector < QgsPluginItem > pis; // FPV - I want to use item here. You can do everything with index if you want. - for (int row=0;row < modelPlugins->rowCount();row++) + for (int row=0;row < mModelPlugins->rowCount();row++) { - QStandardItem *myItem=modelPlugins->item(row,0); - if (modelPlugins->item(row,0)->checkState() == Qt::Checked) + if (mModelPlugins->item(row,0)->checkState() == Qt::Checked) { - QString pluginName = modelPlugins->item(row,0)->text(); + QString pluginName = mModelPlugins->item(row,0)->text(); bool pythonic = false; - QString library = modelPlugins->item(row,3)->text(); + QString library = mModelPlugins->item(row,3)->text(); if (library.left(7) == "python:") { library = library.mid(7); @@ -376,7 +375,7 @@ { library = txtPluginDir->text() + "/" + library; } - pis.push_back(QgsPluginItem(pluginName, modelPlugins->item(row,2)->text(), library, 0, pythonic)); + pis.push_back(QgsPluginItem(pluginName, mModelPlugins->item(row,2)->text(), library, 0, pythonic)); } } @@ -386,9 +385,9 @@ void QgsPluginManager::on_btnSelectAll_clicked() { // select all plugins - for (int row=0;row < modelPlugins->rowCount();row++) + for (int row=0;row < mModelPlugins->rowCount();row++) { - QStandardItem *myItem=modelPlugins->item(row,0); + QStandardItem *myItem=mModelPlugins->item(row,0); myItem->setCheckState(Qt::Checked); } } @@ -396,9 +395,9 @@ void QgsPluginManager::on_btnClearAll_clicked() { // clear all selection checkboxes - for (int row=0;row < modelPlugins->rowCount();row++) + for (int row=0;row < mModelPlugins->rowCount();row++) { - QStandardItem *myItem=modelPlugins->item(row,0); + QStandardItem *myItem=mModelPlugins->item(row,0); myItem->setCheckState(Qt::Unchecked); } } @@ -407,3 +406,17 @@ { reject(); } + +void QgsPluginManager::on_lstPlugins_clicked(const QModelIndex &theIndex ) +{ + if (theIndex.column() == 0) + { + int row = theIndex.row(); + if ( mModelPlugins->item(row,0)->checkState() == Qt::Checked ) + { + mModelPlugins->item(row,0)->setCheckState(Qt::Unchecked); + } else { + mModelPlugins->item(row,0)->setCheckState(Qt::Checked); + } + } +} Index: src/app/qgspluginmanager.h =================================================================== --- src/app/qgspluginmanager.h (revisión: 7986) +++ src/app/qgspluginmanager.h (copia de trabajo) @@ -56,6 +56,8 @@ //! Sort model by column ascending void sortModel(int ); public slots: + //! Enable disable checkbox + void on_lstPlugins_clicked(const QModelIndex & ); //! Load selected plugins and close the dialog void on_btnOk_clicked(); //! Select all plugins by setting their checkbox on @@ -65,7 +67,7 @@ //! Close the dialog void on_btnClose_clicked(); private: - QStandardItemModel *modelPlugins; + QStandardItemModel *mModelPlugins; }; #endif Index: src/ui/qgspluginmanagerbase.ui =================================================================== --- src/ui/qgspluginmanagerbase.ui (revisión: 7986) +++ src/ui/qgspluginmanagerbase.ui (copia de trabajo) @@ -19,20 +19,41 @@ true - + 11 - + + 11 + + + 11 + + + 11 + + 6 + + 6 + - - 11 - 6 + + 11 + + + 11 + + + 11 + + + 11 + @@ -64,12 +85,21 @@ - - 11 - 6 + + 11 + + + 11 + + + 11 + + + 11 + @@ -149,6 +179,9 @@ true + + QAbstractItemView::NoSelection + true