def _get_base_colors(self): colors = copy(self._get_selector().get_harmonized()) if colors is None: return None for i in self.base_colors.iterkeys(): n = len(colors) if i > n - 1: for t in range(i - n + 1): colors.append(None) colors[i] = self.base_colors[i] return colors
def _do_harmony(self): base = self._get_base_colors() if base is None: return colors = [] for c in base: if c is None: colors.append([]) else: colors.append(self.shader.shades(c, self._shades_parameter)) for i, row in enumerate(colors): for j, clr in enumerate(row): try: self.model.swatches[j][i].color = clr #self.swatches[i][j].setColor_(clr) except IndexError: print i, j
def restore(self, palette_filename=None): if palette_filename is None: palette_filename = locate_palette("default.gpl") if exists(palette_filename): palette = load_palette(palette_filename) self._load_palette(palette) settings = self.settings self.restoreGeometry(settings.value("geometry").toByteArray()) self.restoreState(settings.value("windowState").toByteArray()) selector_idx, ok = settings.value("selector/tab").toUInt() if ok: self.tabs.setCurrentIndex(selector_idx) mixer_idx, ok = settings.value("selector/mixer").toUInt() if ok: _, mixer = self.available_selector_mixers[mixer_idx] self.selector.setMixer(mixer, mixer_idx) clr = self._get_settings_color(settings, "current_color") if clr: self._select_color(clr) mixer_idx, ok = settings.value("palette/mixer").toUInt() if ok: _, mixer = self.available_mixers[mixer_idx] self.setMixer(mixer, mixer_idx) space_idx, ok = settings.value("matching/space").toUInt() if ok: self.matching_spaces.setCurrentIndex(space_idx) harmony_idx, ok = settings.value("harmonies/harmony").toUInt() if ok: self.harmonies.setCurrentIndex(harmony_idx) shader_idx, ok = settings.value("harmonies/shader").toUInt() if ok: self.shaders.setCurrentIndex(shader_idx) auto = settings.value("harmonies/auto").toBool() self.auto_harmony.setChecked(auto) harmony_param, ok = settings.value("harmonies/harmony_param").toUInt() if ok: self.harmony_slider.setValue(harmony_param) shader_param, ok = settings.value("harmonies/shader_param").toUInt() if ok: self.shades_slider.setValue(shader_param) nswatches = settings.beginReadArray("swatches") for idx in range(nswatches): settings.setArrayIndex(idx) j = idx % 5 i = idx // 5 clr = self._get_settings_color(settings, "color") if clr: self.swatches[i][j].setColor_(clr) settings.endArray() nclrs = settings.beginReadArray("scratchpad") colors = [] for idx in range(nclrs): settings.setArrayIndex(idx) clr = self._get_settings_color(settings, "color") w, ok = settings.value("width").toReal() if clr and ok: colors.append((clr, w)) self.scratchpad.colors = colors settings.endArray() self.undoStack.clear()