From 3f9972d2fe8d50b81f6126f1128ce823c81df4e5 Mon Sep 17 00:00:00 2001 From: isn Date: Fri, 3 Nov 2017 16:42:36 +0300 Subject: [PATCH] refs #1323 --- src/HYDROGUI/HYDROGUI_DataObject.cxx | 38 ++++++++++++++++++---- src/HYDROGUI/HYDROGUI_Module.cxx | 13 +++++++- src/HYDROGUI/HYDROGUI_Operations.cxx | 2 +- src/HYDROGUI/resources/HYDROGUI_images.ts | 12 +++++-- src/HYDROGUI/resources/icon_sumb_16.png | Bin 0 -> 704 bytes src/HYDROGUI/resources/icon_unsumb_16.png | Bin 0 -> 809 bytes 6 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 src/HYDROGUI/resources/icon_sumb_16.png create mode 100644 src/HYDROGUI/resources/icon_unsumb_16.png diff --git a/src/HYDROGUI/HYDROGUI_DataObject.cxx b/src/HYDROGUI/HYDROGUI_DataObject.cxx index 0153dcbd..181c591b 100644 --- a/src/HYDROGUI/HYDROGUI_DataObject.cxx +++ b/src/HYDROGUI/HYDROGUI_DataObject.cxx @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include @@ -33,6 +35,7 @@ #include #include +#include HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, Handle(HYDROData_Entity) theData, @@ -143,6 +146,15 @@ QPixmap HYDROGUI_DataObject::icon( const int theId ) const { QString anIcon; Handle(HYDROData_Entity) aDataObject = modelObject(); + Handle(HYDROData_Object) anObject; + Handle(HYDROData_ArtificialObject) anAObject = Handle( HYDROData_ArtificialObject )::DownCast(aDataObject); + Handle(HYDROData_NaturalObject) aNObject = Handle( HYDROData_NaturalObject )::DownCast(aDataObject); + + if (!anAObject.IsNull()) + anObject = anAObject; + if (!aNObject.IsNull()) + anObject = aNObject; + if( aDataObject.IsNull() ) { anIcon = QObject::tr( "HYDRO_TYPE0_ICO" ); // KIND_UNKNOWN @@ -162,15 +174,29 @@ QPixmap HYDROGUI_DataObject::icon( const int theId ) const if ( !aFatherObj.IsNull() ) anObjectKind = aFatherObj->GetKind(); } - else if ( anObjectKind == 5 ) + else if ( !anObject.IsNull() ) { - Handle(HYDROData_ImmersibleZone) anImmZone = Handle(HYDROData_ImmersibleZone)::DownCast( aDataObject ); - IsUnsImmZone = !anImmZone->IsSubmersible(); + bool IsSubm = anObject->IsSubmersible(); + QString anIcon1 = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( anObjectKind ).toLatin1() ); + QString anIcon2; + if (IsSubm) + anIcon2 = QObject::tr( QString("HYDRO_SUBMERSIBLE16_ICO").toLatin1()); + else + anIcon2 = QObject::tr( QString("HYDRO_UNSUBMERSIBLE16_ICO").toLatin1()); + + QPixmap qpm1 = aResMgr->loadPixmap( "HYDRO", anIcon1 ); + QPixmap qpm2 = aResMgr->loadPixmap( "HYDRO", anIcon2 ); + QPixmap qpmD(32,16); + qpmD.fill(QColor(0,0,0)); + QPainter painter; + painter.begin(&qpmD); + painter.drawPixmap(0, 0, qpm1); + painter.drawPixmap(16, 0, qpm2); + painter.end(); + return qpmD; } - if (!IsUnsImmZone) - anIcon = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( anObjectKind ).toLatin1() ); else - anIcon = QObject::tr( QString("HYDRO_%1TYPE5U_ICO").arg( aNeedUpdate ).toLatin1() ); //icon fot unsumb imm zone + anIcon = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( anObjectKind ).toLatin1() ); } return aResMgr->loadPixmap( "HYDRO", anIcon ); diff --git a/src/HYDROGUI/HYDROGUI_Module.cxx b/src/HYDROGUI/HYDROGUI_Module.cxx index 619420b3..ab02eb40 100644 --- a/src/HYDROGUI/HYDROGUI_Module.cxx +++ b/src/HYDROGUI/HYDROGUI_Module.cxx @@ -49,6 +49,8 @@ #include #include #include +#include +#include #include @@ -818,7 +820,16 @@ void HYDROGUI_Module::contextMenuPopup( const QString& theClient, { if( aSeq.Size() > 0 ) { - Handle( HYDROData_Object ) anObject = Handle( HYDROData_Object )::DownCast( aSeq.First() ); + Handle( HYDROData_Entity ) aFirstEnt = aSeq.First(); + Handle(HYDROData_Object) anObject; + Handle(HYDROData_ArtificialObject) anAObject = Handle( HYDROData_ArtificialObject )::DownCast(aFirstEnt); + Handle(HYDROData_NaturalObject) aNObject = Handle( HYDROData_NaturalObject )::DownCast(aFirstEnt); + + if (!anAObject.IsNull()) + anObject = anAObject; + if (!aNObject.IsNull()) + anObject = aNObject; + if( !anObject.IsNull() ) { theMenu->addSeparator(); diff --git a/src/HYDROGUI/HYDROGUI_Operations.cxx b/src/HYDROGUI/HYDROGUI_Operations.cxx index 547c1a91..2a817f47 100644 --- a/src/HYDROGUI/HYDROGUI_Operations.cxx +++ b/src/HYDROGUI/HYDROGUI_Operations.cxx @@ -235,7 +235,7 @@ void HYDROGUI_Module::createActions() createAction( ProfileInterpolateId, "PROFILE_INTERPOLATE", "PROFILE_INTERPOLATE_ICO" ); createAction( SubmersibleId, "SUBMERSIBLE", "SUBMERSIBLE_ICO" ); - createAction( UnSubmersibleId, "UNSUBMERSIBLE", "UNSUBMERSIBLE_ICO" ); + createAction( UnSubmersibleId, "UNSUBMERSIBLE", "HYDRO_UNSUBMERSIBLE16_ICO" ); createAction( ExportToShapeFileID, "EXPORT_TO_SHAPE_FILE", "EXPORT_TO_SHAPE_FILE_ICO" ); createAction( PolylineExtractionId, "POLYLINE_EXTRACTION" ); diff --git a/src/HYDROGUI/resources/HYDROGUI_images.ts b/src/HYDROGUI/resources/HYDROGUI_images.ts index 22f80fc6..4a080b60 100644 --- a/src/HYDROGUI/resources/HYDROGUI_images.ts +++ b/src/HYDROGUI/resources/HYDROGUI_images.ts @@ -47,8 +47,16 @@ icon_submersible.png - UNSUBMERSIBLE_ICO - icon_imm_uns_zone.png + HYDRO_UNSUBMERSIBLE_ICO + icon_unsubmersible.png + + + HYDRO_UNSUBMERSIBLE16_ICO + icon_unsumb_16.png + + + HYDRO_SUBMERSIBLE16_ICO + icon_sumb_16.png diff --git a/src/HYDROGUI/resources/icon_sumb_16.png b/src/HYDROGUI/resources/icon_sumb_16.png new file mode 100644 index 0000000000000000000000000000000000000000..34a7914920f572365eedb87093c6e07f32d4894b GIT binary patch literal 704 zcmV;x0zdtUP)M!SZ!i%cFMD}9k-qLyj?7$ z5d2*|5C7jEo{I-L91cZMD5aEA-da@I)Kk}SJ)!0Sz-==pKZj$l2cwZmP19JGC4?Z1 zF{PB_IH~@eyP?M}df|Vx9N7iS!*{Q!s){jY5JD!CX?NQV-^r_dQ3-5;W3Y;CV0H29 zi>XwK0f5Su%TnV-jL}xR07A$v1)OERM zn9O`-pbGD8Y~PycgqB#?&DFwTVo(4O0u4B$BLK(~qdDZv>IMMhbb4yP>wb5YPACN+ z2EEf+b?fY&JfSN}4ikgsbmL&T?b6}0a)DQ~WT%tws@>rit;a*9dEGc&?b;_5HwH?( zYCYB7VtDs)X6pMorF1QorT;J!S2pKxR34xIsS{%~l3-L%UD_lLP5u~|h)V)r<}fcL zGJPY91L1f&XApzFm|g3C`E6`oe)=jNTbM5L@K~3U8qZ+>pa3QY z*?3k?=K)|Nr)NfQGb^zrueUsF_j?7tx4q)p3E$T>?aOK!0m2B~>kc-DoFku-h5_cp z)Q6EL005#W&P5jr=SE@*r8F*U;i#-`=#)}o7^_OQ@9|JD7z6-dSr!0lYH9|@XWAaV zZ+Y*3 m*a^QQ!;d0w#tN@W2>AmhKQG>k56DIU0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^MlX|MGF00NmwL_t(IPkmEeNRv?*{$^n5MWeznyb5hz zv~IEsld@^*MTA6>5<#hfKM-g_V!sek%_)6znkjV=kTW$LDM^eA_BV+mr_qkyg0erzg)Q%qYqATGxt%A#Wm4MEIE35QX=EFR1o@EBj;Hyh zBIsG>apX7I1#!X`z<|?_i{*D#6V#W?7}imb&g^GO&hulr$qp&t8wG`6eS#j zsc)Ku2Y!Yb`iu`(6Zo#1gu@>Qi7y%&R>%|H#fUAs2B+rn#ytnLv_uk+5W%^9S**6( ziKFHb_|Me|$IOXR)O1aXliLQq;N7PMJb3FBWf(}C4?FipMU>@EA_Vv|#?*doC`R@z z+lrWZgd_3@O74w{J#Q$A3#+pEv&4eIE!3Vp)M29k)v79hFe&rG0?hgt`F;00000NkvXXu0mjfpu1<6 literal 0 HcmV?d00001 -- 2.39.2