19#include <KoImageResource.h>
21#include <tqlineedit.h>
23#include <tqpushbutton.h>
25#include <tqvalidator.h>
28#include <kstandarddirs.h>
29#include <tdetempfile.h>
30#include <kcolordialog.h>
31#include <kinputdialog.h>
33#include <tdemessagebox.h>
36#include "kis_palette.h"
37#include "kis_palette_view.h"
38#include "kis_custom_palette.h"
39#include "kis_resource_mediator.h"
40#include "kis_resourceserver.h"
42KisCustomPalette::KisCustomPalette(TQWidget *parent,
const char* name,
const TQString& caption, KisView* view)
43 : KisWdgCustomPalette(parent, name), m_view(view)
53 this->view->setPalette(m_palette);
55 connect(addColor, TQ_SIGNAL(pressed()),
this, TQ_SLOT(slotAddNew()));
56 connect(removeColor, TQ_SIGNAL(pressed()),
this, TQ_SLOT(slotRemoveCurrent()));
57 connect(addPalette, TQ_SIGNAL(pressed()),
this, TQ_SLOT(slotAddPredefined()));
60KisCustomPalette::~KisCustomPalette() {
65void KisCustomPalette::setPalette(
KisPalette* p) {
70 view->setPalette(m_palette);
73void KisCustomPalette::setEditMode(
bool b) {
77 addPalette->setText(i18n(
"Save changes"));
79 addPalette->setText(i18n(
"Add to Predefined Palettes"));
83void KisCustomPalette::slotAddNew() {
89 int result = KColorDialog::getColor(color);
90 if (result != KColorDialog::Accepted)
94 TQRegExpValidator validator(TQRegExp(
".*"),
this);
95 TQString name = KInputDialog::getText(i18n(
"Add Color to Palette"),
96 i18n(
"Color name (optional):"),
102 KisPaletteEntry entry;
106 m_palette->add(entry);
109 view->setPalette(m_palette);
112void KisCustomPalette::slotRemoveCurrent() {
113 m_palette->remove(view->currentEntry());
115 view->setPalette(m_palette);
118void KisCustomPalette::slotAddPredefined() {
119 m_palette->setName(palettename->text());
124 TQString dir = TDEGlobal::dirs()->saveLocation(
"data",
"chalk/palettes");
128 KTempFile file(dir, extension);
132 m_palette->setFilename(file.name());
137 if (!m_palette->save()) {
138 KMessageBox::error(0, i18n(
"Cannot write to palette file %1. Maybe it is read-only.")
139 .arg(m_palette->filename()), i18n(
"Palette"));
147 m_server->addResource(
new KisPalette(*m_palette));
151#include "kis_custom_palette.moc"
Open Gimp, Photoshop or RIFF palette files.