Source code for pyqtdb.DBMainWindow

# -*- coding: utf-8 -*-


from PyQt4.QtGui import  QMainWindow, QDockWidget, QPixmap, QSplashScreen, QToolBar, QWidget, QHBoxLayout, QTabWidget
from PyQt4.QtCore import Qt, SIGNAL

import DBServersWidget
import DBBrowser
from img import Ico
import app_globals as G

[docs]def show_splash(): """Show the splash screen""" splashImage = QPixmap( "images/splash.png" ) splashScreen = QSplashScreen( splashImage ) splashScreen.showMessage( "Loading . . . " ) splashScreen.show() return splashScreen
[docs]class DBMainWindow(QMainWindow): """Main Window and Portal .. todo:: Remember the dock position """ W_NAME = "DBMainWindow" def __init__(self, parent=None): QMainWindow.__init__(self, parent) self.db = None self.setWindowTitle("PyQtDb") self.setWindowIcon(Ico.icon(Ico.FavIcon)) self.setMinimumWidth(800) self.setMinimumHeight(800) """ topBar = QToolBar() self.addToolBar(Qt.TopToolBarArea, topBar) topBar.addAction("New Server") """ ## Servers Widget self.dockServers = QDockWidget("Servers") self.dockServers.setFeatures(QDockWidget.DockWidgetMovable) self.dockServers.setAllowedAreas(Qt.LeftDockWidgetArea|Qt.RightDockWidgetArea) self.addDockWidget(Qt.LeftDockWidgetArea, self.dockServers) self.serversWidget = DBServersWidget.DBServersWidget(self) """Instance of :py:class:`~pyqtdb.DBServersWidget.DBServersWidget` in dock""" self.dockServers.setWidget(self.serversWidget) self.connect(self.serversWidget, SIGNAL("open_server"), self.on_open_server) self.cenWid = QWidget() self.setCentralWidget(self.cenWid) self.mainLayout = QHBoxLayout() self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(0) self.cenWid.setLayout( self.mainLayout ) self.tabWidget = QTabWidget() """The main tabs""" self.tabWidget.setTabsClosable(True) self.mainLayout.addWidget(self.tabWidget) G.settings.restore_window(self)
[docs] def on_open_server(self, srv): """Opens server by adding a :py:class:`~pyqtdb.DBBrowser.DBBrowser` in the the tabWidget""" server = G.settings.get_server( str(srv) ) print "oopen", srv, server widget = DBBrowser.DBBrowser(self, server) self.tabWidget.addTab(widget, Ico.icon(Ico.Server), server['server']) self.tabWidget.setCurrentIndex(self.tabWidget.indexOf(widget))
[docs] def closeEvent( self, event ): """Save window settings on close with :py:class:`~pyqtdb.XSettings.XSettings.save_window` """ G.settings.save_window( self )