summaryrefslogtreecommitdiff
path: root/cad/src/commands/ThermometerProperties/ThermoProp.py
blob: ee9b14ed2f148f025c91f5676030b02474f4ea87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright 2004-2007 Nanorex, Inc.  See LICENSE file for details.
"""
ThermoProp.py - edit properties of Thermometer jig

$Id$
"""

from PyQt4 import QtGui
from PyQt4.Qt import QDialog
from PyQt4.Qt import SIGNAL
from PyQt4.Qt import QColorDialog
from commands.ThermometerProperties.ThermoPropDialog import Ui_ThermoPropDialog
from widgets.widget_helpers import RGBf_to_QColor, QColor_to_RGBf, get_widget_with_color_palette

class ThermoProp(QDialog, Ui_ThermoPropDialog):
    def __init__(self, thermo, glpane):

        QDialog.__init__(self)
        self.setupUi(self)
        self.connect(self.cancel_btn, SIGNAL("clicked()"), self.reject)
        self.connect(self.ok_btn, SIGNAL("clicked()"), self.accept)
        self.connect(self.choose_color_btn, SIGNAL("clicked()"), self.change_jig_color)

        self.jig = thermo
        self.glpane = glpane

        jigtype_name = self.jig.__class__.__name__
        self.setWindowIcon(QtGui.QIcon("ui/border/"+ jigtype_name))


    def setup(self):

        self.jig_attrs = self.jig.copyable_attrs_dict() # Save the jig's attributes in case of Cancel.

        # Jig color
        self.jig_QColor = RGBf_to_QColor(self.jig.normcolor) # Used as default color by Color Chooser
        self.jig_color_pixmap = get_widget_with_color_palette(
                self.jig_color_pixmap, self.jig_QColor)

        # Jig name
        self.nameLineEdit.setText(self.jig.name)

        self.molnameLineEdit.setText(self.jig.atoms[0].molecule.name)

    def change_jig_color(self):
        """
        Slot method to change the jig's color.
        """
        color = QColorDialog.getColor(self.jig_QColor, self)

        if color.isValid():
            self.jig_QColor = color
            self.jig_color_pixmap = get_widget_with_color_palette(
                self.jig_color_pixmap, self.jig_QColor)
            self.jig.color = self.jig.normcolor = QColor_to_RGBf(color)
            self.glpane.gl_update()

    def accept(self):
        """
        Slot for the 'OK' button
        """
        self.jig.try_rename(self.nameLineEdit.text())
        self.jig.assy.w.win_update() # Update model tree
        self.jig.assy.changed()
        QDialog.accept(self)

    def reject(self):
        """
        Slot for the 'Cancel' button
        """
        self.jig.attr_update(self.jig_attrs) # Restore attributes of the jig.
        self.glpane.gl_update()
        QDialog.reject(self)