123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- # flake8: noqa
- #
- # Copyright (C) 2011 Michael Pitidis, Hussein Abdulwahid.
- #
- # This file is part of Labelme.
- #
- # Labelme 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.
- #
- # Labelme 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 Labelme. If not, see <http://www.gnu.org/licenses/>.
- #
- try:
- from PyQt5.QtGui import *
- from PyQt5.QtCore import *
- from PyQt5.QtWidgets import *
- except ImportError:
- from PyQt4.QtGui import *
- from PyQt4.QtCore import *
- BB = QDialogButtonBox
- class ColorDialog(QColorDialog):
- def __init__(self, parent=None):
- super(ColorDialog, self).__init__(parent)
- self.setOption(QColorDialog.ShowAlphaChannel)
- # The Mac native dialog does not support our restore button.
- self.setOption(QColorDialog.DontUseNativeDialog)
- ## Add a restore defaults button.
- # The default is set at invocation time, so that it
- # works across dialogs for different elements.
- self.default = None
- self.bb = self.layout().itemAt(1).widget()
- self.bb.addButton(BB.RestoreDefaults)
- self.bb.clicked.connect(self.checkRestore)
- def getColor(self, value=None, title=None, default=None):
- self.default = default
- if title:
- self.setWindowTitle(title)
- if value:
- self.setCurrentColor(value)
- return self.currentColor() if self.exec_() else None
- def checkRestore(self, button):
- if self.bb.buttonRole(button) & BB.ResetRole and self.default:
- self.setCurrentColor(self.default)
|