Exemple #1
0
class NavigationPlugin(QtCore.QObject):
    """ CTags-based navigation plugin Widget """

    # =================================
    # functions called by pluginloader
    # =================================
    def __init__(self):
        QtCore.QObject.__init__(self)
        self.dockwidget = None

    def initPlugin(self, signalproxy):
        """Init function - called when pluginloader loads plugin."""

        self.signalproxy = signalproxy
        self.entrylist = EntryList()

        # create and place DockWidget in mainwindow using signalproxy
        self.dockwidget = QtGui.QDockWidget(None)
        self.dockwidget.setObjectName("Navigation")
        self.dockwidget.setWindowTitle(
            QtGui.QApplication.translate("MainWindow", "Navigation", None, QtGui.QApplication.UnicodeUTF8)
        )

        self.view = QtGui.QTreeView()
        self.view.setModel(self.entrylist.model)
        self.dockwidget.setWidget(self.view)

        # add widget to mainwindow
        self.signalproxy.addDockWidget(Qt.BottomDockWidgetArea, self.dockwidget)
        QtCore.QObject.connect(
            self.signalproxy.distributedObjects.debug_controller, QtCore.SIGNAL("executableOpened"), self.update
        )
        QtCore.QObject.connect(self.view, QtCore.SIGNAL("doubleClicked(QModelIndex)"), self.viewDoubleClicked)

        self.ctagsRunner = CTagsRunner("%s/tags%d" % (str(QtCore.QDir.tempPath()), os.getpid()))
        QtCore.QObject.connect(
            self.ctagsRunner, QtCore.SIGNAL("tagsFileAvailable()"), self.tagsFileReady, Qt.QueuedConnection
        )

    def viewDoubleClicked(self, index):
        file_ = str(index.sibling(index.row(), 1).data().toString())
        line = index.sibling(index.row(), 2).data().toInt()[0]
        self.signalproxy.openFile(file_, line)

    def deInitPlugin(self):
        """Deinit function - called when pluginloader unloads plugin."""
        self.dockwidget.close()
        self.signalproxy.removeDockWidget(self.dockwidget)

    def update(self):
        sources = self.signalproxy.distributedObjects.gdb_connector.getSources()
        self.ctagsRunner.oneshot(sources)

    def tagsFileReady(self):
        self.entrylist.readFromFile(self.ctagsRunner.tmpFile)
        self.view.setModel(self.entrylist.model)
Exemple #2
0
    def initPlugin(self, signalproxy):
        """Init function - called when pluginloader loads plugin."""

        self.signalproxy = signalproxy
        self.entrylist = EntryList()

        # create and place DockWidget in mainwindow using signalproxy
        self.dockwidget = QtGui.QDockWidget(None)
        self.dockwidget.setObjectName("Navigation")
        self.dockwidget.setWindowTitle(
            QtGui.QApplication.translate("MainWindow", "Navigation", None, QtGui.QApplication.UnicodeUTF8)
        )

        self.view = QtGui.QTreeView()
        self.view.setModel(self.entrylist.model)
        self.dockwidget.setWidget(self.view)

        # add widget to mainwindow
        self.signalproxy.addDockWidget(Qt.BottomDockWidgetArea, self.dockwidget)
        QtCore.QObject.connect(
            self.signalproxy.distributedObjects.debug_controller, QtCore.SIGNAL("executableOpened"), self.update
        )
        QtCore.QObject.connect(self.view, QtCore.SIGNAL("doubleClicked(QModelIndex)"), self.viewDoubleClicked)

        self.ctagsRunner = CTagsRunner("%s/tags%d" % (str(QtCore.QDir.tempPath()), os.getpid()))
        QtCore.QObject.connect(
            self.ctagsRunner, QtCore.SIGNAL("tagsFileAvailable()"), self.tagsFileReady, Qt.QueuedConnection
        )
Exemple #3
0
class NavigationPlugin(QtCore.QObject):
    ''' CTags-based navigation plugin Widget '''

    def __init__(self):
        QtCore.QObject.__init__(self)
        self.dockwidget = None

    def initPlugin(self, signalproxy):
        """Init function - called when pluginloader loads plugin."""

        self.signalproxy = signalproxy
        self.entrylist = EntryList()

        # create and place DockWidget in mainwindow using signalproxy
        self.dockwidget = QtGui.QDockWidget(None)
        self.dockwidget.setObjectName("Navigation")
        self.dockwidget.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Navigation", None, QtGui.QApplication.UnicodeUTF8))

        self.view = NavigationView(self.signalproxy)
        self.view.setModel(self.entrylist.model)
        self.dockwidget.setWidget(self.view)

        # add widget to mainwindow
        self.signalproxy.addDockWidget(Qt.BottomDockWidgetArea, self.dockwidget)
        QtCore.QObject.connect(self.signalproxy.distributedObjects.debugController, QtCore.SIGNAL('executableOpened'), self.update)

        self.ctagsRunner = CTagsRunner("%s/tags%d" % (str(QtCore.QDir.tempPath()), os.getpid()))
        QtCore.QObject.connect(self.ctagsRunner, QtCore.SIGNAL("tagsFileAvailable()"), self.tagsFileReady, Qt.QueuedConnection)

        # load the tags if the plugin was loaded after the executable
        self.update()

    def deInitPlugin(self):
        """Deinit function - called when pluginloader unloads plugin."""
        self.dockwidget.close()
        self.signalproxy.removeDockWidget(self.dockwidget)

    def update(self):
        sources = self.signalproxy.distributedObjects.gdb_connector.getSources()
        if len(sources) > 0:
            self.ctagsRunner.oneshot(sources)

    def tagsFileReady(self):
        self.entrylist.readFromFile(self.ctagsRunner.tmpFile)
        os.remove(self.ctagsRunner.tmpFile)
Exemple #4
0
class NavigationPlugin(QtCore.QObject):
    ''' CTags-based navigation plugin Widget '''

    def __init__(self):
        QtCore.QObject.__init__(self)
        self.dockwidget = None

    def initPlugin(self, signalproxy):
        """Init function - called when pluginloader loads plugin."""

        self.signalproxy = signalproxy
        self.entrylist = EntryList()

        self.view = NavigationView(self.signalproxy)
        self.view.setModel(self.entrylist.model)

        # create and place DockWidget in mainwindow using signalproxy
        self.signalproxy.insertDockWidget(self, self.view, "Navigation", Qt.BottomDockWidgetArea, True)

        self.signalproxy.distributedObjects.debugController.executableOpened.connect(self.update)

        self.ctagsRunner = CTagsRunner("%s/tags%d" % (str(QtCore.QDir.tempPath()), os.getpid()))
        self.ctagsRunner.tagsFileAvailable.connect(self.tagsFileReady, Qt.QueuedConnection)

        # load the tags if the plugin was loaded after the executable
        self.update()

    def deInitPlugin(self):
        """Deinit function - called when pluginloader unloads plugin."""
        self.signalproxy.removeDockWidget(self)

    def update(self):
        sources = self.signalproxy.distributedObjects.gdb_connector.getSources()
        if len(sources) > 0:
            self.ctagsRunner.oneshot(sources)

    def tagsFileReady(self):
        self.entrylist.readFromFile(self.ctagsRunner.tmpFile)
        os.remove(self.ctagsRunner.tmpFile)
Exemple #5
0
    def initPlugin(self, signalproxy):
        """Init function - called when pluginloader loads plugin."""

        self.signalproxy = signalproxy
        self.entrylist = EntryList()

        self.view = NavigationView(self.signalproxy)
        self.view.setModel(self.entrylist.model)

        # create and place DockWidget in mainwindow using signalproxy
        self.signalproxy.insertDockWidget(self, self.view, "Navigation", Qt.BottomDockWidgetArea, True)

        self.signalproxy.distributedObjects.debugController.executableOpened.connect(self.update)

        self.ctagsRunner = CTagsRunner("%s/tags%d" % (str(QtCore.QDir.tempPath()), os.getpid()))
        self.ctagsRunner.tagsFileAvailable.connect(self.tagsFileReady, Qt.QueuedConnection)

        # load the tags if the plugin was loaded after the executable
        self.update()
    def initPlugin(self, signalproxy):
        """Init function - called when pluginloader loads plugin."""

        self.signalproxy = signalproxy
        self.entrylist = EntryList()

        # create and place DockWidget in mainwindow using signalproxy
        self.dockwidget = QtGui.QDockWidget(None)
        self.dockwidget.setObjectName("Navigation")
        self.dockwidget.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Navigation", None, QtGui.QApplication.UnicodeUTF8))

        self.view = NavigationView(self.signalproxy)
        self.view.setModel(self.entrylist.model)
        self.dockwidget.setWidget(self.view)

        # add widget to mainwindow
        self.signalproxy.emitAddDockWidget(Qt.BottomDockWidgetArea, self.dockwidget)
        self.signalproxy.distributedObjects.debugController.executableOpened.connect(self.update)

        self.ctagsRunner = CTagsRunner("%s/tags%d" % (str(QtCore.QDir.tempPath()), os.getpid()))
        self.ctagsRunner.tagsFileAvailable.connect(self.tagsFileReady, Qt.QueuedConnection)

        # load the tags if the plugin was loaded after the executable
        self.update()