Exemplo n.º 1
0
 def do_edit_cut(self):
     if self.copy_paste_target_widget != None:
         if not self.copy_paste_target_widget.hasSelectedText():
             return
         get_app_singleton().clipboard().setText(
             self.copy_paste_target_widget.selectedText())
         self.copy_paste_target_widget.insert("")
Exemplo n.º 2
0
 def __call__(self):
     global select_widgets_from_popout_window_funcs
     global select_widgets_from_project_window_funcs
     for w in get_app_singleton().windows:
         if hasattr(w, "content_shown"):
             # main project window
             if not w.project == self.project:
                 # .. for another project, skip
                 continue
             if w.content_shown:
                 for tabview in w.contentwidget.tabs.get_all_tabs():
                     if not hasattr(tabview, "filename"):
                         continue
                     if tabview.filename == self.filename:
                         wlist = select_widgets_from_project_window_funcs[\
                             self.widget_type](w, tabview)
                         for widget in wlist:
                             yield widget
         else:
             if w.project == self.project and w.filename == self.filename:
                 view = w.current_file_view
                 wlist = select_widgets_from_popout_window_funcs[\
                     self.widget_type](w, view)
                 for widget in wlist:
                     yield widget
     return
Exemplo n.º 3
0
 def show_context_menu(self, pos):
     """ Since we have our own undo/redo system, we need to reimplement
         the context menu to use it.
     """
     global ide
     new_menu = QMenu()
     undo_a = new_menu.addAction(l("undo_undo_prefix"), self.execute_undo_func)
     if not self.check_undo_func():
         undo_a.setEnabled(0)
     redo_a = new_menu.addAction(l("undo_redo_prefix"), self.execute_redo_func)
     if not self.check_redo_func():
         redo_a.setEnabled(0)
     new_menu.addSeparator()
     copy_a = new_menu.addAction(l("projwin_menu_edit_copy"), self.do_copy)
     cut_a = new_menu.addAction(l("projwin_menu_edit_cut"), self.do_cut)
     if not self.hasSelectedText():
         copy_a.setEnabled(0)
         cut_a.setEnabled(0)
     paste_a = new_menu.addAction(l("projwin_menu_edit_paste"), self.do_paste)
     if len(get_app_singleton().clipboard().text(QClipboard.Clipboard)) == 0:
         paste_a.setEnabled(0)
     new_menu.addSeparator()
     select_all_a = new_menu.addAction(l("projwin_menu_edit_select_all"), self.do_select_all)
     if len(self.text()) == 0:
         select_all_a.setEnabled(0)
     new_menu.exec_(QCursor.pos())
Exemplo n.º 4
0
 def closeEvent(self, event):
     if self.modal_dialog:
         self.app.close_canceled = True
         event.ignore()
         return
     
     for window in get_app_singleton().windows:
         if not hasattr(window, "content_shown"):
             # this is a popout window. close it if it belongs to us:
             if window.project == self.project:
                 window.close()
     event.accept()
Exemplo n.º 5
0
 def project_change_notify(self):
     """ This should get called if any file in the project is changed (to
         make this window display unsaved changes etc.)
     """
     self.update_title()
     self.update_menu()
     self.update_undo()
     if self.content_shown and self.contentwidget != None:
         self.contentwidget.tabs.update_tab_titles()
         self.contentwidget.update_file_list()
     for window in get_app_singleton().windows:
         if not hasattr(window, "content_shown"):
             # a popout winodw
             if window.project == self.project:
                 window.current_file_view.update_toolbar()
                 window.update_title()
                 window.update_toolbar()
Exemplo n.º 6
0
    def __init__(self, project, filename, view):
        super(PopOutView, self).__init__()
        self.setWindowTitle(filename)
        self.setMinimumSize(350, 300)
        self.project = project
        self.filename = filename
        
        project_window = [w for w in get_app_singleton()\
            .windows if w.project == self.project][0]
        self.toolbar = ProjectToolbar(project_window)
        self.toolbar.update_for_file(self.filename)

        self.current_file_view = view
        
        layout = QVBoxLayout()
        layout.setContentsMargins(1, 1, 1, 1)
        layout.addWidget(self.toolbar)
        layout.addWidget(view)
        self.setLayout(layout)
        self.update_title()
Exemplo n.º 7
0
    def update_menu(self):
        self.update_window_menu()
        if self.project == None:
            self.projectmenuactions["save"].setEnabled(0)
            self.projectmenuactions["saveas"].setEnabled(0)
            self.projectmenuactions["close"].setEnabled(1)
            self.filemenu.setEnabled(0)
            self.editmenu.setEnabled(0)
            self.runmenu.setEnabled(0)
            self.projectmenuactions["close"].setText(\
                l("projwin_menu_project_closewindow"))
        else:
            if self.project.has_unsaved_changes():
                self.projectmenuactions["save"].setEnabled(1)
            else:
                self.projectmenuactions["save"].setEnabled(0)
            self.runmenu.setEnabled(1)
            self.editmenu.setEnabled(1)
            self.projectmenuactions["saveas"].setEnabled(1)
            self.projectmenuactions["close"].setEnabled(1)
            self.projectmenuactions["close"].setText(\
                l("projwin_menu_project_close"))
            
            self.filemenu.setEnabled(1)
            
            if self.is_game_running():
                self.runmenuactions["run_in_editor"].setEnabled(0)
                self.runmenuactions["run_in_editor_from_start"].setEnabled(0)
                self.runmenuactions["run_external"].setEnabled(0)
                self.runmenuactions["run_pause"].setEnabled(1)
                self.runmenuactions["run_stop"].setEnabled(1)
            else:
                self.runmenuactions["run_in_editor"].setEnabled(1)
                self.runmenuactions["run_in_editor_from_start"].setEnabled(1)
                self.runmenuactions["run_external"].setEnabled(1)
                self.runmenuactions["run_pause"].setEnabled(0)
                self.runmenuactions["run_stop"].setEnabled(0)
                
            # if file shown:
            if self.contentwidget != None and \
                    self.contentwidget.isFileShown():
                self.filemenuactions["save"].setEnabled(0)
                if self.project.changestracker.file_has_changes(\
                        self.contentwidget.fileshown):
                    self.filemenuactions["save"].setEnabled(1)
                self.filemenuactions["rename"].setEnabled(1)
                self.filemenuactions["remove"].setEnabled(1)

                # if text editable focussed:
                if self.copy_paste_target_widget != None:
                    if self.copy_paste_target_widget.hasSelectedText():
                        self.editmenuactions["cut"].setEnabled(1)
                        self.editmenuactions["copy"].setEnabled(1)
                    else:
                        self.editmenuactions["cut"].setEnabled(0)
                        self.editmenuactions["copy"].setEnabled(0)
                    if len(get_app_singleton().clipboard().text(\
                            QClipboard.Clipboard)) > 0:
                        self.editmenuactions["paste"].setEnabled(1)
                    else:
                        self.editmenuactions["paste"].setEnabled(0)
                        
                    text = self.copy_paste_target_widget.text()
                    if len(text) > 0:
                        self.editmenuactions["select_all"].setEnabled(1)
                    else:
                        self.editmenuactions["select_all"].setEnabled(0)
                else:
                    self.editmenuactions["cut"].setEnabled(0)
                    self.editmenuactions["copy"].setEnabled(0)
                    self.editmenuactions["paste"].setEnabled(0)
                    self.editmenuactions["select_all"].setEnabled(0)
            else:
                # ..otherwise:
                self.filemenuactions["save"].setEnabled(0)
                self.filemenuactions["rename"].setEnabled(0)
                self.filemenuactions["remove"].setEnabled(0)
                self.editmenuactions["cut"].setEnabled(0)
                self.editmenuactions["copy"].setEnabled(0)
                self.editmenuactions["paste"].setEnabled(0)
                self.editmenuactions["select_all"].setEnabled(0)
Exemplo n.º 8
0
 def do_edit_paste(self):
     if self.copy_paste_target_widget != None:
         self.copy_paste_target_widget.insert(
              get_app_singleton().clipboard().text(QClipboard.Clipboard))
Exemplo n.º 9
0
 def pop_out(self):
     popout = PopOutView(self.project,
         self.filename, self.duplicate())
     popout.show()
     popout.resize(popout.minimumWidth(), popout.minimumHeight());
     get_app_singleton().windows.append(popout)
Exemplo n.º 10
0
 def do_paste(self):
     self.insert(get_app_singleton().clipboard().text(QClipboard.Clipboard))
Exemplo n.º 11
0
 def do_cut(self):
     if not self.hasSelectedText():
         return
     get_app_singleton().clipboard().setText(self.selectedText())
     self.insert("")