File indexing completed on 2024-04-21 04:32:07

0001 /*
0002  * Copyright (C) 2013-2015 by Stephen Allewell
0003  * steve.allewell@gmail.com
0004  *
0005  * This program is free software; you can redistribute it and/or modify
0006  * it under the terms of the GNU General Public License as published by
0007  * the Free Software Foundation; either version 2 of the License, or
0008  * (at your option) any later version.
0009  */
0010 
0011 #include "ImageElementDlg.h"
0012 
0013 #include <QList>
0014 
0015 #include <KHelpClient>
0016 #include <KLocalizedString>
0017 
0018 #include "Document.h"
0019 #include "Element.h"
0020 #include "SelectArea.h"
0021 
0022 ImageElementDlg::ImageElementDlg(QWidget *parent, ImageElement *imageElement, Document *document)
0023     : QDialog(parent)
0024     , m_imageElement(imageElement)
0025     , m_document(document)
0026 {
0027     setWindowModality(Qt::WindowModal);
0028 
0029     setWindowTitle(i18n("Image Element Properties"));
0030     ui.setupUi(this);
0031 
0032     m_selectArea = new SelectArea(ui.PreviewFrame, imageElement, document, QMap<int, QList<QRect>>());
0033     m_selectArea->setPatternRect(imageElement->patternRect());
0034 
0035     ui.PreviewFrame->setWidget(m_selectArea);
0036     ui.ShowBorder->setChecked(imageElement->showBorder());
0037     ui.BorderColor->setColor(imageElement->borderColor());
0038     ui.BorderThickness->setValue(double(imageElement->borderThickness()) / 10);
0039 }
0040 
0041 void ImageElementDlg::hideEvent(QHideEvent *event)
0042 {
0043     KConfigGroup(KSharedConfig::openConfig(), QStringLiteral("DialogSizes")).writeEntry(QStringLiteral("ImageElementDlg"), size());
0044 
0045     QDialog::hideEvent(event);
0046 }
0047 
0048 void ImageElementDlg::showEvent(QShowEvent *event)
0049 {
0050     QDialog::showEvent(event);
0051 
0052     if (KConfigGroup(KSharedConfig::openConfig(), QStringLiteral("DialogSizes")).hasKey(QStringLiteral("ImageElementDlg"))) {
0053         resize(KConfigGroup(KSharedConfig::openConfig(), QStringLiteral("DialogSizes")).readEntry(QStringLiteral("ImageElementDlg"), QSize()));
0054     }
0055 }
0056 
0057 void ImageElementDlg::on_DialogButtonBox_accepted()
0058 {
0059     m_imageElement->setPatternRect(m_selectArea->patternRect());
0060     m_imageElement->setShowBorder(ui.ShowBorder->isChecked());
0061     m_imageElement->setBorderColor(ui.BorderColor->color());
0062     m_imageElement->setBorderThickness(int(ui.BorderThickness->value() * 10));
0063 
0064     accept();
0065 }
0066 
0067 void ImageElementDlg::on_DialogButtonBox_rejected()
0068 {
0069     reject();
0070 }
0071 
0072 void ImageElementDlg::on_DialogButtonBox_helpRequested()
0073 {
0074     KHelpClient::invokeHelp(QStringLiteral("ImageElement"), QStringLiteral("kxstitch"));
0075 }
0076 
0077 #include "moc_ImageElementDlg.cpp"