def toggleComment(*args): """ Toggle comments on selected rows based on the first row """ rowReferences = getMultiSelection(rightview) model = rightview.get_model() file, lModel = getCurrentFile() comment = True # Is anything even selected? if len(rowReferences) == 0: return # Lets see what the first comment is ref = rowReferences[0] iter = model.get_iter(ref.get_path()) cText = model.get_value(iter, L_NAME) if cText.startswith("#"): comment = False # Lets proceed now if comment: # Comment all lines for ref in rowReferences: iter = model.get_iter(ref.get_path()) cText = model.get_value(iter, L_NAME) if not cText.startswith("#"): model.set_value(iter, L_NAME, "#" + cText) else: # Uncomment all lines for ref in rowReferences: iter = model.get_iter(ref.get_path()) cText = model.get_value(iter, L_NAME) if cText.startswith("#"): model.set_value(iter, L_NAME, cText[1:]) fileEdited(file)
def insertRow(arg): """ Insert row below selected row(s) """ rowReferences = getMultiSelection(rightview) try: lastRowSelectedPath = rowReferences[-1].get_path() model = rowReferences[-1].get_model() except: # Well, we got a blank file PackageFile, lModel = getCurrentFile() if PackageFile == None: # No file is actually selected return model = rightview.get_model() if model == None: # A folder is selected return newRow = model.append(["", "", PackageFile]) # Set the cursor on the new row and start editing the name column path = model.get_path(newRow) rightview.set_cursor(path, namecol, True) # Fire off the edited methods fileEdited(PackageFile) return lastRowIter = model.get_iter(lastRowSelectedPath) # We need to link this new row with its PackageFile Object PackageFile = model.get_value(lastRowIter, L_REF) # Insert into the model newRow = model.insert_after(lastRowIter, ["", "", PackageFile]) # Set the cursor on the new row and start editing the name column path = model.get_path(newRow) rightview.set_cursor(path, namecol, True) # Fire off the edited methods fileEdited(PackageFile)
def toggleComment(*args): """ Toggle comments on selected rows based on the first row """ rowReferences = getMultiSelection(rightview) model = rightview.get_model() file, lModel = getCurrentFile() comment = True # Is anything even selected? if len(rowReferences) == 0: return # Lets see what the first comment is ref = rowReferences[0] iter = model.get_iter(ref.get_path()) cText = model.get_value(iter, L_NAME) if cText.startswith("#"): comment = False # Lets proceed now if comment: # Comment all lines for ref in rowReferences: iter = model.get_iter(ref.get_path()) cText = model.get_value(iter, L_NAME) if not cText.startswith("#"): model.set_value(iter, L_NAME, "#"+cText) else: # Uncomment all lines for ref in rowReferences: iter = model.get_iter(ref.get_path()) cText = model.get_value(iter, L_NAME) if cText.startswith("#"): model.set_value(iter, L_NAME, cText[1:]) fileEdited(file)
def deleteRow(arg): """ Delete selected row(s) """ rowReferences = getMultiSelection(rightview) model = rightview.get_model() PackageFile, lModel = getCurrentFile() for ref in rowReferences: iter = model.get_iter(ref.get_path()) model.remove(iter) # If nothing is deleted we shouldn't show if len(rowReferences) > 0: fileEdited(PackageFile)
def uncommentRow(window): """ Uncomment selected row(s) """ rowReferences = getMultiSelection(rightview) model = rightview.get_model() PackageFile, lModel = getCurrentFile() # Is anything even selected? if len(rowReferences) == 0: return for ref in rowReferences: iter = model.get_iter(ref.get_path()) cText = model.get_value(iter, L_NAME) if cText.startswith("#"): model.set_value(iter, L_NAME, cText[1:]) fileEdited(PackageFile)
def copyToClipboard(self, rightview): """ Copies selected rows into the clipboard """ selectedRefs = getMultiSelection(rightview) if len(selectedRefs) == 0: return model = rightview.get_model() clipText = "" for ref in selectedRefs: iter = model.get_iter(ref.get_path()) c1 = model.get_value(iter, L_NAME) c2 = model.get_value(iter, L_FLAGS) clipText += c1 + ' ' + c2 + '\n' self.clipboard.set_text(clipText, -1)
def key(self, widget, event): if event.keyval == gtk.gdk.keyval_from_name("Tab"): # Save any current editing changes to the cell widget.editing_done() # Now it's time to move our edit to the next appropriate cell # If we are editing col 1 of a row, we should switch to editing col2, but # if we are editing col2 of a row, we should switch to editing col1 of the # next row model = rightview.get_model() refs = getMultiSelection(rightview) path = refs[-1].get_path() if self.col == L_NAME: # We are editing col 1 rightview.set_cursor_on_cell(path, rightview.get_column(L_FLAGS), None, True) elif self.col == L_FLAGS: # We are editing col2 nextRow = model.iter_next(model.get_iter(path)) # iter to next row if nextRow != None: rightview.set_cursor_on_cell(model.get_path(nextRow), rightview.get_column(L_NAME), None, True)
def key(self, widget, event): if event.keyval == gtk.gdk.keyval_from_name("Tab"): # Save any current editing changes to the cell widget.editing_done() # Now it's time to move our edit to the next appropriate cell # If we are editing col 1 of a row, we should switch to editing col2, but # if we are editing col2 of a row, we should switch to editing col1 of the # next row model = rightview.get_model() refs = getMultiSelection(rightview) path = refs[-1].get_path() if self.col == L_NAME: # We are editing col 1 rightview.set_cursor_on_cell(path, rightview.get_column(L_FLAGS), None, True) elif self.col == L_FLAGS: # We are editing col2 nextRow = model.iter_next( model.get_iter(path)) # iter to next row if nextRow != None: rightview.set_cursor_on_cell(model.get_path(nextRow), rightview.get_column(L_NAME), None, True)
def pasteClipboard(self, rightview): """ Pastes the clipboard below the current selection """ rowReferences = getMultiSelection(rightview) model = rightview.get_model() # Grab the actual clipboard text clipText = self.clipboard.wait_for_text() # Get a list to store into the PackageFile newData = self.__formatPaste(clipText) try: # A row has been selected and we should paste below it lastRowSelectedPath = rowReferences[-1].get_path() lastRowIter = model.get_iter(lastRowSelectedPath) # We need to link this new row with its PackageFile Object PackageFile = model.get_value(lastRowIter, L_REF) for row in newData: #insert the new row newRow = model.insert_after(lastRowIter, [row[0], row[1], PackageFile]) newPath = model.get_path(newRow) lastRowIter = model.get_iter(newPath) except IndexError: # No row selected PackageFile, lModel = getCurrentFile() for row in newData: #insert the new row newRow = model.append([row[0], row[1], PackageFile]) # Fire off the edited methods from fileOperations import fileEdited fileEdited(PackageFile)