def __init__(self, *args): QStackedWidget.__init__(self, *args) BackgroundJob.__init__(self) # The widget stack has two widgets, a log and a PDF preview. # the Log is already created in BackgroundJob self.addWidget(self.log) self.setCurrentWidget(self.log) # the PDF preview, load Okular part. # If not, we just run the default PDF viewer. self.part = None factory = KPluginLoader("okularpart").factory() if factory: part = factory.create(self) if part: self.part = part self.addWidget(part.widget()) self.setCurrentWidget(part.widget()) # hide mini pager w = part.widget().findChild(QWidget, "miniBar") if w: w.parent().hide() # hide left panel a = part.actionCollection().action("show_leftpanel") if a and a.isChecked(): a.toggle() # default to single page layout a = part.actionCollection().action("view_render_mode_single") if a and not a.isChecked(): a.trigger() # change shortcut context for this one (bound to Esc) a = part.actionCollection().action("close_find_bar") if a: a.setShortcutContext(Qt.WidgetShortcut)
def player(tool): """ Return a player widget if KMid part can be found. """ factory = KPluginLoader("kmid_part").factory() if factory: part = factory.create(tool.mainwin) if part: return Player(tool, part)
def __init__(self): KMainWindow.__init__(self) self.resize(640, 480) service = KService.serviceByDesktopName("konsolepart") factory = KPluginLoader(service.library()).factory() part = factory.create(self) part.destroyed.connect(self.deleteLater) self.setCentralWidget(part.widget()) terminal = KTerminal(part).terminalInterfaceV2() terminal.startProgram("/bin/bash", QStringList()) terminal.sendInput("ls -l\n")
def __init__ (self): KMainWindow.__init__(self) self.resize(640, 480) service = KService.serviceByDesktopName("konsolepart"); factory = KPluginLoader(service.library()).factory() part = factory.create(self) part.destroyed.connect(self.deleteLater) self.setCentralWidget(part.widget()) terminal = KTerminal(part).terminalInterfaceV2() terminal.startProgram("/bin/bash", QStringList()) terminal.sendInput("ls -l\n");
def initialize(self): " Init Class dock " self.dock = QDockWidget() self.dock.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock.setWindowTitle(__doc__) self.dock.setStyleSheet('QDockWidget::title{text-align: center;}') self.boton = QPushButton(QIcon.fromTheme("media-eject"), ' Open Media ', self.dock) try: self.factory = KPluginLoader("dragonpart").factory() self.part = self.factory.create(self) self.boton.clicked.connect(lambda: self.part.openUrl(KUrl(str( QFileDialog.getOpenFileName(self.dock, ' Open Media File ', path.expanduser("~"), ';;'.join(['(*.{})'.format(e) for e in ['ogv', 'webm', 'avi', 'mpg', 'mpeg', '3gp', 'wmv', 'mp3', 'asf', 'dat', 'flv', 'flac', 'ogg', 'mkv', 'mov', 'swf', 'wav', 'rm', 'm4v', 'aaf', 'mp4', 'raw', '*']])))))) self.dock.setWidget(self.part.widget()) except: self.dock.setWidget(QLabel(""" <center> <h3>ಠ_ಠ<br> ERROR: Please, install Dragon Player and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Apps). </i>><center>""")) self.misc = self.locator.get_service('misc') self.misc.add_widget(self.dock, QIcon.fromTheme("applications-multimedia"), __doc__)
def initialize(self): " Init Class dock " self.dock = QDockWidget() self.dock.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock.setWindowTitle(__doc__) self.dock.setStyleSheet('QDockWidget::title{text-align: center;}') self.boton = QPushButton(QIcon.fromTheme("document-open-recent"), 'Edit Track', self.dock) self.boton.setToolTip('Edit iCal: {}'.format(TRACK_FILE)) try: self.factory = KPluginLoader("ktimetrackerpart").factory() self.part = self.factory.create(self) self.part.setReadWrite(True) self.part.closeUrl() self.part.openUrl(KUrl(str(TRACK_FILE))) self.boton.clicked.connect(lambda: call('xdg-open {}'.format(TRACK_FILE), shell=True)) self.dock.setWidget(self.part.widget()) except: self.dock.setWidget(QLabel(""" <center> <h3>ಠ_ಠ<br> ERROR: Please, install kTimeTracker and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Apps). </i><center>""")) self.misc = self.locator.get_service('misc') self.misc.add_widget(self.dock, QIcon.fromTheme("user-away"), __doc__)
def initialize(self): " Init Class dock " self.dock = QDockWidget() self.dock.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock.setWindowTitle(__doc__) self.dock.setStyleSheet('QDockWidget::title{text-align: center;}') self.open = QAction(QIcon.fromTheme("document-open"), 'Open DIFF', self) self.diff = QAction(QIcon.fromTheme("document-new"), 'Make DIFF', self) self.diff.triggered.connect(self.run_gui_and_get_results) self.save = QAction(QIcon.fromTheme("document-save"), 'Save DIFF', self) self.save.triggered.connect(self.save_a_diff) self.patc = QAction(QIcon.fromTheme("document-edit"), 'PATCH it!', self) self.patc.triggered.connect(lambda: QMessageBox.information(self.dock, __doc__, ' Sorry. This Feature is not ready yet !, thank you... ')) QToolBar(self.dock).addActions((self.open, self.diff, self.save, self.patc)) try: self.factory = KPluginLoader("komparepart").factory() self.part = self.factory.create(self) self.dock.setWidget(self.part.widget()) self.open.triggered.connect(lambda: self.part.openUrl(KUrl(str( QFileDialog.getOpenFileName(self.dock, ' Open a DIFF file ', path.expanduser("~"), ';;(*.diff)'))))) except: self.dock.setWidget(QLabel(""" <center> <h3>ಠ_ಠ<br> ERROR: Please, install Kompare and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Apps). </i><center>""")) self.misc = self.locator.get_service('misc') self.misc.add_widget(self.dock, QIcon.fromTheme("edit-select-all"), __doc__)
def initialize(self): " Init Class dock " self.dock = QDockWidget() self.dock.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock.setWindowTitle(__doc__) self.dock.setStyleSheet('QDockWidget::title{text-align: center;}') self.boton = QAction(QIcon.fromTheme("list-add"), 'Open', self) self.saver = QAction(QIcon.fromTheme("document-save"), 'Save', self) self.apiss = QAction(QIcon.fromTheme("help"), 'Python API Help', self) QToolBar(self.dock).addActions((self.boton, self.saver, self.apiss)) try: self.factory = KPluginLoader("kigpart").factory() self.part = self.factory.create(self) self.part.setReadWrite(True) self.boton.triggered.connect(lambda: self.part.openUrl(KUrl(str( QFileDialog.getOpenFileName(self.dock, ' Open Geometry Plot ', path.expanduser("~"), ';;'.join(['(*.{})'.format(e) for e in ['fig', 'kig', 'kigz', 'seg', 'fgeo']])))))) self.saver.triggered.connect(lambda: self.part.saveAs(KUrl(str( QFileDialog.getSaveFileName(self.dock, ' Save Geometry Plot ', path.expanduser("~"), ';;'.join(['(*.{})'.format(e) for e in ['kig', 'kigz', 'fig']]) ))))) self.apiss.triggered.connect(lambda: open_new_tab( 'http://edu.kde.org/kig/manual/scripting-api/classObject.html')) self.dock.setWidget(self.part.widget()) except: self.dock.setWidget(QLabel(""" <center> <h3>ಠ_ಠ<br> ERROR: Please, install KIG and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Apps). </i><center>""")) self.misc = self.locator.get_service('misc') self.misc.add_widget(self.dock, QIcon.fromTheme("accessories-calculator"), __doc__)
class KuadApplication (KApplication): def __init__(self): super(KApplication, self).__init__() self.mainwin = kparts.KParts.MainWindow(None, Qt.FramelessWindowHint) # No titlebar self.loader = KPluginLoader('libkonsolepart') self.factory = self.loader.factory() width = 2 height = 2 self.splitter = QSplitter(Qt.Vertical) for v in range(width): splitter = QSplitter(Qt.Horizontal) for h in range(height): widget = KonsoleWidget(splitter, self) splitter.insertWidget(h, widget) self.splitter.insertWidget(v,splitter) self.mainwin.setCentralWidget(self.splitter) #QShortcut(QKeySequence('Ctrl+Q'), self.mainwin, self.quit) self.mainwin.showMaximized() def eventFilter(self, object, event): if event.type() == QEvent.KeyPress: print 'eat keypress' return True return False
def initialize(self): " Init Class dock " self.dock = QDockWidget() self.dock.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock.setWindowTitle(__doc__) self.dock.setStyleSheet('QDockWidget::title{text-align: center;}') self.boton = QAction(QIcon.fromTheme("list-add"), 'Open', self) self.saver = QAction(QIcon.fromTheme("document-save"), 'Save', self) self.apiss = QAction(QIcon.fromTheme("help"), 'Python API Help', self) QToolBar(self.dock).addActions((self.boton, self.saver, self.apiss)) try: self.factory = KPluginLoader("kigpart").factory() self.part = self.factory.create(self) self.part.setReadWrite(True) self.boton.triggered.connect(lambda: self.part.openUrl( KUrl( str( QFileDialog.getOpenFileName( self.dock, ' Open Geometry Plot ', path.expanduser("~"), ';;'.join([ '(*.{})'.format(e) for e in ['fig', 'kig', 'kigz', 'seg', 'fgeo'] ])))))) self.saver.triggered.connect(lambda: self.part.saveAs( KUrl( str( QFileDialog.getSaveFileName( self.dock, ' Save Geometry Plot ', path.expanduser("~"), ';;'.join([ '(*.{})'.format(e) for e in ['kig', 'kigz', 'fig'] ])))))) self.apiss.triggered.connect(lambda: open_new_tab( 'http://edu.kde.org/kig/manual/scripting-api/classObject.html') ) self.dock.setWidget(self.part.widget()) except: self.dock.setWidget( QLabel(""" <center> <h3>ಠ_ಠ<br> ERROR: Please, install KIG and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Apps). </i><center>""")) self.misc = self.locator.get_service('misc') self.misc.add_widget(self.dock, QIcon.fromTheme("accessories-calculator"), __doc__)
class Main(plugin.Plugin): " dock Class " def initialize(self): " Init Class dock " self.dock = QDockWidget() self.dock.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock.setWindowTitle(__doc__) self.dock.setStyleSheet('QDockWidget::title{text-align: center;}') self.open = QAction(QIcon.fromTheme("document-open"), 'Open DIFF', self) self.diff = QAction(QIcon.fromTheme("document-new"), 'Make DIFF', self) self.diff.triggered.connect(self.run_gui_and_get_results) self.save = QAction(QIcon.fromTheme("document-save"), 'Save DIFF', self) self.save.triggered.connect(self.save_a_diff) self.patc = QAction(QIcon.fromTheme("document-edit"), 'PATCH it!', self) self.patc.triggered.connect(lambda: QMessageBox.information(self.dock, __doc__, ' Sorry. This Feature is not ready yet !, thank you... ')) QToolBar(self.dock).addActions((self.open, self.diff, self.save, self.patc)) try: self.factory = KPluginLoader("komparepart").factory() self.part = self.factory.create(self) self.dock.setWidget(self.part.widget()) self.open.triggered.connect(lambda: self.part.openUrl(KUrl(str( QFileDialog.getOpenFileName(self.dock, ' Open a DIFF file ', path.expanduser("~"), ';;(*.diff)'))))) except: self.dock.setWidget(QLabel(""" <center> <h3>ಠ_ಠ<br> ERROR: Please, install Kompare and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Apps). </i><center>""")) self.misc = self.locator.get_service('misc') self.misc.add_widget(self.dock, QIcon.fromTheme("edit-select-all"), __doc__) def run_gui_and_get_results(self): ' run_gui_and_get_results ' gui = Diff_GUI() if gui.diff_path is not None and path.isfile(gui.diff_path) is True: self.part.openUrl(KUrl(str(gui.diff_path))) return gui.diff_path def save_a_diff(self): ' save a diff ' out_file = path.abspath(str(QFileDialog.getSaveFileName(self.dock, 'Save a Diff file', path.expanduser("~"), ';;(*.diff)'))) inp_file = file(str(QUrl( self.part.url()).toString()).replace('file://', ''), 'r').read() end_file = file(out_file, 'w') end_file.write(inp_file) end_file.close()
def initialize(self): " Init Class Terminal " self.terminal = QDockWidget() self.terminal.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.terminal.setWindowTitle(__doc__) self.terminal.setStyleSheet('QDockWidget::title{text-align: center;}') try: self.factory = KPluginLoader("libkonsolepart").factory() self.terminal.setWidget(self.factory.create(self).widget()) except: self.terminal.setWidget(QLabel(""" <center> <h3>ಠ_ಠ<br> ERROR: Please, install Konsole Terminal and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Terminal Apps). </i><center>""")) self.misc = self.locator.get_service('misc') self.misc.add_widget(self.terminal, QIcon.fromTheme("utilities-terminal"), __doc__)
def initialize(self): " Init Class dock " self.dock = QDockWidget() self.dock.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.dock.setWindowTitle(__doc__) self.dock.setStyleSheet("QDockWidget::title{text-align: center;}") self.scrollable = QScrollArea() self.dock.setWidget(self.scrollable) try: self.factory = KPluginLoader("klinkstatuspart").factory() self.scrollable.setWidget(self.factory.create(self).widget()) except: self.scrollable.setWidget( QLabel( """ <center> <h3>ಠ_ಠ<br> ERROR: Please, install KLinkCheck and PyKDE ! </h3><br> <br><i> (Sorry, cant embed non-Qt Apps). </i><center>""" ) ) self.misc = self.locator.get_service("misc") self.misc.add_widget(self.dock, QIcon.fromTheme("insert-link"), __doc__)
def __init__(self): super(KApplication, self).__init__() self.mainwin = kparts.KParts.MainWindow(None, Qt.FramelessWindowHint) # No titlebar self.loader = KPluginLoader('libkonsolepart') self.factory = self.loader.factory() width = 2 height = 2 self.splitter = QSplitter(Qt.Vertical) for v in range(width): splitter = QSplitter(Qt.Horizontal) for h in range(height): widget = KonsoleWidget(splitter, self) splitter.insertWidget(h, widget) self.splitter.insertWidget(v,splitter) self.mainwin.setCentralWidget(self.splitter) #QShortcut(QKeySequence('Ctrl+Q'), self.mainwin, self.quit) self.mainwin.showMaximized()