Source code for lib_openmolar.admin.qt4.dialogs.manage_db_dialog
#! /usr/bin/env python
# -*- coding: utf-8 -*-
###############################################################################
##                                                                           ##
##  Copyright 2010, Neil Wallace <rowinggolfer@googlemail.com>               ##
##                                                                           ##
##  This program is free software: you can redistribute it and/or modify     ##
##  it under the terms of the GNU General Public License as published by     ##
##  the Free Software Foundation, either version 3 of the License, or        ##
##  (at your option) any later version.                                      ##
##                                                                           ##
##  This program is distributed in the hope that it will be useful,          ##
##  but WITHOUT ANY WARRANTY; without even the implied warranty of           ##
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            ##
##  GNU General Public License for more details.                             ##
##                                                                           ##
##  You should have received a copy of the GNU General Public License        ##
##  along with this program.  If not, see <http://www.gnu.org/licenses/>.    ##
##                                                                           ##
###############################################################################
from PyQt4 import QtCore, QtGui
from lib_openmolar.common.qt4.dialogs import ExtendableDialog
[docs]class ManageDatabaseDialog(ExtendableDialog):
    manage_users = False
    drop_db = False
    truncate_db = False
[docs]    def __init__(self, dbname, parent=None):
        ExtendableDialog.__init__(self, parent)
        self.dbname = dbname
        self.setWindowTitle(u"%s %s"% (_("Manage Database"), dbname))
        label = QtGui.QLabel("<b>%s</b>"% (
            _('The following options can be performed.')))
        label.setWordWrap(True)
        drop_but = QtGui.QPushButton(_("Drop (delete) this database"))
        truncate_but = QtGui.QPushButton(
            _("Remove all data from this database"))
        users_but = QtGui.QPushButton(_("Manage users for this database"))
        self.insertWidget(label)
        self.insertWidget(drop_but)
        self.insertWidget(truncate_but)
        self.insertWidget(users_but)
        advanced_label = QtGui.QLabel("no advanced options as yet")
        self.add_advanced_widget(advanced_label)
        self.apply_but.hide()
        #self.enableApply()
        drop_but.clicked.connect(self.drop_but_clicked)
        truncate_but.clicked.connect(self.truncate_but_clicked)
        users_but.clicked.connect(self.users_but_clicked)
 
[docs]    def sizeHint(self):
        return QtCore.QSize(400, 400)
 
[docs]    def drop_but_clicked(self):
        if self.get_confirm(u"%s '%s'?<br /><b>%s</b>"% (_("Drop Database"),
        self.dbname, _("This operation cannot be undone!"))):
            self.drop_db = True
            self.accept()
 
[docs]    def users_but_clicked(self):
        self.manage_users = True
        self.accept()
 
[docs]    def truncate_but_clicked(self):
        if self.get_confirm(u"%s '%s'?<br /><b>%s</b>"% (
        _("Remove all data from"),
        self.dbname, _("This operation cannot be undone!"))):
            self.truncate_db = True
            self.accept()
  
def _test():
    app = QtGui.QApplication([])
    dl = ManageDatabaseDialog("foo")
    dl.exec_()
if __name__ == "__main__":
    from gettext import gettext as _
    _test()