From b43309e8fe6bcf2f55b315f9599c274a4ea0e4d1 Mon Sep 17 00:00:00 2001 From: martravi Date: Sat, 20 Jul 2024 01:13:16 +0200 Subject: [PATCH] Port nandExtract to QT 6 --- breft_editor/texture.cpp | 2 +- nandExtract/black.png | Bin 2883 -> 172 bytes nandExtract/blue.png | Bin 2927 -> 222 bytes nandExtract/green.png | Bin 2883 -> 168 bytes nandExtract/grey.png | Bin 2882 -> 163 bytes nandExtract/icon.png | Bin 5140 -> 4705 bytes nandExtract/nandExtract.pro | 32 -------------------------------- nandExtract/nandwindow.cpp | 22 +++++++++++----------- nandExtract/nandwindow.ui | 25 +++++++++++-------------- nandExtract/pink.png | Bin 2897 -> 187 bytes 10 files changed, 23 insertions(+), 58 deletions(-) delete mode 100644 nandExtract/nandExtract.pro diff --git a/breft_editor/texture.cpp b/breft_editor/texture.cpp index 6b8203b..6849065 100644 --- a/breft_editor/texture.cpp +++ b/breft_editor/texture.cpp @@ -465,7 +465,7 @@ QImage ConvertTextureToImage( const QByteArray &ba, quint32 w, quint32 h, quint3 ret = TPL_ConvertCMPToBitMap( (quint8*)ba.constData(), &bitmapdata, w, h ); break; default: - qWarning() << "ConvertTextureToImage -> Unsupported format" << hex << format; + qWarning() << "ConvertTextureToImage -> Unsupported format" << Qt::hex << format; return QImage(); break; } diff --git a/nandExtract/black.png b/nandExtract/black.png index 512bae26ae03c6c6156c9a32808408059f8fdca4..408dc94e13e7fe008c87b6ef64e338aee6654262 100644 GIT binary patch delta 144 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 az;^)0t(lK(8YcSy0000oNTD(4I@hWpF_>y(BRM z@1v*(Rn2~Pa5!;5rIeJus!!IN@EN>cQdkeec1Rnd6@@n73~>qpr{r4-OY)0=b957Q zV{jt?=K-i+!*LCb3r&Mi$vKsxIe&AGd0?ej8Pq0$*<0$N+&fu1)0f%D(l4h7q8-bX w`P?H{)z0jp=?%;mj>lg-#Y*okBAw{t4?a_D;8X?IZvX%Q07*qoM6N<$g6>vT;s5{u delta 2920 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 SvBI_h0000P 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 this ); ui->mainToolBar->setVisible( false ); - this->setWindowTitle( "NAND Extract r" ); + this->setWindowTitle( "NAND Extract" ); //setup the block map SetUpBlockMap(); @@ -19,14 +19,14 @@ NandWindow::NandWindow( QWidget *parent ) : QMainWindow( parent ), ui( new Ui::N LoadSettings(); QFontMetrics fm( fontMetrics() ); - ui->treeWidget->header()->resizeSection( 0, fm.width( QString( 22, 'W' ) ) );//name - ui->treeWidget->header()->resizeSection( 1, fm.width( "WWWWW" ) );//entry # - ui->treeWidget->header()->resizeSection( 2, fm.width( "WWWWW" ) );//size - ui->treeWidget->header()->resizeSection( 3, fm.width( "WWWWWWWWW" ) );//uid - ui->treeWidget->header()->resizeSection( 4, fm.width( "WWWWWWWWW" ) );//gid - ui->treeWidget->header()->resizeSection( 5, fm.width( "WWWWWWWWW" ) );//x3 - ui->treeWidget->header()->resizeSection( 6, fm.width( "WWWWW" ) );//mode - ui->treeWidget->header()->resizeSection( 7, fm.width( "WWWWW" ) );//attr + ui->treeWidget->header()->resizeSection( 0, fm.horizontalAdvance( QString( 22, 'W' ) ) );//name + ui->treeWidget->header()->resizeSection( 1, fm.horizontalAdvance( "WWWWW" ) );//entry # + ui->treeWidget->header()->resizeSection( 2, fm.horizontalAdvance( "WWWWW" ) );//size + ui->treeWidget->header()->resizeSection( 3, fm.horizontalAdvance( "WWWWWWWWW" ) );//uid + ui->treeWidget->header()->resizeSection( 4, fm.horizontalAdvance( "WWWWWWWWW" ) );//gid + ui->treeWidget->header()->resizeSection( 5, fm.horizontalAdvance( "WWWWWWWWW" ) );//x3 + ui->treeWidget->header()->resizeSection( 6, fm.horizontalAdvance( "WWWWW" ) );//mode + ui->treeWidget->header()->resizeSection( 7, fm.horizontalAdvance( "WWWWW" ) );//attr connect( &nThread, SIGNAL( SendError( QString ) ), this, SLOT( GetError( QString ) ) ); connect( &nThread, SIGNAL( SendText( QString ) ), this, SLOT( GetStatusUpdate( QString ) ) ); @@ -264,7 +264,7 @@ void NandWindow::GetBlocksfromNand() quint32 freeSpace = 0; QList clusters = nThread.GetFats(); - if( !clusters.size() == 0x8000 ) + if( !(clusters.size() == 0x8000) ) { QMessageBox::warning( this, tr( "Error" ), tr( "Expected 0x8000 clusters from the nand, but got %1 instead!" ).arg( clusters.size(), 0, 16 ), QMessageBox::Ok ); return; @@ -318,7 +318,7 @@ void NandWindow::DrawBlockMap( QList newFile ) { if( blocks.size() != 0x1000 ) { - qWarning() << "NandWindow::DrawBlockMap -> current blocks are fucked up, son" << hex << blocks.size(); + qWarning() << "NandWindow::DrawBlockMap -> current blocks are fucked up, son" << Qt::hex << blocks.size(); return; } QPixmap blue( ":/blue.png" ); diff --git a/nandExtract/nandwindow.ui b/nandExtract/nandwindow.ui index ec586bc..fbe97ae 100644 --- a/nandExtract/nandwindow.ui +++ b/nandExtract/nandwindow.ui @@ -18,17 +18,17 @@ 0 - + 2 - Qt::Vertical + Qt::Orientation::Vertical - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu @@ -73,19 +73,16 @@ - Qt::ScrollBarAlwaysOn + Qt::ScrollBarPolicy::ScrollBarAsNeeded false - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - QPainter::HighQualityAntialiasing|QPainter::SmoothPixmapTransform|QPainter::TextAntialiasing + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - QGraphicsView::CacheBackground + QGraphicsView::CacheModeFlag::CacheBackground @@ -111,7 +108,7 @@ 0 0 1180 - 27 + 30 @@ -142,7 +139,7 @@ - Open Nand... + &Open Nand... Ctrl+O @@ -156,7 +153,7 @@ true - Show Usage... + &Show Usage... Ctrl+U @@ -164,7 +161,7 @@ - Boot2 + &Boot2 Ctrl+B @@ -175,7 +172,7 @@ true - Fix Names For FAT + &Fix Names For FAT diff --git a/nandExtract/pink.png b/nandExtract/pink.png index 138a1166d2d399fa9586e7e0de6a98813787684e..f228e1bb2475de85f3736ccc2301a23ecacceace 100644 GIT binary patch delta 159 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