[developerteam getadooble] SF.net SVN: dooble:[1954] trunk/browser
Brought to you by:
textfield
|
From: <tex...@us...> - 2011-02-14 22:31:58
|
Revision: 1954
http://dooble.svn.sourceforge.net/dooble/?rev=1954&view=rev
Author: textfield
Date: 2011-02-14 22:31:52 +0000 (Mon, 14 Feb 2011)
Log Message:
-----------
Proper design.
Modified Paths:
--------------
trunk/browser/Include/durlwidget.h
trunk/browser/Source/durlwidget.cc
Modified: trunk/browser/Include/durlwidget.h
===================================================================
--- trunk/browser/Include/durlwidget.h 2011-02-14 22:16:46 UTC (rev 1953)
+++ trunk/browser/Include/durlwidget.h 2011-02-14 22:31:52 UTC (rev 1954)
@@ -65,140 +65,14 @@
Q_OBJECT
public:
- durlcompleter(QWidget *parent): QCompleter(parent)
- {
- m_tableView = new QTableView();
- m_tableView->setSelectionMode(QAbstractItemView::SingleSelection);
- m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
- m_tableView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
- m_tableView->verticalHeader()->setVisible(false);
- m_tableView->horizontalHeader()->setVisible(false);
- m_tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
- setPopup(m_tableView);
- }
+ durlcompleter(QWidget *parent);
+ ~durlcompleter();
+ bool exists(const QString &text) const;
+ void clear(void);
+ void setModel(QStandardItemModel *model);
+ void saveItemUrl(const QString &url);
+ void setCompletion(const QString &completion, const bool showAll = false);
- ~durlcompleter()
- {
- while(!m_purgedItems.isEmpty())
- delete m_purgedItems.takeFirst();
- }
-
- bool exists(const QString &text) const
- {
- return m_allUrls.contains(text);
- }
-
- void clear(void)
- {
- m_model->clear();
-
- while(!m_purgedItems.isEmpty())
- delete m_purgedItems.takeFirst();
- }
-
- void setModel(QStandardItemModel *model)
- {
- m_model = model;
- QCompleter::setModel(m_model);
- }
-
- void saveItemUrl(const QString &url)
- {
- m_allUrls.append(url);
- }
-
- void setCompletion(const QString &completion, const bool showAll = false)
- {
- /*
- ** Artificial filter.
- */
-
- if(!showAll && completion.trimmed().isEmpty())
- {
- popup()->setVisible(false);
- return;
- }
-
- m_model->blockSignals(true);
-
- while(!m_purgedItems.isEmpty())
- {
- m_model->setRowCount(m_model->rowCount() + 1);
- m_model->setItem(m_model->rowCount() - 1, m_purgedItems.takeFirst());
- }
-
- QList<QStandardItem *> list;
-
- if(completion.isEmpty())
- {
- for(int i = 0; i < m_model->rowCount(); i++)
- if(m_model->item(i))
- list.append(m_model->item(i)->clone());
- }
- else
- {
- QList<QStandardItem *> tmplists[4];
-
- for(int i = 0; i < m_model->rowCount(); i++)
- if(m_model->item(i))
- {
- if(m_model->item(i)->text() == completion)
- tmplists[0].append(m_model->item(i)->clone());
- else if(m_model->item(i)->text().startsWith(completion))
- tmplists[1].append(m_model->item(i)->clone());
- else if(m_model->item(i)->text().endsWith(completion))
- tmplists[2].append(m_model->item(i)->clone());
- else if(m_model->item(i)->text().contains(completion))
- tmplists[3].append(m_model->item(i)->clone());
- else
- m_purgedItems.append(m_model->item(i)->clone());
- }
-
- list << tmplists[0] << tmplists[1] << tmplists[2] << tmplists[3];
- tmplists[0].clear();
- tmplists[1].clear();
- tmplists[2].clear();
- tmplists[3].clear();
- }
-
- m_model->clear();
-
- while(list.size() > 1)
- {
- m_model->setRowCount(m_model->rowCount() + 1);
- m_model->setItem(m_model->rowCount() - 1, list.takeFirst());
- }
-
- /*
- ** Unblock signals on the model and add the last list entry. This little
- ** trick will allow for a smoother update of the table's contents.
- */
-
- m_model->blockSignals(false);
-
- while(!list.isEmpty())
- {
- m_model->setRowCount(m_model->rowCount() + 1);
- m_model->setItem(m_model->rowCount() - 1, list.takeFirst());
- }
-
- if(m_model->rowCount() > 0)
- {
- if(m_model->rowCount() > 10)
- m_tableView->setVerticalScrollBarPolicy
- (Qt::ScrollBarAlwaysOn);
- else
- m_tableView->setVerticalScrollBarPolicy
- (Qt::ScrollBarAlwaysOff);
-
- m_tableView->setFixedHeight
- (qMin(10, m_model->rowCount()) * m_tableView->rowHeight(0));
- complete();
- }
- else
- popup()->setVisible(false);
- }
-
private:
QTableView *m_tableView;
QStringList m_allUrls;
Modified: trunk/browser/Source/durlwidget.cc
===================================================================
--- trunk/browser/Source/durlwidget.cc 2011-02-14 22:16:46 UTC (rev 1953)
+++ trunk/browser/Source/durlwidget.cc 2011-02-14 22:31:52 UTC (rev 1954)
@@ -61,6 +61,141 @@
#include "dooble.h"
#include "durlwidget.h"
+durlcompleter::durlcompleter(QWidget *parent):QCompleter(parent)
+{
+ m_tableView = new QTableView();
+ m_tableView->setSelectionMode(QAbstractItemView::SingleSelection);
+ m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
+ m_tableView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+ m_tableView->verticalHeader()->setVisible(false);
+ m_tableView->horizontalHeader()->setVisible(false);
+ m_tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
+ setPopup(m_tableView);
+}
+
+durlcompleter::~durlcompleter()
+{
+ while(!m_purgedItems.isEmpty())
+ delete m_purgedItems.takeFirst();
+}
+
+bool durlcompleter::exists(const QString &text) const
+{
+ return m_allUrls.contains(text);
+}
+
+void durlcompleter::clear(void)
+{
+ m_model->clear();
+
+ while(!m_purgedItems.isEmpty())
+ delete m_purgedItems.takeFirst();
+}
+
+void durlcompleter::setModel(QStandardItemModel *model)
+{
+ m_model = model;
+ QCompleter::setModel(m_model);
+}
+
+void durlcompleter::saveItemUrl(const QString &url)
+{
+ m_allUrls.append(url);
+}
+
+void durlcompleter::setCompletion
+(const QString &completion, const bool showAll)
+{
+ /*
+ ** Artificial filter.
+ */
+
+ if(!showAll && completion.trimmed().isEmpty())
+ {
+ popup()->setVisible(false);
+ return;
+ }
+
+ m_model->blockSignals(true);
+
+ while(!m_purgedItems.isEmpty())
+ {
+ m_model->setRowCount(m_model->rowCount() + 1);
+ m_model->setItem(m_model->rowCount() - 1, m_purgedItems.takeFirst());
+ }
+
+ QList<QStandardItem *> list;
+
+ if(completion.isEmpty())
+ {
+ for(int i = 0; i < m_model->rowCount(); i++)
+ if(m_model->item(i))
+ list.append(m_model->item(i)->clone());
+ }
+ else
+ {
+ QList<QStandardItem *> tmplists[4];
+
+ for(int i = 0; i < m_model->rowCount(); i++)
+ if(m_model->item(i))
+ {
+ if(m_model->item(i)->text() == completion)
+ tmplists[0].append(m_model->item(i)->clone());
+ else if(m_model->item(i)->text().startsWith(completion))
+ tmplists[1].append(m_model->item(i)->clone());
+ else if(m_model->item(i)->text().endsWith(completion))
+ tmplists[2].append(m_model->item(i)->clone());
+ else if(m_model->item(i)->text().contains(completion))
+ tmplists[3].append(m_model->item(i)->clone());
+ else
+ m_purgedItems.append(m_model->item(i)->clone());
+ }
+
+ list << tmplists[0] << tmplists[1] << tmplists[2] << tmplists[3];
+ tmplists[0].clear();
+ tmplists[1].clear();
+ tmplists[2].clear();
+ tmplists[3].clear();
+ }
+
+ m_model->clear();
+
+ while(list.size() > 1)
+ {
+ m_model->setRowCount(m_model->rowCount() + 1);
+ m_model->setItem(m_model->rowCount() - 1, list.takeFirst());
+ }
+
+ /*
+ ** Unblock signals on the model and add the last list entry. This little
+ ** trick will allow for a smoother update of the table's contents.
+ */
+
+ m_model->blockSignals(false);
+
+ while(!list.isEmpty())
+ {
+ m_model->setRowCount(m_model->rowCount() + 1);
+ m_model->setItem(m_model->rowCount() - 1, list.takeFirst());
+ }
+
+ if(m_model->rowCount() > 0)
+ {
+ if(m_model->rowCount() > 10)
+ m_tableView->setVerticalScrollBarPolicy
+ (Qt::ScrollBarAlwaysOn);
+ else
+ m_tableView->setVerticalScrollBarPolicy
+ (Qt::ScrollBarAlwaysOff);
+
+ m_tableView->setFixedHeight
+ (qMin(10, m_model->rowCount()) * m_tableView->rowHeight(0));
+ complete();
+ }
+ else
+ popup()->setVisible(false);
+}
+
durlwidget::durlwidget(QWidget *parent):QLineEdit(parent)
{
goToolButton = new QToolButton(this);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|