1
/* ============================================================
3
* This file is a part of digiKam project
4
* http://www.digikam.org
7
* Description : an input widget for the AdvancedRename utility
9
* Copyright (C) 2009-2010 by Andi Clemens <andi dot clemens at gmx dot net>
11
* This program is free software; you can redistribute it
12
* and/or modify it under the terms of the GNU General
13
* Public License as published by the Free Software Foundation;
14
* either version 2, or (at your option)
17
* This program is distributed in the hope that it will be useful,
18
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
* GNU General Public License for more details.
22
* ============================================================ */
24
#ifndef ADVANCEDRENAMEINPUT_H
25
#define ADVANCEDRENAMEINPUT_H
34
#include <kcombobox.h>
38
#include "comboboxutilities.h"
49
class AdvancedRenameLineEditProxy : public ProxyLineEdit
55
AdvancedRenameLineEditProxy(QWidget* parent);
56
virtual void setWidget(QWidget* widget);
60
virtual void mousePressEvent(QMouseEvent* event);
61
virtual void mouseReleaseEvent(QMouseEvent* event);
65
AdvancedRenameLineEditProxy(const AdvancedRenameLineEditProxy&);
66
AdvancedRenameLineEditProxy& operator=(const AdvancedRenameLineEditProxy&);
69
// --------------------------------------------------------
71
class AdvancedRenameLineEdit : public QTextEdit
77
AdvancedRenameLineEdit(QWidget* parent = 0);
78
~AdvancedRenameLineEdit();
80
void setParser(Parser* parser);
81
Parser* parser() const;
83
void setParseTimerDuration(int milliseconds);
87
void slotSetText(const QString&);
88
void slotCursorPositionChanged();
92
void signalTextChanged(const QString&);
93
void signalTokenMarked(bool);
94
void signalReturnPressed();
98
virtual void keyPressEvent(QKeyEvent* e);
99
virtual void wheelEvent(QWheelEvent* e);
100
virtual void scrollContentsBy(int dx, int dy);
104
void slotTextChanged();
105
void slotParseTimer();
109
AdvancedRenameLineEdit(const AdvancedRenameLineEdit&);
110
AdvancedRenameLineEdit& operator=(const AdvancedRenameLineEdit&);
114
class AdvancedRenameLineEditPriv;
115
AdvancedRenameLineEditPriv* const d;
118
// --------------------------------------------------------
120
class AdvancedRenameInput : public KComboBox
126
AdvancedRenameInput(QWidget* parent = 0);
127
~AdvancedRenameInput();
129
void setParser(Parser* parser);
130
void setParseTimerDuration(int milliseconds);
132
QString text() const;
133
void setText(const QString& text);
137
void signalTextChanged(const QString&);
138
void signalTokenMarked(bool);
139
void signalReturnPressed();
143
void slotAddToken(const QString&);
144
void slotClearText();
145
void slotClearTextAndHistory();
148
void slotHighlightLineEdit();
149
void slotHighlightLineEdit(const QString& word);
153
virtual void changeEvent(QEvent* e);
157
void slotClearButtonPressed();
161
AdvancedRenameInput(const AdvancedRenameInput&);
162
AdvancedRenameInput& operator=(const AdvancedRenameInput&);
165
void writeSettings();
166
void enableHighlighter(bool enable);
170
class AdvancedRenameInputPriv;
171
AdvancedRenameInputPriv* const d;
174
} // namespace Digikam
176
#endif /* ADVANCEDRENAMEINPUT_H */