3721.diff

patch to apply after feature freeze - Jürgen Fischer, 2011-04-12 10:19 AM

Download (6.89 KB)

View differences:

src/app/attributetable/qgsattributetabledialog.cpp (Arbeitskopie)
90 90
  mZoomMapToSelectedRowsButton->setIcon( getThemeIcon( "/mActionZoomToSelected.png" ) );
91 91
  mInvertSelectionButton->setIcon( getThemeIcon( "/mActionInvertSelection.png" ) );
92 92
  mToggleEditingButton->setIcon( getThemeIcon( "/mActionToggleEditing.png" ) );
93
  mSaveEditsButton->setIcon( getThemeIcon( "/mActionSaveEdits.png" ) );
93 94
  mDeleteSelectedButton->setIcon( getThemeIcon( "/mActionDeleteSelected.png" ) );
94 95
  mOpenFieldCalculator->setIcon( getThemeIcon( "/mActionCalculateField.png" ) );
95 96
  mAddAttribute->setIcon( getThemeIcon( "/mActionNewAttribute.png" ) );
......
101 102
  bool canAddAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes;
102 103
  bool canDeleteAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes;
103 104
  bool canAddFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures;
105

  
104 106
  mToggleEditingButton->setCheckable( true );
105 107
  mToggleEditingButton->setChecked( mLayer->isEditable() );
106 108
  mToggleEditingButton->setEnabled( canChangeAttributes && !mLayer->isReadOnly() );
109

  
110
  mSaveEditsButton->setEnabled( canChangeAttributes && mLayer->isEditable() );
107 111
  mOpenFieldCalculator->setEnabled( canChangeAttributes && mLayer->isEditable() );
108 112
  mDeleteSelectedButton->setEnabled( canDeleteFeatures && mLayer->isEditable() );
109 113
  mAddAttribute->setEnabled( canAddAttributes && mLayer->isEditable() );
......
113 117

  
114 118
  // info from table to application
115 119
  connect( this, SIGNAL( editingToggled( QgsMapLayer * ) ), QgisApp::instance(), SLOT( toggleEditing( QgsMapLayer * ) ) );
120
  connect( this, SIGNAL( saveEdits( QgsMapLayer * ) ), QgisApp::instance(), SLOT( saveEdits( QgsMapLayer * ) ) );
121

  
116 122
  // info from layer to table
117 123
  connect( mLayer, SIGNAL( editingStarted() ), this, SLOT( editingToggled() ) );
118 124
  connect( mLayer, SIGNAL( editingStopped() ), this, SLOT( editingToggled() ) );
......
683 689
  emit editingToggled( mLayer );
684 690
}
685 691

  
692
void QgsAttributeTableDialog::on_mSaveEditsButton_clicked()
693
{
694
  emit saveEdits( mLayer );
695
}
696

  
686 697
void QgsAttributeTableDialog::editingToggled()
687 698
{
688 699
  mToggleEditingButton->blockSignals( true );
689 700
  mToggleEditingButton->setChecked( mLayer->isEditable() );
701
  mSaveEditsButton->setEnabled( mLayer->isEditable() );
690 702
  mToggleEditingButton->blockSignals( false );
691 703

  
692 704
  bool canChangeAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues;
src/app/attributetable/qgsattributetabledialog.h (Arbeitskopie)
114 114
     */
115 115
    void on_mToggleEditingButton_toggled();
116 116
    /**
117
     * Saves edits
118
     */
119
    void on_mSaveEditsButton_clicked();
120
    /**
117 121
     * Inverts selection
118 122
     */
119 123
    void on_mInvertSelectionButton_clicked();
......
160 164

  
161 165
  signals:
162 166
    /**
163
     * Informs that editing mode ha been toggled
167
     * Informs that editing mode has been toggled
164 168
     * @param layer layer that has been toggled
165 169
     */
166 170
    void editingToggled( QgsMapLayer *layer );
167 171

  
172
    /**
173
     * Informs that edits should be saved
174
     * @param layer layer whose edits are to be saved
175
     */
176
    void saveEdits( QgsMapLayer *layer );
177

  
168 178
  protected:
169 179
    /**
170 180
     * Handle closing of the window
src/app/qgisapp.h (Arbeitskopie)
725 725
    //! starts/stops editing mode of a layer
726 726
    bool toggleEditing( QgsMapLayer *layer, bool allowCancel = true );
727 727

  
728
    //! save edits of a layer
729
    void saveEdits( QgsMapLayer *layer );
730

  
728 731
    //! save current vector layer
729 732
    void saveAsVectorFile();
730 733
    void saveSelectionAsVectorFile();
src/app/qgisapp.cpp (Arbeitskopie)
4264 4264
  if ( mMapCanvas && mMapCanvas->isDrawing() )
4265 4265
    return;
4266 4266

  
4267
  QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( activeLayer() ); // FIXME: save edits of all selected layers
4267
  foreach( QgsMapLayer * layer, mMapLegend->selectedLayers() )
4268
  {
4269
    saveEdits( layer );
4270
  }
4271
}
4272

  
4273
void QgisApp::saveEdits( QgsMapLayer *layer )
4274
{
4275
  QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layer );
4268 4276
  if ( !vlayer || !vlayer->isEditable() || !vlayer->isModified() )
4269 4277
    return;
4270 4278

  
src/ui/qgsattributetabledialog.ui (Arbeitskopie)
142 142
     <item>
143 143
      <widget class="QToolButton" name="mInvertSelectionButton">
144 144
       <property name="toolTip">
145
        <string>Invert selection (Ctrl+S)</string>
145
        <string>Invert selection (Ctrl+R)</string>
146 146
       </property>
147 147
       <property name="text">
148 148
        <string/>
......
244 244
      </widget>
245 245
     </item>
246 246
     <item>
247
      <widget class="QToolButton" name="mSaveEditsButton">
248
       <property name="toolTip">
249
        <string>Save Edits (Ctrl+S)</string>
250
       </property>
251
       <property name="whatsThis">
252
        <string/>
253
       </property>
254
       <property name="text">
255
        <string/>
256
       </property>
257
       <property name="icon">
258
        <iconset>
259
         <normaloff>../../images/themes/default/mActionSaveEdits.png</normaloff>../../images/themes/default/mActionSaveEdits.png</iconset>
260
       </property>
261
       <property name="iconSize">
262
        <size>
263
         <width>18</width>
264
         <height>18</height>
265
        </size>
266
       </property>
267
       <property name="shortcut">
268
        <string>Ctrl+E</string>
269
       </property>
270
       <property name="checkable">
271
        <bool>true</bool>
272
       </property>
273
      </widget>
274
     </item>
275
     <item>
247 276
      <widget class="QToolButton" name="mDeleteSelectedButton">
248 277
       <property name="toolTip">
249 278
        <string>Delete selected features (Ctrl+D)</string>
......
410 439
  <tabstop>mOpenFieldCalculator</tabstop>
411 440
 </tabstops>
412 441
 <resources/>
413
 <connections/>
442
 <connections>
443
  <connection>
444
   <sender>mToggleEditingButton</sender>
445
   <signal>toggled(bool)</signal>
446
   <receiver>mSaveEditsButton</receiver>
447
   <slot>setEnabled(bool)</slot>
448
   <hints>
449
    <hint type="sourcelabel">
450
     <x>192</x>
451
     <y>504</y>
452
    </hint>
453
    <hint type="destinationlabel">
454
     <x>214</x>
455
     <y>501</y>
456
    </hint>
457
   </hints>
458
  </connection>
459
 </connections>
414 460
</ui>