From 3efc28d07b13a9940de4296e093dd7a676bd4cfb Mon Sep 17 00:00:00 2001 From: Martin Dobias Date: Mon, 12 Dec 2016 02:36:15 +0800 Subject: [PATCH] Remove legacy class QgsComposerLegendItem and subclasses --- doc/api_break.dox | 1 + .../core/composer/qgscomposerlegenditem.sip | 134 ------ python/core/core.sip | 1 - src/app/CMakeLists.txt | 2 - .../composer/qgscomposerlegenditemdialog.cpp | 44 -- .../composer/qgscomposerlegenditemdialog.h | 44 -- .../composer/qgscomposerlegendlayersdialog.h | 2 +- src/app/composer/qgscomposerlegendwidget.cpp | 2 - src/core/CMakeLists.txt | 2 - src/core/composer/qgscomposerlegend.cpp | 1 - src/core/composer/qgscomposerlegend.h | 2 - src/core/composer/qgscomposerlegenditem.cpp | 409 ------------------ src/core/composer/qgscomposerlegenditem.h | 197 --------- src/core/qgslegendrenderer.cpp | 2 +- src/core/qgslegendrenderer.h | 3 +- src/core/qgslegendsettings.h | 2 - src/server/qgswfsserver.cpp | 1 - src/server/qgswfsserver.h | 2 - src/server/qgswmsserver.h | 2 - .../qgscomposerlegenditemdialogbase.ui | 81 ---- tests/src/core/testqgslegendrenderer.cpp | 1 - 21 files changed, 4 insertions(+), 931 deletions(-) delete mode 100644 python/core/composer/qgscomposerlegenditem.sip delete mode 100644 src/app/composer/qgscomposerlegenditemdialog.cpp delete mode 100644 src/app/composer/qgscomposerlegenditemdialog.h delete mode 100644 src/core/composer/qgscomposerlegenditem.cpp delete mode 100644 src/core/composer/qgscomposerlegenditem.h delete mode 100644 src/ui/composer/qgscomposerlegenditemdialogbase.ui diff --git a/doc/api_break.dox b/doc/api_break.dox index 8776e7e56a3..c958162dcab 100644 --- a/doc/api_break.dox +++ b/doc/api_break.dox @@ -236,6 +236,7 @@ All the functionality from the old QgsColorDialog has been moved to the new clas - QgsComposerAttributeTable and associated classes (eg QgsComposerAttributeTableCompare, QgsComposerAttributeTableColumnModel, QgsComposerTableSortColumnsProxyModel) were removed. Use QgsComposerAttributeTableV2 instead. +- QgsComposerLegendItem and subclasses were removed (QgsComposerSymbolItem, QgsComposerRasterSymbolItem, QgsComposerLayerItem, QgsComposerGroupItem, QgsComposerStyleItem). - QgsComposerTable was removed. Use QgsComposerAttributeTableV2 instead. - ComposerTextTable was removed. Use ComposerTextTableV2 instead. - QgsCRSCache was removed. QgsCoordinateReferenceSystem now internally uses a cache for CRS creation, diff --git a/python/core/composer/qgscomposerlegenditem.sip b/python/core/composer/qgscomposerlegenditem.sip deleted file mode 100644 index 3617de9adc8..00000000000 --- a/python/core/composer/qgscomposerlegenditem.sip +++ /dev/null @@ -1,134 +0,0 @@ -class QgsComposerLegendItem : QStandardItem -{ -%TypeHeaderCode -#include -%End - - public: - QgsComposerLegendItem(); - QgsComposerLegendItem( const QString& text ); - QgsComposerLegendItem( const QIcon& icon, const QString& text ); - virtual ~QgsComposerLegendItem(); - - enum ItemType - { - GroupItem = QStandardItem::UserType, - LayerItem, - SymbologyV2Item, - RasterSymbolItem, - StyleItem - }; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const = 0; - /** Read item content from xml - @param itemElem item to read from - @param xServerAvailable Read item icons if true (QIcon needs x-server)*/ - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ) = 0; - - virtual ItemType itemType() const = 0; - virtual QStandardItem* clone() const = 0; - - QgsComposerLegendStyle::Style style() const; - void setStyle( QgsComposerLegendStyle::Style style ); - - // Get text defined by user - virtual QString userText() const; - // Set text defined by user - virtual void setUserText( const QString & text ); - - protected: - void writeXmlChildren( QDomElement& elem, QDomDocument& doc ) const; -}; - - -class QgsComposerSymbolItem: QgsComposerLegendItem -{ -%TypeHeaderCode -#include -%End - - public: - QgsComposerSymbolItem(); - QgsComposerSymbolItem( const QString& text ); - QgsComposerSymbolItem( const QIcon& icon, const QString& text ); - virtual ~QgsComposerSymbolItem(); - - virtual QStandardItem* clone() const /Factory/; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ); - - /** Set symbol (takes ownership)*/ - void setSymbol( QgsSymbol* s /Transfer/ ); - QgsSymbol* symbol(); - - ItemType itemType() const; -}; - -class QgsComposerRasterSymbolItem : QgsComposerLegendItem -{ -%TypeHeaderCode -#include -%End - public: - QgsComposerRasterSymbolItem(); - QgsComposerRasterSymbolItem( const QString& text ); - QgsComposerRasterSymbolItem( const QIcon& icon, const QString& text ); - virtual ~QgsComposerRasterSymbolItem(); - - virtual QStandardItem* clone() const /Factory/; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ); - ItemType itemType() const; - - void setLayerId( const QString& id ); - QString layerId() const; - - void setColor( const QColor& c ); - QColor color() const; -}; - -class QgsComposerLayerItem : QgsComposerLegendItem -{ -%TypeHeaderCode -#include -%End - - public: - QgsComposerLayerItem(); - QgsComposerLayerItem( const QString& text ); - virtual ~QgsComposerLayerItem(); - virtual QStandardItem* clone() const /Factory/; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ); - - ItemType itemType() const; - - void setLayerId( const QString& id ); - QString layerId() const; - - void setShowFeatureCount( bool show ); - bool showFeatureCount() const; - - void setDefaultStyle( double scaleDenominator = -1, const QString& rule = "" ); -}; - -class QgsComposerGroupItem : QgsComposerLegendItem -{ -%TypeHeaderCode -#include -%End - - public: - QgsComposerGroupItem(); - QgsComposerGroupItem( const QString& text ); - virtual ~QgsComposerGroupItem(); - virtual QStandardItem* clone() const /Factory/; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ); - - ItemType itemType() const; -}; diff --git a/python/core/core.sip b/python/core/core.sip index 9d0b7b376f1..53251469532 100644 --- a/python/core/core.sip +++ b/python/core/core.sip @@ -191,7 +191,6 @@ %Include composer/qgscomposeritemgroup.sip %Include composer/qgscomposerlabel.sip %Include composer/qgscomposerlegend.sip -%Include composer/qgscomposerlegenditem.sip %Include composer/qgscomposerlegendstyle.sip %Include composer/qgscomposermap.sip %Include composer/qgscomposermapgrid.sip diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 903e122d163..00d0b770dc3 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -145,7 +145,6 @@ SET(QGIS_APP_SRCS composer/qgscomposerpolygonwidget.cpp composer/qgscomposerpolylinewidget.cpp composer/qgscomposertablebackgroundcolorsdialog.cpp - composer/qgscomposerlegenditemdialog.cpp composer/qgscomposerlegendlayersdialog.cpp composer/qgscomposerlegendwidget.cpp composer/qgscompositionwidget.cpp @@ -308,7 +307,6 @@ SET (QGIS_APP_MOC_HDRS composer/qgscomposeritemwidget.h composer/qgscomposerlabelwidget.h composer/qgscomposerlegendwidget.h - composer/qgscomposerlegenditemdialog.h composer/qgscomposerlegendlayersdialog.h composer/qgscomposermanager.h composer/qgscomposermapgridwidget.h diff --git a/src/app/composer/qgscomposerlegenditemdialog.cpp b/src/app/composer/qgscomposerlegenditemdialog.cpp deleted file mode 100644 index 26250f7a60f..00000000000 --- a/src/app/composer/qgscomposerlegenditemdialog.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/*************************************************************************** - qgscomposerlegenditemdialog.cpp - ------------------------------- - begin : July 2008 - copyright : (C) 2008 by Marco Hugentobler - email : marco dot hugentobler at karto dot baug dot ethz dot ch - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include "qgscomposerlegenditemdialog.h" -#include - -QgsComposerLegendItemDialog::QgsComposerLegendItemDialog( const QStandardItem* item, QWidget* parent ): QDialog( parent ) -{ - setupUi( this ); - - if ( item ) - { - mItemTextLineEdit->setText( item->text() ); - } -} - -QgsComposerLegendItemDialog::QgsComposerLegendItemDialog(): QDialog( nullptr ) -{ - -} - -QgsComposerLegendItemDialog::~QgsComposerLegendItemDialog() -{ - -} - -QString QgsComposerLegendItemDialog::itemText() const -{ - return mItemTextLineEdit->text(); -} diff --git a/src/app/composer/qgscomposerlegenditemdialog.h b/src/app/composer/qgscomposerlegenditemdialog.h deleted file mode 100644 index 4e6b54e3554..00000000000 --- a/src/app/composer/qgscomposerlegenditemdialog.h +++ /dev/null @@ -1,44 +0,0 @@ -/*************************************************************************** - qgscomposerlegenditemdialog.h - ----------------------------- - begin : July 2008 - copyright : (C) 2008 by Marco Hugentobler - email : marco dot hugentobler at karto dot baug dot ethz dot ch - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#ifndef QGSCOMPOSERLEGENDITEMDIALOG_H -#define QGSCOMPOSERLEGENDITEMDIALOG_H - -#include -#include "ui_qgscomposerlegenditemdialogbase.h" - -class QStandardItem; - -/** \ingroup app - * A dialog to enter properties of composer legend items (currently only item text) - * */ -class QgsComposerLegendItemDialog: public QDialog, private Ui::QgsComposerLegendItemDialogBase -{ - Q_OBJECT - - public: - QgsComposerLegendItemDialog( const QStandardItem* item, QWidget* parent = nullptr ); - ~QgsComposerLegendItemDialog(); - - //! Returns the item text inserted by user - QString itemText() const; - - private: - QgsComposerLegendItemDialog(); //forbidden -}; - -#endif //QGSCOMPOSERLEGENDITEMDIALOG_H diff --git a/src/app/composer/qgscomposerlegendlayersdialog.h b/src/app/composer/qgscomposerlegendlayersdialog.h index 9ead16a66f4..0c35f37b5bb 100644 --- a/src/app/composer/qgscomposerlegendlayersdialog.h +++ b/src/app/composer/qgscomposerlegendlayersdialog.h @@ -38,4 +38,4 @@ class QgsComposerLegendLayersDialog: public QDialog, private Ui::QgsComposerLege QMap mItemLayerMap; }; -#endif //QGSCOMPOSERLEGENDITEMDIALOG_H +#endif //QGSCOMPOSERLEGENDLAYERSDIALOG_H diff --git a/src/app/composer/qgscomposerlegendwidget.cpp b/src/app/composer/qgscomposerlegendwidget.cpp index 5c00514e1c4..53d295b4de4 100644 --- a/src/app/composer/qgscomposerlegendwidget.cpp +++ b/src/app/composer/qgscomposerlegendwidget.cpp @@ -17,8 +17,6 @@ #include "qgscomposerlegendwidget.h" #include "qgscomposerlegend.h" -#include "qgscomposerlegenditem.h" -#include "qgscomposerlegenditemdialog.h" #include "qgscomposerlegendlayersdialog.h" #include "qgscomposeritemwidget.h" #include "qgscomposermap.h" diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 9577db263dc..10b138cef4d 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -256,7 +256,6 @@ SET(QGIS_CORE_SRCS composer/qgscomposeritemgroup.cpp composer/qgscomposerlabel.cpp composer/qgscomposerlegend.cpp - composer/qgscomposerlegenditem.cpp composer/qgscomposerlegendstyle.cpp composer/qgscomposermap.cpp composer/qgscomposermapgrid.cpp @@ -769,7 +768,6 @@ SET(QGIS_CORE_HDRS composer/qgscomposerarrow.h composer/qgscomposerframe.h composer/qgscomposeritemcommand.h - composer/qgscomposerlegenditem.h composer/qgscomposerlegendstyle.h composer/qgscomposermultiframecommand.h composer/qgscomposertexttable.h diff --git a/src/core/composer/qgscomposerlegend.cpp b/src/core/composer/qgscomposerlegend.cpp index 3e31ba4b896..84cf2483357 100644 --- a/src/core/composer/qgscomposerlegend.cpp +++ b/src/core/composer/qgscomposerlegend.cpp @@ -18,7 +18,6 @@ #include "qgscomposerlegendstyle.h" #include "qgscomposerlegend.h" -#include "qgscomposerlegenditem.h" #include "qgscomposermap.h" #include "qgscomposition.h" #include "qgscomposermodel.h" diff --git a/src/core/composer/qgscomposerlegend.h b/src/core/composer/qgscomposerlegend.h index 8e0a2f799d4..f8296fd6cc8 100644 --- a/src/core/composer/qgscomposerlegend.h +++ b/src/core/composer/qgscomposerlegend.h @@ -24,8 +24,6 @@ class QgsLayerTreeModel; class QgsSymbol; -class QgsComposerGroupItem; -class QgsComposerLayerItem; class QgsComposerMap; class QgsLegendRenderer; diff --git a/src/core/composer/qgscomposerlegenditem.cpp b/src/core/composer/qgscomposerlegenditem.cpp deleted file mode 100644 index 588f34c5c5a..00000000000 --- a/src/core/composer/qgscomposerlegenditem.cpp +++ /dev/null @@ -1,409 +0,0 @@ -/*************************************************************************** - qgscomposerlegenditem.cpp - description - ------------------------- - begin : May 2010 - copyright : (C) 2010 by Marco Hugentobler - email : marco dot hugentobler at sourcepole dot ch - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include "qgscomposerlegendstyle.h" -#include "qgscomposerlegenditem.h" -#include "qgscomposerlegend.h" -#include "qgsproject.h" -#include "qgsrasterlayer.h" -#include "qgsrenderer.h" -#include "qgssymbol.h" -#include "qgssymbollayerutils.h" -#include "qgsvectorlayer.h" -#include "qgsapplication.h" -#include -#include - -QgsComposerLegendItem::QgsComposerLegendItem( QgsComposerLegendStyle::Style s ): QStandardItem() - , mStyle( s ) -{ -} - -QgsComposerLegendItem::QgsComposerLegendItem( const QString& text, QgsComposerLegendStyle::Style s ): QStandardItem( text ) - , mStyle( s ) -{ -} - -QgsComposerLegendItem::QgsComposerLegendItem( const QIcon& icon, const QString& text, QgsComposerLegendStyle::Style s ): QStandardItem( icon, text ) - , mStyle( s ) -{ -} - -QgsComposerLegendItem::~QgsComposerLegendItem() -{ -} - -void QgsComposerLegendItem::writeXmlChildren( QDomElement& elem, QDomDocument& doc ) const -{ - int numRows = rowCount(); - QgsComposerLegendItem* currentItem = nullptr; - for ( int i = 0; i < numRows; ++i ) - { - currentItem = dynamic_cast( child( i, 0 ) ); - if ( currentItem ) - { - currentItem->writeXml( elem, doc ); - } - } -} - - -////////////////QgsComposerSymbolItem - - -QgsComposerSymbolItem::QgsComposerSymbolItem(): QgsComposerLegendItem( QgsComposerLegendStyle::Symbol ), mSymbol( nullptr ) -{ -} - -QgsComposerSymbolItem::QgsComposerSymbolItem( const QString& text ): QgsComposerLegendItem( text, QgsComposerLegendStyle::Symbol ), mSymbol( nullptr ) -{ -} - -QgsComposerSymbolItem::QgsComposerSymbolItem( const QIcon& icon, const QString& text ): QgsComposerLegendItem( icon, text, QgsComposerLegendStyle::Symbol ), mSymbol( nullptr ) -{ -} - -QgsComposerSymbolItem::~QgsComposerSymbolItem() -{ - delete mSymbol; -} - -QStandardItem* QgsComposerSymbolItem::clone() const -{ - QgsComposerSymbolItem* cloneItem = new QgsComposerSymbolItem(); - *cloneItem = *this; - if ( mSymbol ) - { - cloneItem->setSymbol( mSymbol->clone() ); - } - return cloneItem; -} - -void QgsComposerSymbolItem::writeXml( QDomElement& elem, QDomDocument& doc ) const -{ - QDomElement vectorClassElem = doc.createElement( QStringLiteral( "VectorClassificationItemNg" ) ); - if ( mSymbol ) - { - QgsSymbolMap saveSymbolMap; - saveSymbolMap.insert( QStringLiteral( "classificationSymbol" ), mSymbol ); - QDomElement symbolsElem = QgsSymbolLayerUtils::saveSymbols( saveSymbolMap, QStringLiteral( "symbols" ), doc ); - vectorClassElem.appendChild( symbolsElem ); - } - vectorClassElem.setAttribute( QStringLiteral( "text" ), text() ); - vectorClassElem.setAttribute( QStringLiteral( "userText" ), userText() ); - elem.appendChild( vectorClassElem ); -} - -void QgsComposerSymbolItem::readXml( const QDomElement& itemElem, bool xServerAvailable ) -{ - if ( itemElem.isNull() ) - { - return; - } - - setText( itemElem.attribute( QStringLiteral( "text" ), QLatin1String( "" ) ) ); - setUserText( itemElem.attribute( QStringLiteral( "userText" ), QLatin1String( "" ) ) ); - QDomElement symbolsElem = itemElem.firstChildElement( QStringLiteral( "symbols" ) ); - if ( !symbolsElem.isNull() ) - { - QgsSymbolMap loadSymbolMap = QgsSymbolLayerUtils::loadSymbols( symbolsElem ); - //we assume there is only one symbol in the map... - QgsSymbolMap::iterator mapIt = loadSymbolMap.begin(); - if ( mapIt != loadSymbolMap.end() ) - { - QgsSymbol* symbolNg = mapIt.value(); - if ( symbolNg ) - { - setSymbol( symbolNg ); - if ( xServerAvailable ) - { - setIcon( QgsSymbolLayerUtils::symbolPreviewIcon( symbolNg, QSize( 30, 30 ) ) ); - } - } - } - } -} - -void QgsComposerSymbolItem::setSymbol( QgsSymbol* s ) -{ - delete mSymbol; - mSymbol = s; -} - -////////////////////QgsComposerRasterSymbolItem - -QgsComposerRasterSymbolItem::QgsComposerRasterSymbolItem(): QgsComposerLegendItem( QgsComposerLegendStyle::Symbol ) -{ -} - -QgsComposerRasterSymbolItem::QgsComposerRasterSymbolItem( const QString& text ): QgsComposerLegendItem( text, QgsComposerLegendStyle::Symbol ) -{ -} - -QgsComposerRasterSymbolItem::QgsComposerRasterSymbolItem( const QIcon& icon, const QString& text ): QgsComposerLegendItem( icon, text, QgsComposerLegendStyle::Symbol ) -{ -} - -QgsComposerRasterSymbolItem::~QgsComposerRasterSymbolItem() -{ -} - -QStandardItem* QgsComposerRasterSymbolItem::clone() const -{ - QgsComposerRasterSymbolItem* cloneItem = new QgsComposerRasterSymbolItem(); - *cloneItem = *this; - cloneItem->setLayerId( mLayerID ); - return cloneItem; -} - -void QgsComposerRasterSymbolItem::writeXml( QDomElement& elem, QDomDocument& doc ) const -{ - QDomElement rasterClassElem = doc.createElement( QStringLiteral( "RasterClassificationItem" ) ); - rasterClassElem.setAttribute( QStringLiteral( "layerId" ), mLayerID ); - rasterClassElem.setAttribute( QStringLiteral( "text" ), text() ); - rasterClassElem.setAttribute( QStringLiteral( "userText" ), userText() ); - rasterClassElem.setAttribute( QStringLiteral( "color" ), mColor.name() ); - elem.appendChild( rasterClassElem ); -} - -void QgsComposerRasterSymbolItem::readXml( const QDomElement& itemElem, bool xServerAvailable ) -{ - if ( itemElem.isNull() ) - { - return; - } - setText( itemElem.attribute( QStringLiteral( "text" ), QLatin1String( "" ) ) ); - setUserText( itemElem.attribute( QStringLiteral( "userText" ), QLatin1String( "" ) ) ); - setLayerId( itemElem.attribute( QStringLiteral( "layerId" ), QLatin1String( "" ) ) ); - setColor( QColor( itemElem.attribute( QStringLiteral( "color" ) ) ) ); - - if ( xServerAvailable ) - { - QPixmap itemPixmap( 20, 20 ); - itemPixmap.fill( mColor ); - setIcon( QIcon( itemPixmap ) ); - } -} - -////////////////////QgsComposerLayerItem - -QgsComposerLayerItem::QgsComposerLayerItem(): QgsComposerLegendItem( QgsComposerLegendStyle::Subgroup ) - , mShowFeatureCount( false ) -{ -} - -QgsComposerLayerItem::QgsComposerLayerItem( const QString& text ): QgsComposerLegendItem( text, QgsComposerLegendStyle::Subgroup ) - , mShowFeatureCount( false ) -{ -} - -QgsComposerLayerItem::~QgsComposerLayerItem() -{ -} - -QStandardItem* QgsComposerLayerItem::clone() const -{ - QgsComposerLayerItem* cloneItem = new QgsComposerLayerItem(); - *cloneItem = *this; - cloneItem->setLayerId( mLayerID ); - return cloneItem; -} - -void QgsComposerLayerItem::writeXml( QDomElement& elem, QDomDocument& doc ) const -{ - QDomElement layerItemElem = doc.createElement( QStringLiteral( "LayerItem" ) ); - layerItemElem.setAttribute( QStringLiteral( "layerId" ), mLayerID ); - layerItemElem.setAttribute( QStringLiteral( "text" ), text() ); - layerItemElem.setAttribute( QStringLiteral( "userText" ), userText() ); - layerItemElem.setAttribute( QStringLiteral( "showFeatureCount" ), showFeatureCount() ); - layerItemElem.setAttribute( QStringLiteral( "style" ), QgsComposerLegendStyle::styleName( mStyle ) ); - writeXmlChildren( layerItemElem, doc ); - elem.appendChild( layerItemElem ); -} - -void QgsComposerLayerItem::readXml( const QDomElement& itemElem, bool xServerAvailable ) -{ - if ( itemElem.isNull() ) - { - return; - } - setText( itemElem.attribute( QStringLiteral( "text" ), QLatin1String( "" ) ) ); - setUserText( itemElem.attribute( QStringLiteral( "userText" ), QLatin1String( "" ) ) ); - setLayerId( itemElem.attribute( QStringLiteral( "layerId" ), QLatin1String( "" ) ) ); - setShowFeatureCount( itemElem.attribute( QStringLiteral( "showFeatureCount" ), QLatin1String( "" ) ) == QLatin1String( "1" ) ? true : false ); - setStyle( QgsComposerLegendStyle::styleFromName( itemElem.attribute( QStringLiteral( "style" ), QStringLiteral( "subgroup" ) ) ) ); - - //now call readXml for all the child items - QDomNodeList childList = itemElem.childNodes(); - QDomNode currentNode; - QDomElement currentElem; - QgsComposerLegendItem* currentChildItem = nullptr; - - int nChildItems = childList.count(); - for ( int i = 0; i < nChildItems; ++i ) - { - currentNode = childList.at( i ); - if ( !currentNode.isElement() ) - { - continue; - } - - currentElem = currentNode.toElement(); - QString elemTag = currentElem.tagName(); - if ( elemTag == QLatin1String( "VectorClassificationItem" ) ) - { - continue; // legacy - unsupported - } - else if ( elemTag == QLatin1String( "VectorClassificationItemNg" ) ) - { - currentChildItem = new QgsComposerSymbolItem(); - } - else if ( elemTag == QLatin1String( "RasterClassificationItem" ) ) - { - currentChildItem = new QgsComposerRasterSymbolItem(); - } - else - { - continue; //unsupported child type - } - currentChildItem->readXml( currentElem, xServerAvailable ); - appendRow( currentChildItem ); - } -} - -void QgsComposerLayerItem::setDefaultStyle( double scaleDenominator, const QString& rule ) -{ - // set default style according to number of symbols - QgsVectorLayer* vLayer = qobject_cast( QgsProject::instance()->mapLayer( layerId() ) ); - if ( vLayer ) - { - QgsFeatureRenderer* renderer = vLayer->renderer(); - if ( renderer ) - { - QPair symbolItem = renderer->legendSymbolItems( scaleDenominator, rule ).value( 0 ); - if ( renderer->legendSymbolItems( scaleDenominator, rule ).size() > 1 || !symbolItem.first.isEmpty() ) - { - setStyle( QgsComposerLegendStyle::Subgroup ); - } - else - { - // Hide title by default for single symbol - setStyle( QgsComposerLegendStyle::Hidden ); - } - } - } -} - -////////////////////QgsComposerGroupItem - -QgsComposerGroupItem::QgsComposerGroupItem(): QgsComposerLegendItem( QgsComposerLegendStyle::Group ) -{ -} - -QgsComposerGroupItem::QgsComposerGroupItem( const QString& text ): QgsComposerLegendItem( text, QgsComposerLegendStyle::Group ) -{ -} - -QgsComposerGroupItem::~QgsComposerGroupItem() -{ -} - -QStandardItem* QgsComposerGroupItem::clone() const -{ - QgsComposerGroupItem* cloneItem = new QgsComposerGroupItem(); - *cloneItem = *this; - return cloneItem; -} - -void QgsComposerGroupItem::writeXml( QDomElement& elem, QDomDocument& doc ) const -{ - QDomElement layerGroupElem = doc.createElement( QStringLiteral( "GroupItem" ) ); - // text is always user text, but for forward compatibility for now write both - layerGroupElem.setAttribute( QStringLiteral( "text" ), text() ); - layerGroupElem.setAttribute( QStringLiteral( "userText" ), userText() ); - layerGroupElem.setAttribute( QStringLiteral( "style" ), QgsComposerLegendStyle::styleName( mStyle ) ); - writeXmlChildren( layerGroupElem, doc ); - elem.appendChild( layerGroupElem ); -} - -void QgsComposerGroupItem::readXml( const QDomElement& itemElem, bool xServerAvailable ) -{ - if ( itemElem.isNull() ) - { - return; - } - // text is always user text but for backward compatibility we read also text - QString userText = itemElem.attribute( QStringLiteral( "userText" ), QLatin1String( "" ) ); - if ( userText.isEmpty() ) - { - userText = itemElem.attribute( QStringLiteral( "text" ), QLatin1String( "" ) ); - } - setText( userText ); - setUserText( userText ); - - setStyle( QgsComposerLegendStyle::styleFromName( itemElem.attribute( QStringLiteral( "style" ), QStringLiteral( "group" ) ) ) ); - - //now call readXml for all the child items - QDomNodeList childList = itemElem.childNodes(); - QDomNode currentNode; - QDomElement currentElem; - QgsComposerLegendItem* currentChildItem = nullptr; - - int nChildItems = childList.count(); - for ( int i = 0; i < nChildItems; ++i ) - { - currentNode = childList.at( i ); - if ( !currentNode.isElement() ) - { - continue; - } - - currentElem = currentNode.toElement(); - QString elemTag = currentElem.tagName(); - - if ( elemTag == QLatin1String( "GroupItem" ) ) - { - currentChildItem = new QgsComposerGroupItem(); - } - else if ( elemTag == QLatin1String( "LayerItem" ) ) - { - currentChildItem = new QgsComposerLayerItem(); - } - else - { - continue; //unsupported child item type - } - currentChildItem->readXml( currentElem, xServerAvailable ); - - QList itemsList; - itemsList << currentChildItem << new QgsComposerStyleItem( currentChildItem ); - appendRow( itemsList ); - } -} - -QgsComposerStyleItem::QgsComposerStyleItem(): QStandardItem() -{ -} - -QgsComposerStyleItem::QgsComposerStyleItem( QgsComposerLegendItem *item ): QStandardItem() -{ - setData( QgsComposerLegendStyle::styleLabel( item->style() ), Qt::DisplayRole ); -} - -QgsComposerStyleItem::~QgsComposerStyleItem() -{ -} diff --git a/src/core/composer/qgscomposerlegenditem.h b/src/core/composer/qgscomposerlegenditem.h deleted file mode 100644 index 6002de3ab61..00000000000 --- a/src/core/composer/qgscomposerlegenditem.h +++ /dev/null @@ -1,197 +0,0 @@ -/*************************************************************************** - qgscomposerlegenditem.h - description - ------------------------ - begin : May 2010 - copyright : (C) 2010 by Marco Hugentobler - email : marco dot hugentobler at sourcepole dot ch - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#ifndef QGSCOMPOSERLEGENDITEM_H -#define QGSCOMPOSERLEGENDITEM_H - -#include "qgscomposerlegendstyle.h" -#include -class QDomDocument; -class QDomElement; - -/** \ingroup core - * Abstract base class for the legend item types -*/ -class CORE_EXPORT QgsComposerLegendItem: public QStandardItem -{ - public: - QgsComposerLegendItem( QgsComposerLegendStyle::Style s = QgsComposerLegendStyle::Undefined ); - QgsComposerLegendItem( const QString& text, QgsComposerLegendStyle::Style s = QgsComposerLegendStyle::Undefined ); - QgsComposerLegendItem( const QIcon& icon, const QString& text, QgsComposerLegendStyle::Style s = QgsComposerLegendStyle::Undefined ); - virtual ~QgsComposerLegendItem(); - - enum ItemType - { - GroupItem = QStandardItem::UserType, - LayerItem, - SymbologyV2Item, - RasterSymbolItem, - StyleItem - }; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const = 0; - - /** Read item content from xml - @param itemElem item to read from - @param xServerAvailable Read item icons if true (QIcon needs x-server)*/ - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ) = 0; - - virtual ItemType itemType() const = 0; - virtual QStandardItem* clone() const override = 0; - - QgsComposerLegendStyle::Style style() const { return mStyle; } - void setStyle( QgsComposerLegendStyle::Style style ) { mStyle = style; } - - // Get text defined by user - virtual QString userText() const { return mUserText; } - // Set text defined by user - virtual void setUserText( const QString & text ) { mUserText = text; } - - protected: - void writeXmlChildren( QDomElement& elem, QDomDocument& doc ) const; - - QgsComposerLegendStyle::Style mStyle; - - // User defined text - QString mUserText; -}; - - -class QgsSymbol; - -/** \ingroup core - * \class QgsComposerSymbolItem - */ -class CORE_EXPORT QgsComposerSymbolItem: public QgsComposerLegendItem -{ - public: - QgsComposerSymbolItem(); - QgsComposerSymbolItem( const QString& text ); - QgsComposerSymbolItem( const QIcon& icon, const QString& text ); - virtual ~QgsComposerSymbolItem(); - - virtual QStandardItem* clone() const override; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const override; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ) override; - - //! Set symbol (takes ownership) - void setSymbol( QgsSymbol* s ); - QgsSymbol* symbol() {return mSymbol;} - - ItemType itemType() const override { return SymbologyV2Item; } - - private: - QgsSymbol* mSymbol; -}; - -/** \ingroup core - * \class QgsComposerRasterSymbolItem - */ -class CORE_EXPORT QgsComposerRasterSymbolItem : public QgsComposerLegendItem -{ - public: - QgsComposerRasterSymbolItem(); - QgsComposerRasterSymbolItem( const QString& text ); - QgsComposerRasterSymbolItem( const QIcon& icon, const QString& text ); - virtual ~QgsComposerRasterSymbolItem(); - - virtual QStandardItem* clone() const override; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const override; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ) override; - - void setLayerId( const QString& id ) { mLayerID = id; } - QString layerId() const { return mLayerID; } - ItemType itemType() const override { return RasterSymbolItem; } - - void setColor( const QColor& c ) { mColor = c; } - QColor color() const { return mColor; } - - private: - QString mLayerID; - QColor mColor; -}; - -/** \ingroup core - * \class QgsComposerLayerItem - */ -class CORE_EXPORT QgsComposerLayerItem : public QgsComposerLegendItem -{ - public: - QgsComposerLayerItem(); - QgsComposerLayerItem( const QString& text ); - virtual ~QgsComposerLayerItem(); - virtual QStandardItem* clone() const override; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const override; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ) override; - - ItemType itemType() const override { return LayerItem; } - - /** - * Sets the associated layer ID. - * @see layerId() - */ - void setLayerId( const QString& id ) { mLayerID = id; } - - /** - * Returns the ID of the associated layer. - * @see setLayerId() - */ - QString layerId() const { return mLayerID; } - - void setShowFeatureCount( bool show ) { mShowFeatureCount = show; } - bool showFeatureCount() const { return mShowFeatureCount; } - - void setDefaultStyle( double scaleDenominator = -1, const QString& rule = "" ); - - private: - QString mLayerID; - // Show vector feature counts - bool mShowFeatureCount; -}; - -/** \ingroup core - * \class QgsComposerGroupItem - */ -class CORE_EXPORT QgsComposerGroupItem: public QgsComposerLegendItem -{ - public: - QgsComposerGroupItem(); - QgsComposerGroupItem( const QString& text ); - virtual ~QgsComposerGroupItem(); - virtual QStandardItem* clone() const override; - - virtual void writeXml( QDomElement& elem, QDomDocument& doc ) const override; - virtual void readXml( const QDomElement& itemElem, bool xServerAvailable = true ) override; - - ItemType itemType() const override { return GroupItem; } -}; - -/** \ingroup core - * \class QgsComposerStyleItem - */ -class CORE_EXPORT QgsComposerStyleItem: public QStandardItem -{ - public: - QgsComposerStyleItem(); - QgsComposerStyleItem( QgsComposerLegendItem *item ); - ~QgsComposerStyleItem(); -}; - -#endif // QGSCOMPOSERLEGENDITEM_H diff --git a/src/core/qgslegendrenderer.cpp b/src/core/qgslegendrenderer.cpp index 604664c2f4d..90f7c68bec8 100644 --- a/src/core/qgslegendrenderer.cpp +++ b/src/core/qgslegendrenderer.cpp @@ -15,7 +15,7 @@ #include "qgslegendrenderer.h" -#include "qgscomposerlegenditem.h" +#include "qgscomposerlegendstyle.h" #include "qgslayertree.h" #include "qgslayertreemodel.h" #include "qgslayertreemodellegendnode.h" diff --git a/src/core/qgslegendrenderer.h b/src/core/qgslegendrenderer.h index 6c7682facd2..92519e0bc83 100644 --- a/src/core/qgslegendrenderer.h +++ b/src/core/qgslegendrenderer.h @@ -66,8 +66,7 @@ class CORE_EXPORT QgsLegendRenderer private: /** Nucleon is either group title, layer title or layer child item. - * Nucleon is similar to QgsComposerLegendItem but it does not have - * the same hierarchy. E.g. layer title nucleon is just title, it does not + * E.g. layer title nucleon is just title, it does not * include all layer subitems, the same with groups. */ class Nucleon diff --git a/src/core/qgslegendsettings.h b/src/core/qgslegendsettings.h index b8347574592..56d21e47092 100644 --- a/src/core/qgslegendsettings.h +++ b/src/core/qgslegendsettings.h @@ -23,8 +23,6 @@ class QRectF; #include "qgscomposerlegendstyle.h" -class QgsComposerLegendItem; - /** \ingroup core * @brief The QgsLegendSettings class stores the appearance and layout settings diff --git a/src/server/qgswfsserver.cpp b/src/server/qgswfsserver.cpp index 73fea062fed..ece2d568748 100644 --- a/src/server/qgswfsserver.cpp +++ b/src/server/qgswfsserver.cpp @@ -32,7 +32,6 @@ #include "qgsvectorlayer.h" #include "qgsmapserviceexception.h" #include "qgssymbol.h" -#include "qgscomposerlegenditem.h" #include "qgsrequesthandler.h" #include "qgsogcutils.h" #include "qgsaccesscontrol.h" diff --git a/src/server/qgswfsserver.h b/src/server/qgswfsserver.h index 596a17fdb82..60b3e12bcc5 100644 --- a/src/server/qgswfsserver.h +++ b/src/server/qgswfsserver.h @@ -28,8 +28,6 @@ #include "qgswfsprojectparser.h" class QgsCoordinateReferenceSystem; -class QgsComposerLayerItem; -class QgsComposerLegendItem; class QgsComposition; class QgsFields; class QgsMapLayer; diff --git a/src/server/qgswmsserver.h b/src/server/qgswmsserver.h index 3c95ae9926e..b8256a0e411 100644 --- a/src/server/qgswmsserver.h +++ b/src/server/qgswmsserver.h @@ -28,8 +28,6 @@ class QgsCapabilitiesCache; class QgsCoordinateReferenceSystem; -class QgsComposerLayerItem; -class QgsComposerLegendItem; class QgsComposition; class QgsConfigParser; class QgsFeature; diff --git a/src/ui/composer/qgscomposerlegenditemdialogbase.ui b/src/ui/composer/qgscomposerlegenditemdialogbase.ui deleted file mode 100644 index 3ed1cce56cd..00000000000 --- a/src/ui/composer/qgscomposerlegenditemdialogbase.ui +++ /dev/null @@ -1,81 +0,0 @@ - - - QgsComposerLegendItemDialogBase - - - - 0 - 0 - 360 - 91 - - - - Legend item properties - - - - - - Item text - - - mItemTextLineEdit - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - mItemTextLineEdit - buttonBox - - - - - buttonBox - accepted() - QgsComposerLegendItemDialogBase - accept() - - - 257 - 76 - - - 157 - 274 - - - - - buttonBox - rejected() - QgsComposerLegendItemDialogBase - reject() - - - 325 - 76 - - - 286 - 274 - - - - - diff --git a/tests/src/core/testqgslegendrenderer.cpp b/tests/src/core/testqgslegendrenderer.cpp index 012dfa01901..70f97117f72 100644 --- a/tests/src/core/testqgslegendrenderer.cpp +++ b/tests/src/core/testqgslegendrenderer.cpp @@ -18,7 +18,6 @@ #include "qgsapplication.h" #include "qgscategorizedsymbolrenderer.h" -#include "qgscomposerlegenditem.h" #include "qgsfontutils.h" #include "qgslayertree.h" #include "qgslayertreeutils.h"