예제 #1
0
void ColorSetDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const
{
    painter->save();
    if (! index.isValid())
        return;

    KoResource* resource = static_cast<KoResource*>(index.internalPointer());
    KoColorSet* colorSet = static_cast<KoColorSet*>(resource);

    if (option.state & QStyle::State_Selected) {
        painter->fillRect(option.rect, option.palette.highlight());
        painter->setPen(option.palette.highlightedText().color());
    }
    else {
        painter->setBrush(option.palette.text().color());
    }
    painter->drawText(option.rect.x() + 5, option.rect.y() + painter->fontMetrics().ascent() + 5, colorSet->name());

    int size = 7;
    for (int i = 0; i < colorSet->nColors() && i*size < option.rect.width(); i++) {
        QRect rect(option.rect.x() + i*size, option.rect.y() + option.rect.height() - size, size, size);
        painter->fillRect(rect, colorSet->getColor(i).color.toQColor());
    }

    painter->restore();
}
예제 #2
0
void ColorSetChooser::slotSave()
{
    KoResourceServer<KoColorSet> * rserver = KoResourceServerProvider::instance()->paletteServer();

    KoColorSet* colorset = new KoColorSet();
    colorset->setValid(true);

    QString saveLocation = rserver->saveLocation();
    QString name = m_nameEdit->text();
    int columns = m_columnEdit->value();

    bool newName = false;
    if(name.isEmpty()) {
        newName = true;
        name = i18n("Palette");
    }
    QFileInfo fileInfo(saveLocation + name + colorset->defaultFileExtension());

    int i = 1;
    while (fileInfo.exists()) {
        fileInfo.setFile(saveLocation + name + QString("%1").arg(i) + colorset->defaultFileExtension());
        i++;
    }
    colorset->setFilename(fileInfo.filePath());
    if(newName) {
        name = i18n("Palette %1", i);
    }
    colorset->setName(name);
    colorset->setColumnCount(columns);
    rserver->addResource(colorset);
}
예제 #3
0
/// Create an copied palette
KoColorSet::KoColorSet(const KoColorSet& rhs)
        : super("")
{
    setFilename(rhs.filename());
    m_ownData = false;
    m_name = rhs.m_name;
    m_comment = rhs.m_comment;
    m_columns = rhs.m_columns;
    m_colors = rhs.m_colors;
    setValid(true);
}
예제 #4
0
/// Create an copied palette
KoColorSet::KoColorSet(const KoColorSet& rhs)
        : QObject(0)
        , KoResource("")
{
    setFilename(rhs.filename());
    m_ownData = false;
    m_name = rhs.m_name;
    m_comment = rhs.m_comment;
    m_columns = rhs.m_columns;
    m_colors = rhs.m_colors;
    setValid(true);
}