X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=src%2Fgui%2Ffilepicker.cpp;h=2082ee92fe5a7ca49f8aa4177ee1f54e47bb7fe8;hb=2d556a3eb52664e928014a72ad18edc13281de7e;hp=288605274d0dc47d6978dc6eb3b2414b093f5ff8;hpb=417c77735e5e76ab8803694511b465206d64bf97;p=virtualjaguar
diff --git a/src/gui/filepicker.cpp b/src/gui/filepicker.cpp
index 2886052..2082ee9 100644
--- a/src/gui/filepicker.cpp
+++ b/src/gui/filepicker.cpp
@@ -108,7 +108,9 @@ printf("VSB size: %u, %u\n", sbSize3.width(), sbSize3.height());
// fileList->verticalScrollBar()->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
// (488/4) + 4 is the width of the object in the filelistmodel. Dunno why the QListView
// isn't picking that up. :-(
- fileList->setFixedWidth((488/4) + 4 + sbWidth);//ick
+ // 488/4 + 4 = 126
+ // 126 + 17 + 4 = 147 <-- correct width
+ fileList->setFixedWidth((488/4) + 4 + sbWidth2 + sbWidth5 + 1);//ick
// fileList->setFixedWidth((488/4) + 4 + 17 + 4);//sbWidth);//ick
// fileList->setSpacing(4);
@@ -153,9 +155,9 @@ printf("VSB size: %u, %u\n", sbSize3.width(), sbSize3.height());
dataLayout->addWidget(labels);
data = new QLabel(QString(tr(
"?MB Cartridge
"
- "????????
"
- "???
"
- "???"
+ "00000000
"
+ "?
"
+ "?"
)));
data->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
dataLayout->addWidget(data);
@@ -198,16 +200,30 @@ New sizes: 373x172 (label), 420x340 (cart)
connect(fileList->selectionModel(), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(UpdateSelection(const QModelIndex &, const QModelIndex &)));
connect(insertCart, SIGNAL(clicked()), this, SLOT(LoadButtonPressed()));
+
+ connect(fileList, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(CatchDoubleClick(const QModelIndex &)));
+
+// connect(fileList, SIGNAL(doubleClicked()), this, SLOT(LoadButtonPressed()));
+// This returns:
+// Object::connect: No such signal QListView::QAbstractItemView::doubleClicked() in src/gui/filepicker.cpp:203
}
void FilePickerWindow::keyPressEvent(QKeyEvent * e)
{
if (e->key() == Qt::Key_Escape)
+ {
hide();
+ emit(FilePickerHiding());
+ }
else if (e->key() == Qt::Key_Return)
LoadButtonPressed();
}
+void FilePickerWindow::CatchDoubleClick(const QModelIndex &)
+{
+ LoadButtonPressed();
+}
+
QString FilePickerWindow::GetSelectedPrettyName(void)
{
return prettyFilename;
@@ -342,7 +358,7 @@ void FilePickerWindow::UpdateSelection(const QModelIndex & current, const QModel
// should be valid.
// The DB takes precedence over the fileType.
if ((!haveUnknown && (romList[i].flags & FF_ROM))
- || (haveUnknown && (fileType == JST_ROM)))
+ || (haveUnknown && (fileType == JST_ROM) && !haveUniversalHeader))
{
cart = QImage(":/res/cart-blank.png");
QPainter painter(&cart);
@@ -350,11 +366,16 @@ void FilePickerWindow::UpdateSelection(const QModelIndex & current, const QModel
painter.end();
}
else if ((!haveUnknown && (romList[i].flags & FF_ALPINE))
- || (haveUnknown && (fileType == JST_ALPINE)))
+ || (haveUnknown
+ && ((fileType == JST_ALPINE) || ((fileType == JST_ROM) && haveUniversalHeader))))
{
- cart = QImage(":/res/alpine-file.png");
+ if (haveUniversalHeader)
+ cart = QImage(":/res/skunkboard-file.png");
+ else
+ cart = QImage(":/res/alpine-file.png");
}
- else if (haveUnknown && (fileType == JST_ABS_TYPE1 || fileType == JST_ABS_TYPE2 || fileType == JST_JAGSERVER))
+ else if (haveUnknown && (fileType == JST_ABS_TYPE1 || fileType == JST_ABS_TYPE2
+ || fileType == JST_JAGSERVER))
{
cart = QImage(":/res/homebrew-file.png");
}
@@ -392,10 +413,20 @@ void FilePickerWindow::UpdateSelection(const QModelIndex & current, const QModel
fileTypeString = QString(tr("*** UNKNOWN *** (%1 bytes)")).arg(fileSize);
}
#else
- if ((!haveUnknown && (romList[i].flags & FF_ROM)) || (haveUnknown && (fileType == JST_ROM)))
+ if ((!haveUnknown && (romList[i].flags & FF_ROM))
+ || (haveUnknown && (fileType == JST_ROM) && !haveUniversalHeader))
fileTypeString = QString(tr("%1MB Cartridge")).arg(fileSize / 1048576);
- else if ((!haveUnknown && (romList[i].flags & FF_ALPINE)) || (haveUnknown && (fileType == JST_ALPINE)))
- fileTypeString = QString(tr("%1MB Alpine ROM")).arg(fileSize / 1048576);
+ else if ((!haveUnknown && (romList[i].flags & FF_ALPINE))
+ || (haveUnknown
+ && ((fileType == JST_ALPINE) || ((fileType == JST_ROM) && haveUniversalHeader))))
+ {
+ if (haveUniversalHeader)
+ fileTypeString = QString(tr("%1MB Alpine ROM w/Universal Header"));
+ else
+ fileTypeString = QString(tr("%1MB Alpine ROM"));
+
+ fileTypeString = fileTypeString.arg((fileSize + 8192) / 1048576);
+ }
else if (haveUnknown && (fileType == JST_ABS_TYPE1 || fileType == JST_ABS_TYPE2))
fileTypeString = QString(tr("ABS/COF Executable (%1 bytes)")).arg(fileSize);
else if (haveUnknown && (fileType == JST_JAGSERVER))
@@ -416,8 +447,11 @@ void FilePickerWindow::UpdateSelection(const QModelIndex & current, const QModel
if (!haveUnknown && (romList[i].flags & FF_BAD_DUMP))
notes = "BAD DUMP";
- if (haveUniversalHeader)
- notes += " Universal Header detected";
+// if (haveUniversalHeader)
+// notes += " Universal Header detected";
+
+ if (!haveUnknown && (romList[i].flags & FF_REQ_BIOS))
+ notes += " Requires BIOS";
if (!haveUnknown && (romList[i].flags & FF_REQ_DSP))
notes += " Requires DSP";