Package mcbase :: Package libs :: Package designeditor :: Module commands
[hide private]
[frames] | no frames]

Source Code for Module mcbase.libs.designeditor.commands

  1  # -*- coding: utf-8 -*- 
  2   
  3  ########################################################################## 
  4  # commands.py 
  5  # 
  6  # Undo ve Redo yapabilmek için kullanılan komutlar. 
  7  # 
  8  # (C) 2007 Likya Yazılım ve Bilişim Hizmetleri Ltd. Şti. 
  9  ########################################################################## 
 10   
 11  from PyQt4.QtCore import * 
 12  from PyQt4.QtGui import * 
 13   
 14  from tools import * 
 15   
16 -class AddNewFrames(QUndoCommand):
17 ''' 18 Editöre yeni çerçeveler ekler. 19 '''
20 - def __init__(self, editor, frameCodes):
21 QUndoCommand.__init__(self) 22 23 # Eklenecek çerçeveler ve editör 24 self._editor = editor 25 self._frameCodes = frameCodes 26 27 self._deletedFrames = [] 28 29 self.setText(tr('Çerçeve Ekleme'))
30
31 - def undo(self):
32 for frameCode in self._frameCodes: 33 frame = self._editor.getFrame(frameCode) 34 self._editor.removeFrame(frame) 35 self._deletedFrames.append(frame) 36 37 self._editor.scene().emit(SIGNAL('framesChanged()'))
38
39 - def redo(self):
40 # Eğer Undo yaptıktan sonra Redo yapılıyorsa, 41 # silinen çerçevelerin geri gelmesini sağlıyoruz. 42 if self._deletedFrames: 43 for frame in self._deletedFrames: 44 self._editor.addFrame(frame) 45 46 # İlk defa ekleniyorsa, sıfırdan ekliyoruz çerçeveleri 47 else: 48 for frameCode in self._frameCodes: 49 frame = self._editor.createFrame(frameCode) 50 self._editor.addFrame(frame) 51 52 self._deletedFrames = [] 53 self._editor.scene().emit(SIGNAL('framesChanged()'))
54
55 -class RemoveFrames(QUndoCommand):
56 ''' 57 Editördeki istenilen çerçeveleri siler. 58 '''
59 - def __init__(self, editor, frameCodes):
60 QUndoCommand.__init__(self) 61 62 self._editor = editor 63 self._frameCodes = frameCodes 64 self._deletedFrames = [] 65 66 self.setText(tr('Çerçeve Silme'))
67
68 - def undo(self):
69 for frame in self._deletedFrames: 70 self._editor.addFrame(frame) 71 self._deletedFrames = [] 72 73 self._editor.scene().emit(SIGNAL('framesChanged()'))
74
75 - def redo(self):
76 for frameCode in self._frameCodes: 77 frame = self._editor.getFrame(frameCode) 78 self._editor.removeFrame(frame) 79 self._deletedFrames.append(frame) 80 81 self._editor.scene().emit(SIGNAL('framesChanged()'))
82
83 -class ChangeFrameStart(QUndoCommand):
84 ''' 85 Editördeki değişen tasarım ayarlarına göre değişiklik yapar. 86 '''
87 - def __init__(self, editor, frameStarts):
88 QUndoCommand.__init__(self) 89 90 self._editor = editor 91 self._oldStarts = [] 92 93 for frameCode, newStart in frameStarts: 94 frame = self._editor.getFrame(frameCode) 95 self._oldStarts.append((frameCode, frame.frameStart())) 96 97 self._newStarts = frameStarts 98 99 self.setText(tr('Çerçeve Başlangıç Satırı'))
100
101 - def undo(self):
102 for frameCode, oldStart in self._oldStarts: 103 frame = self._editor.getFrame(frameCode) 104 frame.setFrameStart(oldStart)
105
106 - def redo(self):
107 for frameCode, newStart in self._newStarts: 108 frame = self._editor.getFrame(frameCode) 109 frame.setFrameStart(newStart)
110
111 -class ChangeDesignSettings(QUndoCommand):
112 ''' 113 Editördeki değişen tasarım ayarlarına göre değişiklik yapar. 114 '''
115 - def __init__(self, editor, oldSettings, newSettings):
116 QUndoCommand.__init__(self) 117 118 self._editor = editor 119 self._oldSettings = oldSettings 120 self._newSettings = newSettings 121 122 self.setText(tr('Tasarım Ayarları'))
123
124 - def undo(self):
125 self._editor.setDesignSettings(self._oldSettings) 126 oldWidth = int(self._oldSettings['pagewidth']) 127 self._editor.changeFrameWidths(oldWidth)
128
129 - def redo(self):
130 self._editor.setDesignSettings(self._newSettings) 131 newWidth = int(self._newSettings['pagewidth']) 132 self._editor.changeFrameWidths(newWidth)
133
134 -class ResizeFrame(QUndoCommand):
135 ''' 136 Çerçevenin uzunluğunu değiştirir. 137 '''
138 - def __init__(self, editor, frameCode, oldHeight, newHeight):
139 QUndoCommand.__init__(self) 140 141 self._editor = editor 142 self._frameCode = frameCode 143 self._oldHeight = oldHeight 144 self._newHeight = newHeight 145 146 self.setText(tr('Çerçeve Yüksekliği'))
147
148 - def getFrame(self):
149 return self._editor.getFrame(self._frameCode)
150
151 - def undo(self):
152 frame = self.getFrame() 153 if frame: 154 frame.setBodyHeight(self._oldHeight)
155
156 - def redo(self):
157 frame = self.getFrame() 158 if frame: 159 frame.setBodyHeight(self._newHeight)
160
161 -class AddItem(QUndoCommand):
162 ''' 163 Editöre yeni bir nesne ekler. 164 '''
165 - def __init__(self, editor, item):
166 QUndoCommand.__init__(self) 167 168 self._editor = editor 169 self._item = item 170 self._parent = item.parentItem() 171 172 self.setText(tr('Nesne Ekleme'))
173
174 - def undo(self):
175 self._editor.removeItem(self._item) 176 self._editor.emit(SIGNAL('selectionChanged()'))
177
178 - def redo(self):
179 self._editor.addItem(self._item) 180 self._item.setParentItem(self._parent) 181 self._editor.emit(SIGNAL('selectionChanged()'))
182
183 -class MoveItem(QUndoCommand):
184 ''' 185 Editördeki nesnelerin yerlerini değiştirir. 186 '''
187 - def __init__(self, item, oldPos, newPos):
188 QUndoCommand.__init__(self) 189 190 self._item = item 191 self._oldPos = oldPos 192 self._newPos = newPos 193 194 self.setText(tr('Nesne Sürükleme'))
195
196 - def undo(self):
197 self._item.setPos(self._oldPos)
198
199 - def redo(self):
200 self._item.setPos(self._newPos)
201
202 -class RemoveItem(QUndoCommand):
203 ''' 204 Editördeki nesneleri siler. 205 '''
206 - def __init__(self, editor, item):
207 QUndoCommand.__init__(self) 208 209 self._editor = editor 210 self._item = item 211 self._parent = item.parentItem() 212 213 self.setText(tr('Nesne Silme'))
214
215 - def undo(self):
216 self._editor.addItem(self._item) 217 self._item.setParentItem(self._parent) 218 self._editor.emit(SIGNAL('selectionChanged()'))
219
220 - def redo(self):
221 self._editor.removeItem(self._item) 222 self._editor.emit(SIGNAL('selectionChanged()'))
223
224 -class ResizeItem(QUndoCommand):
225 ''' 226 Editördeki bir nesneyi büyültüp, küçültür. 227 '''
228 - def __init__(self, item, oldPos, newPos, oldSize, newSize):
229 QUndoCommand.__init__(self) 230 231 self._item = item 232 self._oldPos = oldPos 233 self._newPos = newPos 234 self._oldSize = oldSize 235 self._newSize = newSize 236 237 self.setText(tr('Nesne Ölçüleri'))
238
239 - def undo(self):
240 self._item.setPos(self._oldPos) 241 self._item.setWidth(self._oldSize.width()) 242 self._item.setHeight(self._oldSize.height()) 243 self._item.updateSizeHandlers()
244
245 - def redo(self):
246 self._item.setPos(self._newPos) 247 self._item.setWidth(self._newSize.width()) 248 self._item.setHeight(self._newSize.height()) 249 self._item.updateSizeHandlers()
250
251 -class EditTextArea(QUndoCommand):
252 ''' 253 Bir TextArea alanının yazısını değiştirir. 254 '''
255 - def __init__(self, editor, textArea, oldText, newText):
256 QUndoCommand.__init__(self) 257 258 self._editor = editor 259 self._textArea = textArea 260 self._oldText = oldText 261 self._newText = newText 262 263 self.setText(tr('Yazı Değiştirme'))
264
265 - def undo(self):
266 self._textArea.setText(self._oldText) 267 self._editor.emit(SIGNAL('selectionChanged()'))
268
269 - def redo(self):
270 self._textArea.setText(self._newText) 271 self._editor.emit(SIGNAL('selectionChanged()'))
272
273 -class ChangeProperty(QUndoCommand):
274 ''' 275 Herhangi bir nesnenin bir özelliği değiştiği zaman çalışır. 276 '''
277 - def __init__(self, editor, selectedItems, property, oldValue, newValue):
278 QUndoCommand.__init__(self) 279 280 self._editor = editor 281 self._selectedItems = selectedItems 282 self._property = property 283 self._oldValue = oldValue 284 self._newValue = newValue 285 286 self.setText(tr('Özellik Değiştirme'))
287
288 - def undo(self):
289 for item in self._selectedItems: 290 item.setProperty(self._property, self._oldValue) 291 item.update() 292 293 self._editor.emit(SIGNAL('selectionChanged()'))
294
295 - def redo(self):
296 for item in self._selectedItems: 297 item.setProperty(self._property, self._newValue) 298 item.update() 299 300 self._editor.emit(SIGNAL('selectionChanged()'))
301
302 -class KeyboardMoveItem(QUndoCommand):
303 ''' 304 Editördeki nesnelerin yerlerini klavye ile değiştirir. 305 '''
306 - def __init__(self, itemList, dx, dy):
307 QUndoCommand.__init__(self) 308 309 self._itemList = itemList 310 self._dx = dx 311 self._dy = dy 312 313 self.setText(tr('Klavye ile Nesne Sürükleme'))
314
315 - def id(self):
316 return 1
317
318 - def mergeWith(self, otherCommand):
319 self._dx += otherCommand._dx 320 self._dy += otherCommand._dy 321 322 return True
323
324 - def undo(self):
325 for item in self._itemList: 326 item.moveBy(-self._dx, -self._dy)
327
328 - def redo(self):
329 for item in self._itemList: 330 item.moveBy(self._dx, self._dy)
331