diff --git a/src/qgsattributetablebase.ui b/src/qgsattributetablebase.ui index 3c7ed2ee72e..f0cb86f11df 100644 --- a/src/qgsattributetablebase.ui +++ b/src/qgsattributetablebase.ui @@ -8,8 +8,8 @@ 0 0 - 610 - 392 + 645 + 719 @@ -19,78 +19,251 @@ unnamed - - 11 - - - 6 - - + - btnStopEditing - - - Stop editing + layout5 + + + unnamed + + + + btnStartEditing + + + Start editing + + + + + spacer3 + + + Horizontal + + + Expanding + + + + 31 + 20 + + + + + + btnStopEditing + + + Stop editing + + + + + spacer4 + + + Horizontal + + + Expanding + + + + 41 + 20 + + + + + + btnClose + + + + + + + &Close + + + Alt+C + + + - - - spacer3 - - - Horizontal - - - Expanding - - - - 31 - 20 - - - - - - btnClose - - - - - - - Close - - - - - spacer4 - - - Horizontal - - - Expanding - - - - 41 - 20 - - - - - - btnStartEditing - - - Start editing - - - + tblAttributes + + + 7 + 7 + 0 + 0 + + + + + + mAttributeEditingGroupBox + + + + 5 + 0 + 0 + 0 + + + + Attribute editing + + + + spacer6 + + + Horizontal + + + Expanding + + + + 171 + 20 + + + + + 453 + 43 + 171 + 20 + + + + + + mDeleteAttributeButton + + + + 217 + 31 + 230 + 45 + + + + &Delete attributes... + + + Alt+D + + + + + mAddAttributeButton + + + + 11 + 31 + 200 + 45 + + + + &Add attribute... + + + Alt+A + + + + + + mSelectedGroupBox + + + + 5 + 0 + 0 + 0 + + + + Selected + + + + spacer5 + + + Horizontal + + + Expanding + + + + 181 + 21 + + + + + 431 + 42 + 181 + 21 + + + + + + mSelectedToTopButton + + + + 11 + 30 + 202 + 45 + + + + Selected to &top + + + Alt+T + + + + + mInvertSelectionButton + + + + 219 + 30 + 206 + 45 + + + + &Invert selection + + + Alt+I + + @@ -114,7 +287,7 @@ - 789c6dd7596fe2481007f0f7f91468ea6db4aa0183016bb50f4980dc07b993d53e54db86900408671256fbddb7e9fa57ef461acd58cc4f5d5daebe6ccfcf1f95fb8bd3ca8f9fdf164b598ef24afe24f3ca8f62351e7ffef9d71f7f7ffb9e2495f037ab24df7ffbf6bdbface495b3e9a4dc82071e9464495eab063b75bd0ae7d1edaddd78eb7aadde48b2e035dc4e345e82633c3fc06d8da7beb95e0bfd0fe05cfbbb5eb4c62fcc88efaa1b55c4ef476b3de5d60d5f4f5dfb1fc0b99abbea4643f3710f6ea35e32633c5333fa1730ea25b5587e4acc8d909f6a6aeb4fb959dbdd216ce39f9871bf7b33f2cdb74e933455f35db484fe1db840be55b4de3fac4f2a69a6f1740117c8bf89d6f653731a368f90ba59d376be356b3b85f5682669063b18fdb913adf50ed4b1ff67b4de7f06637cd284513fdf98359edf608c974bb3ae379d9875bc721aadf5ecaa5b35ed2fcfc112ebd981313e9e446b7d6b18f9e4de8cfaaecd4d9dcf0375ab867a56d15acf144eb57e793163ffbcc219f663589f56bd857a651f4e31bf1f70a6fb4bc48cf5bf850b6d77efea764df3cb75b4b6efc029f6db3c5af387f96e39bbbf6c609b8f5d73ab1eda6bea760dfbffd0aced54856d3e46d11a7f05633c6e0fc679a09e19e73fb4b7fd785b2ef851edefa71ec3a95a1238d3f5e34db4ae570edbfc2dd519e68f76cd681fc2365f2d33f68383b1be8ecc187fd8ef6d3f7ed4b3636eeb7c9570a6e6215ca89de677560fbf98d11f16d4ef3ee1549f973432637ca84704ef0beb5f56d50bb3be5fdc47746897506fd6c830ff74696eeb7a3cc1a99ace609c47b7515b7d6e66467dcfd1fa3c6458b0bf1fcc381fef6a9768bd9446ebfb42f3e5b1be5773d6089ec1a8973f61ec775e9a311ef4b7fadc1b6cf51dc2257c19adf18519fbe3d68cf3a0e3cdad7e999a311fc77013f3f7048bae9f54cd583f89d6f6d48cfa3218eb4f8f66cce7b93ac7fc72781e8a5fcf2c0f3e82313f3c324b985f6aaa05fb951766ed4f77b0e0fc166ad7c4fbfdd28cf3f80c637cf41eadf381fb5bfdf21aade31b9bf1bee9a86d7c7261c6f7c0146e62fc617ec5af3fc6bf0f973a5e9e47ebf80ed52ed1fd263770539f4772079738df1f66b45fa9637d3d33eaebc2a84f9666e4cb609baf9b689d8fb519e7ef09b6fd19ce83f3f381f7d31e8c7c5237e37dde37e3f9d880ed3c70b4c6a766dcefd88cf7515b5d60ff73cb8cfce1f9e20a1faff37564d6e72d4dd4d65ffa663c3f3a66e47b34e3fba109633ea56bc6fb3833e37d19f6639ee625f6fb3a5acfc7b159f787e46a7f7feddf869b70c38cf93837637cd62ea8d7da05ef9b7ab47e1f5dc3d85f1cbe67f2c2eae10bb5cfa7f3f961d6f1c804c67cd38319df4b7b667c2f8ca3f5f95937e3797aaf2e139cffb0ff8ad4e2f94c1ddb77cda86711aded3333cee329dcd4f347e13c156561e773a52e9ba86768467c1b16b4b7cc58bff07d5c36cbc4e9f9de8105cfb72333ea39316b3c0da28bd09ec0565f38cfe59669c83f874bdc6fa81ee0fe1cbecf06be7f1ef2f597db3f4c2cec38f7d7af7e0b8dd2782e79c0437ee291bf9ef9855ffda5bf43ff67cc139efa3e6f31def18ce7bcf06d335ef28ad7fcce1ffcc91bdee15ddef3f11dee72aef1dcf371fb7cc0877cc4c77cc2a77cc6e77cc17dbee42bbee61bbee53bbee707a6102fbe8a053f72956b9c709d1b9c72935bdcf6bf1931110939caa960dd2f031e51c9551ad0909e7cc4889ee9855e694c139a7abfd18ce67c4f0bd6fd9efbfc555ad28ad6f44e1ff4499b70edd02eed5187bad4a37d9fff20e67fa6433ae2948ee9844efdddb7d7195ff9df9e8f3ef7592e7c7c1ff142977445d77443b731f71dddd383eff149235fd12355a94649ccff4a756a501a7337a9456dcac4a712f1f9bbe2427ed4eff30ffdfba6d0dcfebd3390a13c714346f22c2fbea24779f5f18bffea97b14c64bacd2d6f3293b92ce84196b2f25efbfb76e5fd6bfdf2c1e7b2cdbdf13d776457f6a4235de9c9be1c6ceb97c3aff5cb91cf772c27722a6772ee2bb990fe76c5fcef259dcb955cffbf7e7e911bc9fd7fa16f79222bb9e32bb9970779f4f7e86fe75faa52fb52ff5012a9d3da7f33f8ffd6628e4ea525ed109d39fe3aff7ec7ee39f275763873e21c555d2e235784b57df4d5bcfbfd517365cc3fe11b3770c3b096fef23dcf35d23db99154ddb37b71af6e8cfa0bb7dddf77e4dcd4bdf9b5ece2eaf8c8999bfbe8855bba955beb7e0ee7a5ebf75f2d5ca57b771feed36ddc8efff78472b7ebf65cc7757910cfd71be7ae47052de8c05f89bf16f1b7ef4ab7effcde7487168ff33ef0333bf0f7fad56f0fe7fd9fdfbffd0b74df4778 + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000045249444154789c8d95bf8b1d5514c73fbb19e40cbce81d788199b8911d48304f8cf0524876316016031ab14819acfcd1f8a34ba72222fe0b369a54a216a216c158049222645f131221c10928dc852cdc0bfb600e66dc39c58558ccee6ab0c93497c3650edff339df99efc28df51bec3e9f7cfee6438b8662800086431eab2e971c5f7cf4edc26eaf851beb37b8f8fd870f67d73c6fbf759e5c0427156a0149d0621414b4b414c8bf756a013033c2a6a7f19e181b564e56bc73eec2420630bbee39ffdec7b8aac61e2861ee294460046bd309860720a8079f13e60149156a8a2000d4076a48c6ec7ae09d73b070ead5f2e199d31f50d735b66534b161b254524f6bea25a14d1b90c2300146d080ce8de68ed06ed65832cc0ceb0ceb7bda79445c4f66117211ec81e1a3677a78c299d7a6281e3fbf0c29d29a2717a14d4231ca2153a6e386b8e1f1b355821a4e84f8a0a7c81c3e06324d86938a103d93c335aba76ba2cdb8152f42f2f83f1c39397d6a29b21cad846a6ca841b9acf45ca5bd721cd516b26127206464825aa05eaa583b3d41d33ab736bfc4d4b87d6d421b6b2c2992392c296e24544703d395801ad44b861e0d70b326a67687b9b148322401fb0dc3f37bfc0e9d1b572f4d089b15660a0866caea4b42b1dcd2dcac985daf910c34c1e458c0b21d97240320739960c0f1e74b7c77154b8166564357018ac8a0f4ccd9299313400afc8427dc9de0ca96fa88a2c9a88f2ab7b784227328b0a8c910725a3ca4488c10361e557ae69515565f9e528843cd58391d319478b7460d9c808c5b4068d3f0de229960f4149283192e1b188938c0583d3165edd4142742df298231fbd5e170f4095cc6c0fac880808cff30065a0bc8c86129df533a3d5a72eaec041941d006231034d0ce0bd4142c27ce0527a0dd4ee3341c8bbb8c498225a17413c0a80f3bd6ce55146284ee369622da790a27ac9d6da99604b29eb21cac276998b0c8dc207c97b1760dce0123a84b21a8a2ea310b80e2e781ca419f846a5c307d2360731d186730bb93ff9f714b4b1b05eb22c508ea9516498e1fbf51426cb87ca965fd879ae61ee41458eaa91cc838ec3116dc238c33924182e68e21638f594fb90cc7cf7ad67f7e8e9fbe2e201348cafaa58a76ab657a32a21a061f9b8139fc9ff208e37d470ebacfea675f80edfdc46dcf812ad26d1ba39171a0dec289903f39a77a26b1df751caa3bd2e2fd9da6e0b20cb5c4f8a0b1713707cbe8d27c601c36fdb0c0cde1d737990e9fab1b194c1b6a618fe530f6e002c964cfc7fdfec8f214665706d6fb8ebd587ef6f75f89d1be02ddeeb058717f13aaa7c09e30dc13a0db0ca78164d019d8d698e66ec1a1a73b4207767fcc9ff772547bc6e36c489077df7ffd6139aec9c541b21da64679c428c62de531831e72c06f086d2c885e2009e524522df534bf41b80f3a572e7cf5cb90202b272b66d7036e6414385a8664686e4341cdfa15ddcbc5dd7b3048463f733402a41eed947ad9fd9b79ff0dd3b8a97b8ac976b6fc187559c2179ffeb817a6ff006d91847a572d3c0b0000000049454e44ae426082 @@ -124,6 +297,42 @@ QgsAttributeTableBase close() + + btnStartEditing + clicked() + QgsAttributeTableBase + startEditing() + + + btnStopEditing + clicked() + QgsAttributeTableBase + stopEditing() + + + mSelectedToTopButton + clicked() + QgsAttributeTableBase + selectedToTop() + + + mInvertSelectionButton + clicked() + QgsAttributeTableBase + invertSelection() + + + mAddAttributeButton + clicked() + QgsAttributeTableBase + addAttribute() + + + mDeleteAttributeButton + clicked() + QgsAttributeTableBase + deleteAttributes() + qgsattributetablebase.ui.h @@ -136,6 +345,8 @@ addAttribute() startEditing() stopEditing() + invertSelection() + selectedToTop() setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, mMenuBar->sizePolicy().hasHeightForWidth() ) ); - mMenuBar->setMinimumSize( QSize( 0, 40 ) ); - - QgsAttributeTableBaseLayout->addMultiCellWidget( mMenuBar, 0, 0, 0, 4 ); - - edit = new QPopupMenu(this); - QPopupMenu* selection = new QPopupMenu(this); - - edit->insertItem(tr("&Add Attribute..."), this, SLOT(addAttribute()), CTRL+Key_A,0); - edit->insertItem(tr("&Delete Attributes..."), this, SLOT(deleteAttributes()), CTRL+Key_D,1); - selection->insertItem(tr("&Bring selection to top"), this, SLOT(selectedToTop()), CTRL+Key_T); - selection->insertItem(tr("&Invert selection"), this, SLOT(invertSelection()), CTRL+Key_I); - mMenuBar->insertItem(tr("&Edit"), edit); - mMenuBar->insertItem(tr("&Selection"),selection); - edit->setItemEnabled(0,false); - edit->setItemEnabled(1,false); + mAddAttributeButton->setEnabled(false); + mDeleteAttributeButton->setEnabled(false); btnStopEditing->setEnabled(false); int cap=layer->getDataProvider()->capabilities(); @@ -61,9 +45,6 @@ QgsAttributeTableDisplay::QgsAttributeTableDisplay(QgsVectorLayer* layer):QgsAtt { btnStartEditing->setEnabled(false); } - - QObject::connect(btnStartEditing, SIGNAL(clicked()), this, SLOT(startEditing())); - QObject::connect(btnStopEditing, SIGNAL(clicked()), this, SLOT(stopEditing())); } QgsAttributeTableDisplay::~QgsAttributeTableDisplay() @@ -107,18 +88,19 @@ void QgsAttributeTableDisplay::addAttribute() void QgsAttributeTableDisplay::startEditing() { QgsVectorDataProvider* provider=mLayer->getDataProvider(); - bool editing=false; + bool editing=false; if(provider) { if(provider->capabilities()&QgsVectorDataProvider::AddAttributes) { - edit->setItemEnabled(0,true); + mAddAttributeButton->setEnabled(true); editing=true; } if(provider->capabilities()&QgsVectorDataProvider::DeleteAttributes) { - edit->setItemEnabled(1,true); + + mDeleteAttributeButton->setEnabled(true); editing=true; } if(provider->capabilities()&QgsVectorDataProvider::ChangeAttributeValues) @@ -157,8 +139,10 @@ void QgsAttributeTableDisplay::stopEditing() btnStartEditing->setEnabled(true); btnStopEditing->setEnabled(false); btnClose->setEnabled(true); - edit->setItemEnabled(0,false); - edit->setItemEnabled(1,false); + //edit->setItemEnabled(0,false); + //edit->setItemEnabled(1,false); + mAddAttributeButton->setEnabled(false); + mDeleteAttributeButton->setEnabled(false); table()->setReadOnly(true); } diff --git a/src/qgsattributetabledisplay.h b/src/qgsattributetabledisplay.h index d335ad11b45..8a9446c043e 100644 --- a/src/qgsattributetabledisplay.h +++ b/src/qgsattributetabledisplay.h @@ -43,7 +43,6 @@ class QgsAttributeTableDisplay:public QgsAttributeTableBase void setTitle(QString title); protected: QgsVectorLayer* mLayer; - QPopupMenu* edit; protected slots: void deleteAttributes();