7
7
* Description : a control widget for the AdvancedRename utility
9
* Copyright (C) 2009-2012 by Andi Clemens <andi dot clemens at googlemail dot com>
9
* Copyright (C) 2009-2012 by Andi Clemens <andi dot clemens at gmail dot com>
11
11
* This program is free software; you can redistribute it
12
12
* and/or modify it under the terms of the GNU General
60
class AdvancedRenameWidget::AdvancedRenameWidgetPriv
60
class AdvancedRenameWidget::Private
62
62
typedef AdvancedRenameWidget::ControlWidgets CWMask;
63
63
typedef AdvancedRenameWidget::LayoutStyle LStyle;
67
AdvancedRenameWidgetPriv() :
68
68
configExpandedStateDefault(true),
69
69
tooltipToggleButton(0),
70
70
modifiersToolButton(0),
100
100
CWMask controlWidgetsMask;
101
101
LStyle layoutStyle;
103
const QString AdvancedRenameWidget::AdvancedRenameWidgetPriv::configGroupName("AdvancedRename Widget");
104
const QString AdvancedRenameWidget::AdvancedRenameWidgetPriv::configExpandedStateEntry("Options are expanded");
103
const QString AdvancedRenameWidget::Private::configGroupName("AdvancedRename Widget");
104
const QString AdvancedRenameWidget::Private::configExpandedStateEntry("Options are expanded");
106
106
// --------------------------------------------------------
108
108
AdvancedRenameWidget::AdvancedRenameWidget(QWidget* parent)
109
: QWidget(parent), d(new AdvancedRenameWidgetPriv)
109
: QWidget(parent), d(new Private)
188
188
void AdvancedRenameWidget::setControlWidgets(ControlWidgets mask)
190
d->controlWidgetsMask = mask;
190
192
// we need a parser and at least one renaming option to successfully use
192
194
bool enable = d->parser && !(d->parser->options().isEmpty());
200
202
// layout specific
201
203
if (d->layoutStyle == LayoutNormal)
203
d->optionsLabel->setVisible(enable && (mask & TokenButtons) && (d->layoutStyle == LayoutNormal));
204
d->modifiersToolButton->setVisible(enableModBtn && (mask & ModifierToolButton) && (d->layoutStyle == LayoutNormal));
205
d->optionsLabel->setVisible(enable && (mask & TokenButtons));
206
d->modifiersToolButton->setVisible(enableModBtn && (mask & ModifierToolButton));
208
d->optionsButton->setVisible(enableModBtn && (mask & TokenButtons) && (d->layoutStyle == LayoutCompact));
209
d->modifiersButton->setVisible(enableModBtn && (mask & ModifierToolButton) && (d->layoutStyle == LayoutCompact));
210
d->optionsButton->setVisible(enableModBtn && (mask & TokenButtons));
211
d->modifiersButton->setVisible(enableModBtn && (mask & ModifierToolButton));
212
d->controlWidgetsMask = mask;
216
QMenu* AdvancedRenameWidget::createControlsMenu(QWidget* parent, QList<T*>& list)
215
QMenu* AdvancedRenameWidget::createControlsMenu(QWidget* parent, const RulesList& rules)
218
217
QMenu* menu = new QMenu(parent);
219
218
QAction* action = 0;
221
foreach(T* ctrl, list)
220
foreach(Rule* rule, rules)
223
action = ctrl->registerMenu(menu);
222
action = rule->registerMenu(menu);
230
connect(ctrl, SIGNAL(signalTokenTriggered(QString)),
229
connect(rule, SIGNAL(signalTokenTriggered(QString)),
231
230
d->renameInput, SLOT(slotAddToken(QString)));
243
QList<Option*> optionsList = d->parser->options();
244
QList<Modifier*> modifiersList = d->parser->modifiers();
242
RulesList optionsList = d->parser->options();
243
RulesList modifiersList = d->parser->modifiers();
246
245
if (d->layoutStyle == LayoutNormal)
338
337
d->renameInput = new AdvancedRenameInput;
339
338
d->renameInput->setToolTip(i18n("<p>Enter your renaming pattern here. Use the access buttons to quickly add renaming "
340
"options and modifiers. For further explanations, use the information toolbutton.</p>"));
339
"options and modifiers. For further explanation, use the information button.</p>"));
342
341
// --------------------------------------------------------