diff --git a/src/lib/EntryView.cpp b/src/lib/EntryView.cpp index 30f9ca6..b793e5e 100644 --- a/src/lib/EntryView.cpp +++ b/src/lib/EntryView.cpp @@ -51,6 +51,8 @@ header()->setStretchLastSection(false); connect(header(),SIGNAL(sectionResized(int,int,int)),this,SLOT(OnColumnResized(int,int,int))); ContextMenu=new QMenu(this); setAlternatingRowColors(config.AlternatingRowColors); +disconnect(header(),SIGNAL(sectionClicked(int)),this,SLOT(sortByColumn(int))); +//TODO: connect with custom sort function } KeepassEntryView::~KeepassEntryView(){ @@ -356,13 +358,14 @@ drag->setPixmap(DragPixmap); drag->start(); } - +void KeepassEntryView::sortItems(int column,Qt::SortOrder order){}; void KeepassEntryView::paintEvent(QPaintEvent * event){ QTreeWidget::paintEvent(event); } + EntryViewItem::EntryViewItem(QTreeWidget *parent):QTreeWidgetItem(parent){ } @@ -378,3 +381,11 @@ EntryViewItem::EntryViewItem(QTreeWidgetItem *parent):QTreeWidgetItem(parent){ EntryViewItem::EntryViewItem(QTreeWidgetItem *parent, QTreeWidgetItem *preceding):QTreeWidgetItem(parent,preceding){ } + + +bool EntryViewItem::operator<(EntryViewItem& other){ +if(QString::localeAwareCompare( text(treeWidget()->sortColumn()),other.text(treeWidget()->sortColumn())) < 0) + return true; +else + return false; +} diff --git a/src/lib/EntryView.h b/src/lib/EntryView.h index 8616711..e43bf13 100644 --- a/src/lib/EntryView.h +++ b/src/lib/EntryView.h @@ -41,6 +41,7 @@ public: void updateColumns(); void refreshItems(); void showSearchResults(QList& results); + virtual void sortItems(int column,Qt::SortOrder order); Database* db; vectorItems; QMenu *ContextMenu; @@ -73,6 +74,7 @@ EntryViewItem(QTreeWidget *parent, QTreeWidgetItem * preceding); EntryViewItem(QTreeWidgetItem *parent); EntryViewItem(QTreeWidgetItem *parent, QTreeWidgetItem * preceding); CEntry* pEntry; +virtual bool operator<(EntryViewItem& other); };