5#ifndef DSIMPLELISTVIEW_H
6#define DSIMPLELISTVIEW_H
9#include <DSimpleListItem>
10#include <dtkwidget_global.h>
15DWIDGET_BEGIN_NAMESPACE
17typedef bool (* SortAlgorithm) (
const DSimpleListItem *item1,
const DSimpleListItem *item2,
bool descendingSort);
18typedef bool (* SearchAlgorithm) (
const DSimpleListItem *item,
QString searchContent);
20class DSimpleListViewPrivate;
21class LIBDTKWIDGETSHARED_EXPORT
DSimpleListView :
public QWidget,
public DTK_CORE_NAMESPACE::DObject
36 void setRowHeight(
int height);
56 void setColumnHideFlags(
QList<bool> toggleHideFlags,
int alwaysVisibleColumn=-1);
66 void setColumnSortingAlgorithms(
QList<SortAlgorithm> *algorithms,
int sortColumn=-1,
bool descendingSort=
false);
73 void setSearchAlgorithm(SearchAlgorithm algorithm);
80 void setClipRadius(
int radius);
89 void setFrame(
bool enableFrame, QColor color=QColor(
"#000000"),
double opacity=0.1);
124 void clearSelections(
bool clearLastSelection=
true);
145 void search(
QString searchContent);
150 void setSingleSelect(
bool singleSelect);
155 void keepSelectWhenClickBlank(
bool keep);
158 void selectAllItems();
159 void selectFirstItem();
160 void selectLastItem();
161 void selectNextItem();
162 void selectPrevItem();
164 void shiftSelectPageDown();
165 void shiftSelectPageUp();
166 void shiftSelectToEnd();
167 void shiftSelectToHome();
168 void shiftSelectToNext();
169 void shiftSelectToPrev();
171 void scrollPageDown();
174 void ctrlScrollPageDown();
175 void ctrlScrollPageUp();
176 void ctrlScrollToEnd();
177 void ctrlScrollToHome();
180 virtual void leaveEvent(
QEvent * event);
182 QPixmap arrowDownDarkHoverImage;
183 QPixmap arrowDownDarkNormalImage;
184 QPixmap arrowDownDarkPressImage;
185 QPixmap arrowDownHoverImage;
186 QPixmap arrowDownLightHoverImage;
187 QPixmap arrowDownLightNormalImage;
188 QPixmap arrowDownLightPressImage;
189 QPixmap arrowDownNormalImage;
190 QPixmap arrowDownPressImage;
191 QPixmap arrowUpDarkHoverImage;
192 QPixmap arrowUpDarkNormalImage;
193 QPixmap arrowUpDarkPressImage;
194 QPixmap arrowUpHoverImage;
195 QPixmap arrowUpLightHoverImage;
196 QPixmap arrowUpLightNormalImage;
197 QPixmap arrowUpLightPressImage;
198 QPixmap arrowUpNormalImage;
199 QPixmap arrowUpPressImage;
200 QString backgroundColor =
"#ffffff";
201 QString scrollbarColor =
"#ffffff";
202 QString searchColor =
"#000000";
203 QString titleAreaColor =
"#ffffff";
204 QString titleColor =
"#000000";
205 QString titleLineColor =
"#000000";
206 QColor frameColor = QColor(
"#000000");
207 double backgroundOpacity = 0.03;
208 double frameOpacity = 0.1;
209 double titleAreaOpacity = 0.02;
211 qreal scrollbarFrameHoverOpacity = 0;
212 qreal scrollbarFrameNormalOpacity = 0;
213 qreal scrollbarFramePressOpacity = 0;
214 qreal scrollbarHoverOpacity = 0.7;
215 qreal scrollbarNormalOpacity = 0.5;
216 qreal scrollbarPressOpacity = 0.8;
220 void changeColumnVisible(
int index,
bool visible,
QList<bool> columnVisibles);
221 void changeSortingStatus(
int index,
bool sortingOrder);
230 void keyPressEvent(QKeyEvent *keyEvent);
231 void mouseMoveEvent(QMouseEvent *mouseEvent);
232 void mousePressEvent(QMouseEvent *mouseEvent);
233 void mouseReleaseEvent(QMouseEvent *mouseEvent);
234 void paintEvent(QPaintEvent *);
235 void wheelEvent(QWheelEvent *event);
237 void paintScrollbar(QPainter *painter);
239 void selectPrevItemWithOffset(
int scrollOffset);
240 void selectNextItemWithOffset(
int scrollOffset);
241 void shiftSelectNextItemWithOffset(
int scrollOffset);
242 void shiftSelectPrevItemWithOffset(
int scrollOffset);
244 int getBottomRenderOffset();
246 int getScrollAreaHeight();
247 int getScrollbarHeight();
251 void shiftSelectItemsWithBound(
int selectionStartIndex,
int selectionEndIndex);
252 int adjustRenderOffset(
int offset);
254 void startScrollbarHideTimer();
256 bool isMouseAtScrollArea(
int x);
257 bool isMouseAtTitleArea(
int y);
262 void hideScrollbar();