# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Common.Ui import *
from Koo import Rpc
from Koo.Common import Common
from Koo.Model.Group import RecordGroup
from Koo.Screen.ViewQueue import *
from Koo.Screen.Screen import *

(BatchInsertDialogUi,
 BatchInsertDialogBase) = loadUiType(Common.uiPath('batchupdate.ui'))


class BatchInsertDialog(QDialog, BatchInsertDialogUi):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        BatchInsertDialogUi.__init__(self)
        self.setupUi(self)

        self.connect(self.pushAccept, SIGNAL('clicked()'), self.save)

        self.ids = []
        self.model = None
        self.context = None
        self.updateOnServer = True
        self.newValues = {}
from Koo.Model.Group import RecordGroup

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from Common.Ui import *

try:
    from PyQt4.QtWebKit import *
    from PyQt4.QtNetwork import *
    isWebKitAvailable = True
except:
    isWebKitAvailable = False

if isWebKitAvailable:
    (FullTextSearchDialogUi, FullTextSearchDialogBase) = loadUiType(
        Common.uiPath('full_text_search.ui'))

    ## @brief The FullTextSearchDialog class shows a dialog for searching text at all indexed models.
    #
    # The dialog has a text box for the user input and a combo box to search at one specific
    # model or all models that have at least one field indexed.
    class FullTextSearchDialog(QDialog, FullTextSearchDialogUi):
        def __init__(self, parent=None):
            QDialog.__init__(self, parent)
            FullTextSearchDialogUi.__init__(self)
            self.setupUi(self)

            self.setModal(True)

            self.result = None
from PyQt5.QtGui import *
from Koo.Common.Ui import *

from Koo.Common import Api
from Koo.Common import Common
from Koo.Common import Shortcuts
from Koo import Rpc

from Koo.Screen.Screen import Screen
from Koo.Model.Group import RecordGroup
from Koo.Fields.AbstractFieldWidget import *
from Koo.Fields.AbstractFieldDelegate import *
from Koo.Dialogs.SearchDialog import SearchDialog

(ManyToManyFieldWidgetUi, ManyToManyFieldWidgetBase) = loadUiType(
    Common.uiPath('many2many.ui'))


class ManyToManyFieldWidget(AbstractFieldWidget, ManyToManyFieldWidgetUi):
    def __init__(self, parent, model, attrs={}):
        AbstractFieldWidget.__init__(self, parent, model, attrs)
        ManyToManyFieldWidgetUi.__init__(self)
        self.setupUi(self)

        self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)

        self.pushAdd.clicked.connect(self.slotAdd)
        self.pushRemove.clicked.connect(self.remove)
        self.uiText.editingFinished.connect(self.match)

        self.scSearch = QShortcut(self.uiText)
Beispiel #4
0
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

import base64
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Common.Ui import *
import ServerConfigurationDialog
from Koo.Common import Common
from Koo.Common.Settings import *

(DatabaseDialogUi,
 DatabaseDialogBase) = loadUiType(Common.uiPath('choosedb.ui'))


class DatabaseDialog(QDialog, DatabaseDialogUi):
    # Database chooser type:
    #  Select -> Shows a combo box for the database selection
    #  Edit   -> Shows a line edit for the database selection
    TypeSelect = 1
    TypeEdit = 2

    def __init__(self, type, title, parent=None):
        QDialog.__init__(self, parent)
        DatabaseDialogUi.__init__(self)
        self.setupUi(self)

        self.type = type
import os
import base64
import binascii
import tempfile

from Koo.Common import Common
from Koo.Common import Icons
from Koo.Common import Semantic
from Koo.Fields.AbstractFieldWidget import *
from Koo.Fields.AbstractFieldDelegate import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Common.Ui import *

(ImageFieldWidgetUi,
 ImageFieldWidgetBase) = loadUiType(Common.uiPath('image.ui'))


class ImageFieldWidget(AbstractFieldWidget, ImageFieldWidgetUi):
    def __init__(self, parent, model, attrs={}):
        AbstractFieldWidget.__init__(self, parent, model, attrs)
        ImageFieldWidgetUi.__init__(self)
        self.setupUi(self)

        self.width = int(attrs.get('img_width', 300))
        self.height = int(attrs.get('img_height', 100))
        self.installPopupMenu(self.uiImage)
        self.connect(self.pushLoad, SIGNAL('clicked()'), self.loadImage)
        self.connect(self.pushSave, SIGNAL('clicked()'), self.saveImage)
        self.connect(self.pushRemove, SIGNAL('clicked()'), self.removeImage)
        self.pushSave.setEnabled(False)
Beispiel #6
0
 def showShortcuts(self):
     dialog = QDialog(self)
     loadUi(Common.uiPath('shortcuts.ui'), dialog)
     dialog.exec_()
Beispiel #7
0
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from Koo.Common.Ui import *
from . import ServerConfigurationDialog
from Koo.Common import Common
from Koo.Common.Settings import *
from Koo import Rpc
import re

(CreationOkDialogUi, CreationOkDialogBase) = loadUiType(
    Common.uiPath('dbcreateok.ui'))


class CreationOkDialog(QDialog, CreationOkDialogUi):
    def __init__(self, passwordList, parent=None):
        QDialog.__init__(self, parent)
        CreationOkDialogUi.__init__(self)
        self.setupUi(self)

        self.pushConnect.clicked.connect(self.connectNow)
        self.pushLater.clicked.connect(self.connectLater)

        self.textEdit.setPlainText(_('The following users have been installed on your database:\n\n' +
                                     passwordList + '\n\n' + _('You can now connect to the database as an administrator.')))
        self.show()
Beispiel #8
0
            self.fieldsOrder.append(str(attrs['name']))
        else:
            Debug.error('unknown tag: ' + str(name))

    ## @brief This function parses the xml data provided as parameter.
    # This function fills class member properties: title, toolbar and
    # fieldsOrder
    def parse(self, xmlData):
        self.fieldsOrder = []

        psr = expat.ParserCreate()
        psr.StartElementHandler = self.tagStart
        psr.Parse(xmlData.encode('utf-8'))


(TreeWidgetUi, TreeWidgetBase) = loadUiType(Common.uiPath('tree.ui'))


## @brief The TreeWidget class shows main menu tree as well as other tree views.
class TreeWidget(QWidget, TreeWidgetUi):
    def __init__(self,
                 view,
                 model,
                 domain=None,
                 context=None,
                 name=False,
                 parent=None):
        QWidget.__init__(self, parent)
        TreeWidgetUi.__init__(self)
        self.setupUi(self)
            saver = BinaryImageSaver(parent)
            saver.record = self.record
            saver.field = self.field
            return saver

    class BinaryImageSaver(AbstractImageSaver):
        def run(self):
            self.error = True
            image = QBuffer()
            if self.item.image.save(image, 'PNG'):
                self.error = False
                self.record.setValue(self.field, str(image.buffer()))


(BinaryFieldWidgetUi,
 BinaryFieldWidgetBase) = loadUiType(Common.uiPath('binary.ui'))


class BinaryFieldWidget(AbstractFieldWidget, BinaryFieldWidgetUi):
    def __init__(self, parent, model, attrs={}):
        AbstractFieldWidget.__init__(self, parent, model, attrs)
        BinaryFieldWidgetUi.__init__(self)
        self.setupUi(self)

        self.filters = attrs.get('filters', '*')
        if isinstance(self.filters, basestring):
            self.filters = self.filters.split(',')
        self.filters = _('Files (%s)') % ' '.join(self.filters)

        self.fileNameField = attrs.get('filename')
        self.baseDirectory = unicode(QDir.homePath())
##############################################################################

import gettext
from Koo.Common import Api
from Koo.Common import Common

from Koo.Screen.Screen import Screen
from Koo.Model.Group import RecordGroup

from Koo import Rpc
import time
from Koo.Dialogs.SearchDialog import SearchDialog
from Koo.Fields.AbstractFieldWidget import *

(ActionFieldWidgetUi,
 ActionFieldWidgetBase) = loadUiType(Common.uiPath('paned.ui'))


class ActionFieldWidget(AbstractFieldWidget, ActionFieldWidgetUi):
    def __init__(self, parent, view, attrs={}):
        AbstractFieldWidget.__init__(self, parent, view, attrs)
        ActionFieldWidgetUi.__init__(self)
        self.setupUi(self)

        self.colors['normal'] = self.palette().color(self.backgroundRole())
        self.act_id = attrs['name']
        res = Rpc.session.execute('/object', 'execute', 'ir.actions.actions',
                                  'read', [self.act_id], ['type'],
                                  Rpc.session.context)
        if not res:
            raise Exception, 'ActionNotFound'
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Common.Ui import *
import ServerConfigurationDialog
from Koo.Common import Common
from Koo.Common.Settings import *
from Koo import Rpc
import re

(CreationOkDialogUi,
 CreationOkDialogBase) = loadUiType(Common.uiPath('dbcreateok.ui'))


class CreationOkDialog(QDialog, CreationOkDialogUi):
    def __init__(self, passwordList, parent=None):
        QDialog.__init__(self, parent)
        CreationOkDialogUi.__init__(self)
        self.setupUi(self)

        self.connect(self.pushConnect, SIGNAL('clicked()'), self.connectNow)
        self.connect(self.pushLater, SIGNAL('clicked()'), self.connectLater)

        self.textEdit.setPlainText(
            _('The following users have been installed on your database:\n\n' +
              passwordList + '\n\n' +
              _('You can now connect to the database as an administrator.')))
Beispiel #12
0
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Koo.Common.Ui import *
from Koo.Common import Common
from Koo.Common import Url
from .DatabaseDialog import *
from . import ServerConfigurationDialog
from .DatabaseCreationDialog import DatabaseCreationDialog

(LoginDialogUi, LoginDialogBase) = loadUiType(Common.uiPath('login.ui'))

# @brief The LoginDialog class shows a Dialog for logging into OpenObject server.
#
# The dialog will send the accept() signal if the user accepted or reject() if she
# cancelled it or didn't provide a valid server. If accept() was sent, two properties
# 'url' and 'databaseName' contain the information introduced by the user.


class LoginDialog(QDialog, LoginDialogUi):
    defaultHost = ''
    defaultPort = 0
    defaultProtocol = ''
    defaultUserName = ''

    def __init__(self, parent=None):
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from Koo.Common import Common
from PyQt5.QtWidgets import *
from Koo.Common import Shortcuts

from Koo.Common.Calendar import *
from Koo.Search.AbstractSearchWidget import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from Koo.Common.Ui import *

(DateSearchWidgetUi, DateSearchWidgetBase) = loadUiType(
    Common.uiPath('search_date.ui'))


class DateSearchWidget(AbstractSearchWidget, DateSearchWidgetUi):
    def __init__(self, name, parent, attrs={}):
        AbstractSearchWidget.__init__(self, name, parent, attrs)
        DateSearchWidgetUi.__init__(self)
        self.setupUi(self)

        # Catch keyDownPressed
        self.uiStart.installEventFilter(self)
        self.uiEnd.installEventFilter(self)

        # Add shortcuts
        self.scStartSearch = QShortcut(self.uiStart)
        self.scStartSearch.setKey(Shortcuts.SearchInField)
Beispiel #14
0
        data = list(csv.reader(input, quotechar=csv_data['del'], delimiter=csv_data['sep']))[
            int(csv_data['skip']):]

        datas = []
        for line in data:
            datas.append([x.decode(
                csv_data['encoding']).encode('utf-8') for x in line])
    except Exception as e:
        QMessageBox.information(None, _('Error'), _(
            'Error reading file: %s') % str(e.args))
        return False

    return executeImport(datas, model, fields)


(ImportDialogUi, ImportDialogBase) = loadUiType(Common.uiPath('win_import.ui'))


class ImportDialog(QDialog, ImportDialogUi):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        ImportDialogUi.__init__(self)
        self.setupUi(self)

        self.model = None
        self.fields = None

        self.uiFileFormat.addItem(_('CSV'), 'csv')
        if isXlsAvailable:
            self.uiFileFormat.addItem(_('Excel (XLS)'), 'xls')
        if isOdsAvailable:
Beispiel #15
0
            tab = self.tabBar().tabAt(event.pos())
            if tab != self.pressedAt:
                self.pressedAt = -1
                return
            self.emit(SIGNAL('middleClicked(int)'), tab)

    def wheelEvent(self, event):
        if not self.tabBar().underMouse():
            return
        degrees = event.delta() / 8
        steps = degrees / 15
        self.setCurrentIndex((self.currentIndex() + steps) % self.count())


(KooMainWindowUi,
 KooMainWindowBase) = loadUiType(Common.uiPath('mainwindow.ui'))


class KooMainWindow(QMainWindow, KooMainWindowUi):

    instance = None

    def __init__(self):
        QMainWindow.__init__(self)
        KooMainWindowUi.__init__(self)

        self.menuBar = False

        self.setupUi(self)

        # Initialize singleton
Beispiel #16
0
        if name:
            label = QLabel(name)
            label.gridLine = self.y
            vbox = QVBoxLayout()
            vbox.setSpacing(0)
            vbox.setContentsMargins(0, 0, 0, 0)
            vbox.addWidget(label, 0)
            vbox.addWidget(widget)
            self.layout().addLayout(vbox, self.y, self.x)
        else:
            self.layout().addWidget(widget, self.y, self.x)
        self.x = self.x + 1


(CustomSearchItemWidgetUi,
 CustomSearchItemWidgetBase) = loadUiType(Common.uiPath('customsearchitem.ui'))


class CustomSearchItemWidget(AbstractSearchWidget, CustomSearchItemWidgetUi):

    # Structure:
    #   1) Operator used in domain
    #   2) Label shown to the user
    #   3) Field types in which the operator should be shown
    #   4) Whether the user should be able to input a text to search for or not.
    operators = (
        ('is empty', _('is empty'), ('char', 'text', 'many2one', 'date',
                                     'time', 'datetime', 'float_time'), False),
        ('is not empty', _('is not empty'),
         ('char', 'text', 'many2one', 'date', 'time', 'datetime',
          'float_time'), False),
Beispiel #17
0
 def showLicense(self):
     dialog = QDialog(self)
     loadUi(Common.uiPath('license.ui'), dialog)
     dialog.exec_()
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from Koo.Common import Common
from PyQt5.QtWidgets import *
from Koo.Common import Shortcuts

from Koo.Common.Calendar import *
from Koo.Search.AbstractSearchWidget import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from Koo.Common.Ui import *

(DateTimeSearchWidgetUi,
 DateTimeSearchWidgetBase) = loadUiType(Common.uiPath('search_date.ui'))


class DateTimeSearchWidget(AbstractSearchWidget, DateTimeSearchWidgetUi):
    def __init__(self, name, parent, attrs={}):
        AbstractSearchWidget.__init__(self, name, parent, attrs)
        DateTimeSearchWidgetUi.__init__(self)
        self.setupUi(self)

        # Catch keyDownPressed
        self.uiStart.installEventFilter(self)
        self.uiEnd.installEventFilter(self)

        # Add shortcuts
        self.scStartSearch = QShortcut(self.uiStart)
        self.scStartSearch.setKey(Shortcuts.SearchInField)
Beispiel #19
0
    data = Rpc.session.execute('/object', 'execute', model, 'export_data', ids,
                               fields, context)
    # After 5.0 data is returned directly (no 'datas' key in a dictionary).
    if isinstance(data, dict) and 'datas' in data:
        data = data['datas']
    result = {
        'data': data,
    }
    if isinstance(data, dict) and 'warning' in data:
        result = {
            'warning': data['warning'],
        }
    return result


(ExportDialogUi, ExportDialogBase) = loadUiType(Common.uiPath('win_export.ui'))


class ExportDialog(QDialog, ExportDialogUi):
    exports = {}

    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        ExportDialogUi.__init__(self)
        self.setupUi(self)

        self.ids = []
        self.model = None
        self.fields = None
        self.connect(self.pushAccept, SIGNAL('clicked()'), self.export)
        self.connect(self.pushCancel, SIGNAL('clicked()'), self.reject)
Beispiel #20
0
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from Koo.Search.AbstractSearchWidget import *
from PyQt4.QtGui import *
from Koo.Common.Ui import *
from Koo.Common import Common

(ReferenceSearchWidgetUi, ReferenceSearchWidgetBase) = loadUiType(
    Common.uiPath('searchreference.ui'))


class ReferenceSearchWidget(AbstractSearchWidget, ReferenceSearchWidgetUi):
    def __init__(self, name, parent, attrs={}):
        AbstractSearchWidget.__init__(self, name, parent, attrs)
        ReferenceSearchWidgetUi.__init__(self)
        self.setupUi(self)

        self.setPopdown(attrs.get('selection', []))
        self.focusWidget = self.uiModel
        # Catch keyDownPressed
        self.focusWidget.installEventFilter(self)

    def setPopdown(self, selection):
        self.invertedModels = {}
Beispiel #21
0
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

import base64
import os
import tempfile

from Koo.Fields.AbstractFieldWidget import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Koo.Common.Ui import *

from Koo.Common import Common

(LinkFieldWidgetUi, LinkFieldWidgetBase) = loadUiType(Common.uiPath('link.ui'))


class LinkFieldWidget(AbstractFieldWidget, LinkFieldWidgetUi):
    def __init__(self, parent, model, attrs={}):
        AbstractFieldWidget.__init__(self, parent, model, attrs)
        LinkFieldWidgetUi.__init__(self)
        self.setupUi(self)
        self.connect(self.pushOpen, SIGNAL('clicked()'), self.open)
        self.installPopupMenu(self.uiText)

    def setReadOnly(self, value):
        AbstractFieldWidget.setReadOnly(self, value)
        self.uiText.setReadOnly(value)
        self.pushOpen.setEnabled(not value)
Beispiel #22
0
#   (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, write to the
#   Free Software Foundation, Inc.,
#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Common.Ui import *
from Koo.Common import Common
from AbstractKeyboardWidget import *

(KeypadWidgetUi, KeypadWidgetBase) = loadUiType(Common.uiPath('keypad.ui'))


## @brief The KeyboardWidget class provides a virtual on-screen numeric keyboard.
class KeypadWidget(AbstractKeyboardWidget, KeypadWidgetUi):
    ## @brief Creates a KeypadWidget that will send keyboard events to it's parent. It will
    # also be positioned in the screen acording to its parent coordinates.
    def __init__(self, parent):
        AbstractKeyboardWidget.__init__(self, parent)
        KeypadWidgetUi.__init__(self)
        self.setupUi(self)
        self.init()
Beispiel #23
0
import gettext
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Koo.Common.Ui import *

from Koo import Rpc

from Koo.Common import Common
from Koo.Common.Settings import *
import copy

from Koo.Screen.Screen import Screen
from Koo.Model.Group import RecordGroup

(PreferencesDialogUi,
 PreferencesDialogBase) = loadUiType(Common.uiPath('preferences.ui'))


class PreferencesDialog(QDialog, PreferencesDialogUi):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        PreferencesDialogUi.__init__(self)
        self.setupUi(self)

        self.connect(self.pushAccept, SIGNAL('clicked()'), self.slotAccept)

        self.setWindowTitle(_('User Preferences'))
        QApplication.setOverrideCursor(Qt.WaitCursor)
        QTimer.singleShot(0, self.initGui)

    def initGui(self):
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

import gettext
from PyQt5.QtWidgets import *
from Koo.Common import Common
from Koo import Rpc

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from Koo.Common.Ui import *

(FieldPreferencesDialogUi, FieldPreferencesDialogBase) = loadUiType(
    Common.uiPath('field_preferences.ui'))

# @brief FieldPreferencesDialog class provides a dialog for storing a value as default
# for a field in a model.


class FieldPreferencesDialog(QDialog, FieldPreferencesDialogUi):
    # @brief Constructs a new FieldPreferencesDialog.
    def __init__(self, field, name, model, value, dependance=[], parent=None):
        QDialog.__init__(self, parent)
        FieldPreferencesDialogUi.__init__(self)
        self.setupUi(self)

        self.uiFieldName.setText(name)
        self.uiDomain.setText(model)
        self.uiDefaultValue.setText((value and str(value)) or '/')
                                                    attributes)
                if not widget:
                    continue
                self.widgetDict[str(name)] = widget
                if 'string' in attributes:
                    label = attributes['string'] + ' :'
                else:
                    label = None
                self.container.addWidget(widget, label)
                if not self.focusable:
                    self.focusable = widget
        return self.widgetDict


(SearchFormWidgetUi,
 SearchFormWidgetBase) = loadUiType(Common.uiPath('searchform.ui'))


## @brief This class provides a form with the fields to search given a model.
#
# This class will emit the 'search()' signal each time the user pushes the 'search' button.
# Then you can use the 'value()' function to obtain a domain-like list.
class SearchFormWidget(AbstractSearchWidget, SearchFormWidgetUi):
    ## @brief Constructs a new SearchFormWidget.
    def __init__(self, parent=None):
        AbstractSearchWidget.__init__(self, '', parent)
        SearchFormWidgetUi.__init__(self)
        self.setupUi(self)

        self.model = None
        self.widgets = {}
from Koo.Screen.Screen import Screen
from Koo.Screen.ScreenDialog import ScreenDialog
from Koo.Model.Group import RecordGroup

from Koo.Dialogs.SearchDialog import SearchDialog
from Koo import Rpc

from Koo.Fields.AbstractFieldWidget import *
from Koo.Fields.AbstractFieldDelegate import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from Koo.Common.Ui import *

(ManyToOneFieldWidgetUi,
 ManyToOneFieldWidgetBase) = loadUiType(Common.uiPath('many2one.ui'))


class ManyToOneFieldWidget(AbstractFieldWidget, ManyToOneFieldWidgetUi):
    def __init__(self, parent, model, attrs={}):
        AbstractFieldWidget.__init__(self, parent, model, attrs)
        ManyToOneFieldWidgetUi.__init__(self)
        self.setupUi(self)

        self.uiText.installEventFilter(self)
        self.uiText.editingFinished.connect(self.match)
        self.pushNew.clicked.connect(self.new)
        self.pushOpen.clicked.connect(self.open)
        self.pushClear.clicked.connect(self.clear)

        self.setFocusProxy(self.uiText)
Beispiel #27
0
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Koo.Common.Ui import *
from Koo.Common import Common

(GoToIdDialogUi, GoToIdDialogBase) = loadUiType(Common.uiPath('gotoid.ui'))


class GoToIdDialog(QDialog, GoToIdDialogUi):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        GoToIdDialogUi.__init__(self)
        self.setupUi(self)
        self.uiId.selectAll()

        self.connect(self.pushAccept, SIGNAL('clicked()'), self.slotAccept)

    def slotAccept(self):
        self.result = self.uiId.value()
        self.accept()
Beispiel #28
0
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Common.Ui import *
from PyQt4.QtWebKit import *
from PyQt4.QtNetwork import *

from Koo.Common import Common
from Koo.Fields.AbstractFieldWidget import *

(WebFieldWidgetUi, WebFieldWidgetBase) = loadUiType(Common.uiPath('web.ui'))


## @brief The CookieJar class inherits QNetworkCookieJar to make a couple of functions public.
class CookieJar(QNetworkCookieJar):
    def __init__(self, parent=None):
        QNetworkCookieJar.__init__(self, parent)

    def allCookies(self):
        return QNetworkCookieJar.allCookies(self)

    def setAllCookies(self, cookieList):
        QNetworkCookieJar.setAllCookies(self, cookieList)


class WebFieldWidget(AbstractFieldWidget, WebFieldWidgetUi):
Beispiel #29
0
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from Koo.Common.Ui import *

from Koo.Common import Api
from Koo.Common import Common
from Koo import Rpc

from Koo.Screen.Screen import Screen
from Koo.Model.Group import RecordGroup
from Koo.Fields.AbstractFieldWidget import *
from Koo.Fields.AbstractFieldDelegate import *
from Koo.Dialogs.SearchDialog import SearchDialog

(ManyToOnePosFieldWidgetUi,
 ManyToOnePosFieldWidgetBase) = loadUiType(Common.uiPath('many2one_pos.ui'))


class ManyToOnePosFieldWidget(AbstractFieldWidget, ManyToOnePosFieldWidgetUi):
    def __init__(self, parent, model, attrs={}):
        AbstractFieldWidget.__init__(self, parent, model, attrs)
        ManyToOnePosFieldWidgetUi.__init__(self)
        self.setupUi(self)

        self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)

        self.screen.currentChanged.connect(self.selected)

        self.installPopupMenu(self.screen)
        self.old = None
        self.latestMatch = None
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
##############################################################################

from Koo.Common import Common
import FormWidget

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from Common.Ui import * 

(AttachmentDialogUi, AttachmentDialogBase) = loadUiType( Common.uiPath('win_attach.ui') )

class AttachmentDialog(QMainWindow, AttachmentDialogUi):

	def __init__(self, model, id, parent = None ):	
		QMainWindow.__init__(self, parent)
		AttachmentDialogUi.__init__(self)
		self.setupUi( self )

		# Center dialog on the screen
		rect = QApplication.desktop().screenGeometry()
		centerh = rect.width() / 2
		centerv = rect.height() / 2
		self.setGeometry( centerh - self.width() / 2, centerv - self.height() / 2, self.width(), self.height() )

		self.model = model