11#include <QStyledItemDelegate>
13#include <QInputDialog>
17#include <klocalizedstring.h>
41 QSize
sizeHint(
const QStyleOptionViewItem & option,
const QModelIndex & index)
const override {
42 return QSize(QStyledItemDelegate::sizeHint(option, index).width(),
43 qMin(QStyledItemDelegate::sizeHint(option, index).width(), 25));
53 void paint(QPainter *,
const QStyleOptionViewItem &,
const QModelIndex &)
const override;
58 if (! index.isValid())
63 if (option.state & QStyle::State_Selected) {
64 painter->setPen(QPen(option.palette.highlight(), 2.0));
65 painter->fillRect(option.rect, option.palette.highlight());
66 painter->setPen(option.palette.highlightedText().color());
69 painter->setPen(option.palette.text().color());
71 int margin = option.rect.height() - painter->fontMetrics().height();
72 margin = floor(margin/2);
73 painter->drawText(option.rect.x() + 5, option.rect.y() + painter->fontMetrics().ascent() + margin, name);
77 : QDockWidget(i18n(
"Task Sets"))
81 QWidget* widget =
new QWidget(
this);
87 recordButton->setCheckable(
true);
92 saveButton->setEnabled(
false);
95 chooserButton->setAutoRaise(
true);
100 itemChooser->setFixedSize(500, 250);
104 chooserButton->setPopupWidget(itemChooser);
111 connect( tasksetView, SIGNAL(clicked(QModelIndex)),
127 m_canvas->viewManager()->actionCollection()->disconnect(
this);
133 setEnabled(canvas != 0);
145 if(action && !action->objectName().isEmpty() &&
146 !
m_blocked && recordButton->isChecked()) {
148 saveButton->setEnabled(
true);
156 if (action && action->isEnabled()) {
183 actionNames.append(action->objectName());
185 taskset->setActionList(actionNames);
186 taskset->setValid(
true);
189 if (name.isEmpty()) {
190 name = i18n(
"Taskset");
192 QFileInfo fileInfo(saveLocation + name + taskset->defaultFileExtension());
194 bool fileOverwriteAccepted =
false;
197 while(!fileOverwriteAccepted) {
198 name = QInputDialog::getText(
this, i18n(
"Taskset Name"),
199 i18n(
"Name:"), QLineEdit::Normal,
201 if (name.isNull() || name.isEmpty()) {
204 fileInfo = QFileInfo(saveLocation + name.split(
" ").join(
"_") + taskset->defaultFileExtension());
205 if (fileInfo.exists()) {
206 int res = QMessageBox::warning(
this, i18nc(
"@title:window",
"Name Already Exists")
207 , i18n(
"The name '%1' already exists, do you wish to overwrite it?", name)
208 , QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
209 if (res == QMessageBox::Yes) fileOverwriteAccepted =
true;
211 fileOverwriteAccepted =
true;
216 taskset->setName(name);
217 taskset->setFilename(fileInfo.fileName());
223 saveButton->setEnabled(
false);
233 saveButton->setEnabled(
true);
235 QAction* action =
m_canvas->viewManager()->actionCollection()->action(actionName);
QList< QString > QStringList
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QList< KisKXMLGUIClient * > childClients()
virtual KisKActionCollection * actionCollection() const
void setListViewMode(ListViewMode viewMode)
void showTaggingBar(bool show)
void setRowHeight(int rowHeight)
Sets the height of the view rows.
void setItemDelegate(QAbstractItemDelegate *delegate)
Sets a custom delegate for the view.
static KisResourceLoaderRegistry * instance()
void registerLoader(KisResourceLoaderBase *loader)
static bool addResourceWithUserInput(QWidget *widgetParent, KoResourceSP resource, QString storageLocation="")
KisTasksetDelegate(QObject *parent=0)
~KisTasksetDelegate() override
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
reimplemented
KisTasksetResourceDelegate(QObject *parent=0)
~KisTasksetResourceDelegate() override
void paint(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const override
reimplemented
KisMainWindow * mainWindow() const
virtual KisKActionCollection * actionCollection() const
QString saveLocation()
Returns path where to save user defined and imported resources to.
void actionTriggered(QAction *action)
KoResourceServer< TasksetResource > * m_rserver
void resourceSelected(KoResourceSP resource)
QPointer< KisCanvas2 > m_canvas
void setCanvas(KoCanvasBase *canvas) override
void activated(const QModelIndex &index)
void unsetCanvas() override
~TasksetDockerDock() override
void addAction(QAction *action)
QAction * actionFromIndex(const QModelIndex &index)
QVector< QAction * > actions()
QIcon loadIcon(const QString &name)
static void addResourceLoader()