]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/filepicker.cpp
Incremental improvements to the file picker, introduction of ImageDelegate
[virtualjaguar] / src / gui / filepicker.cpp
index 13cc4d1ad11b08863b36e8dd42616dbfd78d9bde..52117362d37b98184392f298864bab397efeda1f 100644 (file)
@@ -9,12 +9,15 @@
 // Who  When        What
 // ---  ----------  -------------------------------------------------------------
 // JLH  01/22/2010  Created this file
+// JLH  02/06/2010  Modified to use Qt model/view framework
 //
 
 #include "filepicker.h"
 
 #include "crc32.h"
+#include "filelistmodel.h"
 #include "filethread.h"
+#include "imagedelegate.h"
 #include "settings.h"
 #include "types.h"
 
@@ -112,20 +115,50 @@ FilePickerWindow::FilePickerWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt:
 {
        setWindowTitle("Insert Cartridge...");
 
-       fileList = new QListWidget(this);
+#if 0
+       fileList2 = new QListWidget(this);
 //     addWidget(fileList);
 
        QVBoxLayout * layout = new QVBoxLayout();
 //     layout->setSizeConstraint(QLayout::SetFixedSize);
        setLayout(layout);
 
-       layout->addWidget(fileList);
+       layout->addWidget(fileList2);
 
 //     PopulateList();
        fileThread = new FileThread(this);
-       fileThread->Go(fileList);
+
+       /*bool b =*/ connect(fileThread, SIGNAL(FoundAFile(unsigned long)), this, SLOT(AddFileToList(unsigned long)));
+//printf("FilePickerWindow: Connection to FileThread %s...\n", (b ? "succeeded" : "failed"));
+
+       fileThread->Go(fileList2);
+#else
+//is there any reason why this must be cast as a QAbstractListModel?
+//Also, need to think about data structure for the model...
+       model = new FileListModel();
+       fileList = new QListView();
+       fileList->setModel(model);
+       ImageDelegate * delegate = new ImageDelegate(this);
+       fileList->setItemDelegate(delegate);
+
+       QVBoxLayout * layout = new QVBoxLayout;
+       setLayout(layout);
+
+       layout->addWidget(fileList);
+       ((FileListModel *)model)->AddData(QIcon(":/res/generic.png"));
+       ((FileListModel *)model)->AddData(QIcon(":/res/generic.png"));
+#endif
 }
 
+// Need a slot here to pickup stuff from the thread...
+
+void FilePickerWindow::AddFileToList(unsigned long index)
+{
+       printf("--> Found CRC: %08X...\n", romList2[index].crc32);
+}
+
+
+/*
 void FilePickerWindow::PopulateList(void)
 {
        QDir romDir(vjs.ROMPath);
@@ -161,4 +194,4 @@ printf("FilePickerWindow: Found match [%s]...\n", romList2[j].name);
                delete[] buffer;
        }
 }
-
+*/