aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp
diff options
context:
space:
mode:
authorKen Moore <ken@pcbsd.org>2016-09-27 14:24:25 -0400
committerKen Moore <ken@pcbsd.org>2016-09-27 14:24:25 -0400
commit9fe8cb1f455f5c0c029a1340076cb2cae4e2716d (patch)
tree2407de242a7dab5e7fc1ddd458a2704dcf671fd4 /src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp
parentMerge branch 'master' of github.com:trueos/lumina (diff)
downloadlumina-9fe8cb1f455f5c0c029a1340076cb2cae4e2716d.tar.gz
lumina-9fe8cb1f455f5c0c029a1340076cb2cae4e2716d.tar.bz2
lumina-9fe8cb1f455f5c0c029a1340076cb2cae4e2716d.zip
Get the new backend functional.
This is still disabled for the moment, but the initial tests seem to indicate that the new backend is faster and more stable than the current system.
Diffstat (limited to 'src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp')
-rw-r--r--src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp44
1 files changed, 37 insertions, 7 deletions
diff --git a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp
index 12fd36fe..e6017e77 100644
--- a/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp
+++ b/src-qt5/desktop-utils/lumina-fm/BrowserWidget.cpp
@@ -5,17 +5,21 @@
// See the LICENSE file for full details
//===========================================
#include "BrowserWidget.h"
+
+#include <QVBoxLayout>
+#include <QTimer>
+
BrowserWidget::BrowserWidget(QString objID, QWidget *parent) : QWidget(parent){
//Setup the Widget/UI
this->setLayout( new QVBoxLayout(this) );
-
+ this->setWhatsThis(objID);
//Setup the backend browser object
BROWSER = new Browser(this);
connect(BROWSER, SIGNAL(clearItems()), this, SLOT(clearItems()) );
connect(BROWSER, SIGNAL(itemUpdated(QString)), this, SLOT(itemUpdated(QString)) );
- connect(BROWSER, SIGNAL(itemUpdated(QString)), this, SLOT(itemUpdated(QString)) );
- connect(BROWSER, SIGNAL(itemUpdated(QString)), this, SLOT(itemUpdated(QString)) );
-
+ connect(BROWSER, SIGNAL(itemDataAvailable(QIcon, LFileInfo)), this, SLOT(itemDataAvailable(QIcon, LFileInfo)) );
+ connect(BROWSER, SIGNAL(itemsLoading(int)), this, SLOT(itemsLoading(int)) );
+ connect(this, SIGNAL(dirChange(QString)), BROWSER, SLOT(loadDirectory(QString)) );
listWidget = 0;
treeWidget = 0;
}
@@ -26,7 +30,33 @@ BrowserWidget::~BrowserWidget(){
void BrowserWidget::changeDirectory(QString dir){
if(BROWSER->currentDirectory()==dir){ return; } //already on this directory
- BROWSER->loadDirectory(dir);
+ emit dirChange(dir);
+}
+
+void BrowserWidget::showDetails(bool show){
+ //Clean up widgets first
+ if(show && listWidget!=0){
+ //Clean up list widget
+ listWidget->deleteLater();
+ listWidget = 0;
+ }else if(!show && treeWidget!=0){
+ treeWidget->deleteLater();
+ treeWidget = 0;
+ }
+ //Now create any new widgets
+ if(show && treeWidget == 0){
+ treeWidget = new DDTreeWidget(this);
+ this->layout()->addWidget(treeWidget);
+ if(!BROWSER->currentDirectory().isEmpty()){ emit dirChange(""); }
+ }else if(!show && listWidget==0){
+ listWidget = new DDListWidget(this);
+ this->layout()->addWidget(listWidget);
+ if(!BROWSER->currentDirectory().isEmpty()){ emit dirChange(""); }
+ }
+}
+
+bool BrowserWidget::hasDetails(){
+ return (treeWidget!=0);
}
// =================
@@ -43,11 +73,12 @@ void BrowserWidget::itemUpdated(QString item){
qDebug() << "item updated" << item;
QList<QTreeWidgetItem*> found = treeWidget->findItems(item.section("/",-1), Qt::MatchExactly, 0); //look for exact name match
if(found.isEmpty()){ return; } //no match
- QTreeWidgetItem *it = found[0]; //onlyp update the first match (should only ever be one - duplicate file names are disallowed)
+ QTreeWidgetItem *it = found[0]; //only update the first match (should only ever be one - duplicate file names are disallowed)
//it->setText(
}
void BrowserWidget::itemDataAvailable(QIcon ico, LFileInfo info){
+ qDebug() << "Item Data Available:" << info.fileName();
int num = 0;
if(listWidget!=0){
listWidget->addItem( new QListWidgetItem(ico, info.fileName(), listWidget) );
@@ -67,4 +98,3 @@ void BrowserWidget::itemDataAvailable(QIcon ico, LFileInfo info){
void BrowserWidget::itemsLoading(int total){
numItems = total; //save this for later
}
-
bgstack15