refresh button

git-svn-id: http://svn.osgeo.org/qgis/trunk@3085 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
rabla 2005-04-05 12:22:03 +00:00
parent 17a65f17f2
commit 905478dafe
7 changed files with 60 additions and 0 deletions

View File

@ -199,6 +199,12 @@ void QgsComposer::zoomOut(void)
mView->repaintContents();
}
void QgsComposer::refresh(void)
{
mComposition->refresh();
mView->repaintContents();
}
void QgsComposer::print(void)
{
/* Uff!!! It is impossible to set a custom page size for QPrinter.

View File

@ -68,6 +68,9 @@ public:
//! Zoom out
void zoomOut();
//! Refresh view
void refresh();
//! Return pointer to map canvas
QgsMapCanvas *mapCanvas( void );

View File

@ -245,6 +245,7 @@
<action name="actionZoomIn"/>
<action name="actionZoomOut"/>
<action name="actionZoomFullExtent"/>
<action name="actionRefresh"/>
</toolbar>
<toolbar dock="2">
<property name="name">
@ -441,6 +442,17 @@
<string>Add new scalebar</string>
</property>
</action>
<action>
<property name="name">
<cstring>actionRefresh</cstring>
</property>
<property name="iconSet">
<iconset>image13</iconset>
</property>
<property name="text">
<string>Refresh view</string>
</property>
</action>
</actions>
<images>
<image name="image0">
@ -482,6 +494,9 @@
<image name="image12">
<data format="XPM.GZ" length="2365">789c9dd4c96e1b391006e0bb9f42306f4650e9269b1b0673c8bedab1b23a0972282eed557662cb499cc1bcfb74ffd5f09c222b0605481faac82e16d9babb35dbdbdd9e6dddddb858f2f230cff2019fcfb6cae56271f5f9cbdfff6c6c6a3d1b3e3ecef4e69d8dcdf97296673b67a775843a1aa01ad3b886e10cb38e06717a0727c3b683bbc969f2155cdaae95f50e27db36c33d5ca34b123f817bcbbe60fe5b71a8c9217e3cba6d5c8d065e887d65c4e9056c8ce902fc5cec42c0f3c888439f3cfc461cfdf4fc0378a85663beda87add7519e5f611f63ea31ff191cfdb002e205aedec508a7d1ba1de64b3f7ec14e27836693863d3759f64370669d25ff1e5c8c36b29f0bb8379d49308f36cd38305fec8265ac47164eb6751257e210d822fe7a74d772ca385ff2b0bd8e3f8539f42ccf43bfbb6cb5957a225cb8cfd2df9f700d95258ef31db2d9b5700bbbd415d4430ef6a14ce787fedae4862dc001ae9193f4ab11275fc4e7a39dbe8ee3bc5ce7a293fb89fe3b3b58ea9bc3399522fdc579b9e2fb20f70de7efaad75eead91ded4daa53fe27d8e5a648fc091cb39e7c0ab3cf41f6877e87661cf06358675be4febd874deca2d4f703eeb22bb27fbc0fc1b19beeeb1e3c2c5fe4bc3ec235e722f5df87fb1858fafd4a9cb9c8f98d2fb78a3ada28f35fc2991d4bbfbec1b53455eafd3e9a870b58653dbcff6c39b1dcff47b0cfb1c87dc1fbcd21f519f79f3ec07c3dff6c746a867aa49f3b705b42155fc23ad769fff8ff49b698a97ebcff29143bd5f715e652aaf4ffe1e8dc165b643f0fe0ae74d3fc6db8af5dcdf267b7feb84d3ea971cc97abbfc75fb75b7f588145377dff9f7fd3f8ddfa53adbff16dd7bf5dff2951a642957ada5f2bff800ee9888ee984166be59fd2197da56f744e176be52fe992bed30ffa4957f48beeadcaa7fbf4801ed2237a4c4fe8293da3e7f46265fe4bdaa61d7a45bb34a7d7f486ded2bb95f9efe903edd147fa440db5a4c950b732df92234f81e2709c4ab14a2adfb4dff952155555aff6d5813a54476be41f0fd9bd3a5eef7c87fc13b518c6c9baf9378f3fcefff7af8dff00e41c7297</data>
</image>
<image name="image13">
<data format="XPM.GZ" length="5922">789c6d58476f1c4b0ebefb5708e6cd58f0f5746e2cf6a060e56cc996b5d803c9aa56cea3f8b0ff7d6b484e5b3358950de913592c6672f4d7b78593fd9d856f7f7d791ad3f84216e49c1e17be85e79b9bf77fffe75f7f7ff99ae70be95f91a56f5ffff1e5ebc178411676ef6ee304807c02f8f4199c7f02dc7dbef39200d4d9e44cb0ac282e2747f195e26a72949f27b8ea2647253f2a7d34392afc70965f1457c5e428fffadc7b9b8a8bc951fc3cf7dede041779dd8ae87d70dc057d0f4f547e9c1cc5674a6fea824dffadd9f76077563eb773ef3dcfd97fa0f26972145fcef18f26b8ecebbc357b37e6fc7130c79fcfd943833daa1ff68e1b51ffcab6cae78a9a46f178561e6eccfa43f6555f991ca58fe7e8a8b8aa6bd1f77849f9eb3a6fecbd6ba57775c5b5d29bb978aecfc5eb65e057fde86ace3e9ebe2f169f38d059f9d59fe5a82e48e5c1ebc01f94ff62567f307fb5e9bd56e961ee3d19b0dd5ff37ca8d9de7f505c24fbcd9f3bfa7e96c4f56aafe67359d74567f27fb97d35ab7f6067f67d7952fe2ef1ab7f68d1eda9c9fc7931c853ccea8fb2ac2bb397341fcb7cca4fa78a937ea4fab1c6b388c93f266f6ff097c553ef177d259d3604d89ff3c7e55cbddccffa1f9f07badd0f03b6fcf831f05bfe4fe3e3fe834c7199f255eb05c6b374567f2473a6f956bbff2bd1f77073f67d5c1df2dfde03e7777da198b3ef6a565fb9717d5c5fbc9bb5571e077d35bfe57cc096bf17c3fb16af87c11ecb879fb3f20066fd43d773f93ec5e4f57d3b4ba78f597be4bbebd3993ca6411fd37f6d968e374ee760fde0c5b104b36767785ff38d97fdbe189655cba726b77a8137f7b7983cd8f67e21161f317a6832b17ad9733a7b7f599ea5e3d41ef6f79fac1e9b225abc7f5b7e374d34ffbc0ed8eafdc0f2bb6982e967f55137146cfeac0cd8fca7fe2a631383c5f75dfb5bd396e60fd0fe57b60d07f51f4cfb511f2c5e5b536cfab0d54bdd74bdcd0b71fda9d77cc763eb07cdc8f421cba72ed1557f7a771c7bd58fcc9fd4f4bdda43663f0fd8fccb6dd6abffc0fc254d1134ff181cf72eefc4703b327eb6fe1edadc3059bdf56dd1dbf03fb27ed754e61fbeb3fed3967e3f58ff692bd72733ff26baf18fcd7f6d6beff3b3f5bf2916cdef92523c34be1c0d27bad593c52bb455b4fa29076cf6e8fcaeb2967bb59774be56792be67f7cb379d57234fb8e1d87def24beba96abb91bf77eb3837fd70d9e679db7b7c2ac3896ef3a8735cbafd9adf5568fb68f8c870926ff35df3bb8ae9be61ada7aa9f62d27caeb3aef5786a3ed4a32e8b569f378e7397df3bae7ba5a3e64b9d77a368f6d8fe92a68dd9cfb6bf955de7f6dabe56276cf275dfa8db846ddee8bc4fc3ac89964fb6cf48e7f9c7eacf3a74ade987ef8ea3c913cd97264d33ab4fda77ccc6cfda1f9b32b537950f5b8e836154ff355517a3f537ed67a99cdc5fa2f16b288d7f8d07e78669e4f7971c57668fe83c4dc322b37e42078e47aecf2fc7b9dd17cdaf764455b4fea0f5dce603ee1dd78eb51eda628aa177dc99ff45f3bb4d096f74d4fed4d6249e9f9a6f2d1145db9fb49fa46121a69fe87c6903b97f44e7651b13b67d42eba5cb2846ed375c19e6ccea47d41fdd887abb4f8d61cea3cd17ddd7ba3cd14d7fddc7bb820bcf37f57f572679a6ff87e3dce2436a5f57257e93affda8ebb8f2fcd5faea688a41fb59c75c9bfef0e8b8b1fa46b5af0b095b7cb4bebbc89dd7bfe64fd727bae5abc697b244b77edf3966e7d77e44236e9dffce7167f690be4f79e2b7fa281c8bdfd7fd990aae7c3e548ea7fcda5fa9e468fe02eda7d4246cfed0fc219291c583345f482437f9dc3b2e2dbf71c7716dfd94b49f732695cbd7f7b816b2f881d60b37d27a3de93ec6695b70bae63777e2f9c699e3e0fd6867c0561f3a1f9925f8fd0fc7b1b7cf47ea7f0ed2bbbc728aed3edafb31648659e3cd7d181906cd3f1925f5cc3e341c72934f3f1c97de9f747e481e0ad7f774c0f67940f74329a674d07e256dc83dbf961cd76ecfa2e3c6f5d1f84a3760ddef844363fe66ed6f22c1e73968ff94183c3fe1d671e7f2b55f872c783ed2a6639f47a0fd258c4270799a8f210fd1f7856cc056df3a2f4231c5a0fd205431f37d63ddf1c8e761e9d8e715e87e199a144ecd37b8379ce826ef7cc056ffda8f421bbcffa2ce93644de1efbd3aae7aa3ebe7e340713affed3d49fcb61fdd38f679c51703b67e6dfaa66e66f144adbff47aedfed07a8b596c4d3e1e0ed8e46d39ee4c1f52fbe228d6de5f555ecc13ddee6b7dc6224ef707bb5f469f7f3872ec74d4f912d3f6e1b819b0d5bfee1b3195bbd78ffa23a66a72ffe87e10fbbe70fd1e066cf1d1fedd8f12b6797ae0b8323aeafc4cd21c83f6b7c45dfb7eb5e9b8b1f90c9a0f89bbb1f758f33b71b73ebfb71d77bebfe87e92b85bd7efc5b1d341fb7f42e4fbcfe1802d9fec3ea763b8752cfe9ee6fb04d97e49da8f12720cc78ea3ef9f9a8f13e4fb90e67faf5f137c30fe7c109090513060c41ecff0fc33759e1f2ff012aff01a6fd2b9c53bbcc7077cc4a7ffc78f637cc6177cc5377cc70f5cc4255cc615fc8eabb886eb76e70f3f6ee0266ee136eee02eeee17e3a0778883ff0088ff127fec293cffc49f626fec653cc708439165862853536e9b4d801020001834cf92140841ecee01c2ee012aee01a6ee016ee12be870778842718c333bc183fbcc21bbcc3072cc2122cc30a7c87555883f58437d2ff45d8842dd8861dd855ffeec13e1cc021fc80a3c4bd3a9c63f809bff49cc06f38850cacbfe650400915d4d0409bf83a4202f899161826a1d408a8a7333aa70bbad4785fd135ddd02dddd13dacd2033da69f27e789c6f44c2fe977aff446eff4418b9aef016f688996698592deb44a6bb49ece066dd29669a6fcdbb443bb03ff1eedd3011d26da0f3aa263faf9c70efa95f84fe877e23f55fe88b794d188722a12b5a48a6a6a3ef1b7d4313230b1d55f8f779cc601a786c0677cce177cc9577c3de5e71bbee53bbee7077e54fe33bce7271ef333bff0abf2acf1db1ff9fcce1f89fac48bbca4fce7f8c0cbbcc2df7995d7789d3794eb9c37798bb7d3f71dde4dd43ddee7038b2f1ff20f3ee263fe095bfc8b4ff8379f72c669a3e3824bae12e5886b6eecef4f89bf1314480b258b7da5e6abdf7b394b3f73a29ccb855ccad534dfe44aaee5466ee54eeee5e1d3b94fbfb995477992b13cdbdfbb26fcdcf1a1bcc8abbcc9bb7cc8a22ca5b3987e7a97e5b4a95cc81876b99bad2f594919bb03195dc877594d672d797091f7655d366473c23dcb0f022fb225dbb223bbb247a7ccfcc84bb22f077208e2f5fbdf7f7ef91fffed86d7</data>
</image>
</images>
<connections>
<connection>
@ -562,6 +577,12 @@
<receiver>QgsComposerBase</receiver>
<slot>addScalebar()</slot>
</connection>
<connection>
<sender>actionRefresh</sender>
<signal>activated()</signal>
<receiver>QgsComposerBase</receiver>
<slot>refresh()</slot>
</connection>
</connections>
<slots>
<slot>fileNew()</slot>
@ -581,6 +602,7 @@
<slot>image()</slot>
<slot>svg()</slot>
<slot>addScalebar()</slot>
<slot>refresh()</slot>
</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>

View File

@ -525,6 +525,11 @@ bool QgsComposerMap::selected( void )
return mSelected;
}
void QgsComposerMap::setCacheUpdated ( bool u )
{
mCacheUpdated = u;
}
double QgsComposerMap::scale ( void ) { return mScale; }
QWidget *QgsComposerMap::options ( void )

View File

@ -146,6 +146,9 @@ public slots:
// Called if map canvas has changed
void mapCanvasChanged ( );
// Set cache outdated
void setCacheUpdated ( bool u = false );
private:
// Pointer to composition

View File

@ -545,6 +545,22 @@ double QgsComposition::viewScale ( void )
return scale;
}
void QgsComposition::refresh()
{
// TODO add signals to map canvas
for (std::list < QgsComposerItem * >::iterator it = mItems.begin(); it != mItems.end(); ++it) {
QgsComposerItem *ci = (*it);
if ( typeid (*ci) == typeid(QgsComposerMap) ) {
QgsComposerMap *cm = dynamic_cast<QgsComposerMap*>(ci);
cm->setCacheUpdated(false);
} else if ( typeid (*ci) == typeid(QgsComposerVectorLegend) ) {
QgsComposerVectorLegend *vl = dynamic_cast<QgsComposerVectorLegend*>(ci);
vl->recalculate();
}
}
}
int QgsComposition::id ( void ) { return mId; }
QgsComposer *QgsComposition::composer(void) { return mComposer; }

View File

@ -158,6 +158,11 @@ public:
/** \brief Set tool */
void setTool ( Tool tool );
/** Refresh. Refresh objects which are not updated automaticaly, e.g. map object does not know
* if a layer was switched on/off. Later should be substituted by appropriate signals
* se by map canvas */
void refresh();
/** \brief Canvas scale */
int scale (void);