From b4fddfaf78cb35a39b34b931d159c9e2759abbf1 Mon Sep 17 00:00:00 2001 From: kj16609 Date: Mon, 3 Nov 2025 13:25:29 -0500 Subject: [PATCH] Add record counter to processed count --- .../src/gui/hydrus/TagServiceWidget.cpp | 60 +++++++++++-------- .../src/gui/hydrus/TagServiceWidget.hpp | 3 +- .../src/gui/hydrus/TagServiceWorker.cpp | 6 +- .../src/gui/hydrus/TagServiceWorker.hpp | 5 +- 4 files changed, 41 insertions(+), 33 deletions(-) diff --git a/HydrusImporter/src/gui/hydrus/TagServiceWidget.cpp b/HydrusImporter/src/gui/hydrus/TagServiceWidget.cpp index 20f216e..c0ec3c9 100644 --- a/HydrusImporter/src/gui/hydrus/TagServiceWidget.cpp +++ b/HydrusImporter/src/gui/hydrus/TagServiceWidget.cpp @@ -128,10 +128,11 @@ void TagServiceWidget::updateTime() const auto hours = time_elapsed / 3600000; const auto minutes = ( time_elapsed % 3600000 ) / 60000; const auto seconds = ( time_elapsed % 60000 ) / 1000; - ui->statusLabel->setText( QString( "Finished: %1:%2:%3" ) - .arg( hours, 2, 10, QChar( '0' ) ) - .arg( minutes, 2, 10, QChar( '0' ) ) - .arg( seconds, 2, 10, QChar( '0' ) ) ); + ui->statusLabel->setText( + QString( "Finished: %1:%2:%3" ) + .arg( hours, 2, 10, QChar( '0' ) ) + .arg( minutes, 2, 10, QChar( '0' ) ) + .arg( seconds, 2, 10, QChar( '0' ) ) ); return; } @@ -147,14 +148,15 @@ void TagServiceWidget::updateTime() const double current_rate = getMappingsPerSecond(); const double avg_rate = getAverageMappingsPerMinute(); - ui->statusLabel->setText( QString( "ETA: %1:%2:%3 | Rate: %L4/s | Avg: %L5/min" ) - .arg( hours, 2, 10, QChar( '0' ) ) - .arg( minutes, 2, 10, QChar( '0' ) ) - .arg( seconds, 2, 10, QChar( '0' ) ) - // .arg( total_processed, 2, 10, QChar( '0' ) ) - // .arg( to_process, 2, 10, QChar( '0' ) ) - .arg( static_cast< int >( current_rate ) ) - .arg( static_cast< int >( avg_rate ) ) + ui->statusLabel->setText( + QString( "ETA: %1:%2:%3 | Rate: %L4/s | Avg: %L5/min" ) + .arg( hours, 2, 10, QChar( '0' ) ) + .arg( minutes, 2, 10, QChar( '0' ) ) + .arg( seconds, 2, 10, QChar( '0' ) ) + // .arg( total_processed, 2, 10, QChar( '0' ) ) + // .arg( to_process, 2, 10, QChar( '0' ) ) + .arg( static_cast< int >( current_rate ) ) + .arg( static_cast< int >( avg_rate ) ) ); } @@ -171,15 +173,19 @@ void TagServiceWidget::updateProcessed() ui->progressBar->setMaximum( static_cast< int >( to_process / multip ) ); } -void TagServiceWidget::processedMappings( std::size_t count ) +void TagServiceWidget::processedMappings( std::size_t count, std::size_t record_count ) { mappings_processed += count; + records_processed += record_count; recordMappingProcessed( count ); QLocale locale { QLocale::English, QLocale::UnitedStates }; locale.setNumberOptions( QLocale::DefaultNumberOptions ); - ui->mappingsCount - ->setText( QString( "Mappings: %L1 (%L2 processed)" ).arg( m_info.num_mappings ).arg( mappings_processed ) ); + ui->mappingsCount->setText( + QString( "Mappings: %L1 (%L2 processed)\nRecords: (%L3 Records)" ) + .arg( m_info.num_mappings ) + .arg( mappings_processed ) + .arg( records_processed ) ); updateProcessed(); updateTime(); @@ -188,8 +194,8 @@ void TagServiceWidget::processedMappings( std::size_t count ) void TagServiceWidget::processedParents( std::size_t count ) { parents_processed += count; - ui->parentsCount - ->setText( QString( "Parents: %L1 (%L2 processed)" ).arg( m_info.num_parents ).arg( parents_processed ) ); + ui->parentsCount->setText( + QString( "Parents: %L1 (%L2 processed)" ).arg( m_info.num_parents ).arg( parents_processed ) ); updateProcessed(); updateTime(); @@ -198,8 +204,8 @@ void TagServiceWidget::processedParents( std::size_t count ) void TagServiceWidget::processedAliases( std::size_t count ) { aliases_processed += count; - ui->aliasesCount - ->setText( QString( "Aliases: %L1 (%L2 processed)" ).arg( m_info.num_aliases ).arg( aliases_processed ) ); + ui->aliasesCount->setText( + QString( "Aliases: %L1 (%L2 processed)" ).arg( m_info.num_aliases ).arg( aliases_processed ) ); updateProcessed(); updateTime(); @@ -215,9 +221,11 @@ void TagServiceWidget::setMaxMappings( std::size_t count ) { m_info.num_mappings = count; if ( mappings_processed > 0 ) - ui->mappingsCount->setText( QString( "Mappings: %L1 (%L2 processed)" ) - .arg( m_info.num_mappings ) - .arg( mappings_processed ) ); + ui->mappingsCount->setText( + QString( "Mappings: %L1 (%L2 processed)\nRecords: (%L3 Records)" ) + .arg( m_info.num_mappings ) + .arg( mappings_processed ) + .arg( records_processed ) ); else ui->mappingsCount->setText( QString( "Mappings: %L1" ).arg( m_info.num_mappings ) ); } @@ -226,8 +234,8 @@ void TagServiceWidget::setMaxParents( std::size_t count ) { m_info.num_parents = count; if ( parents_processed > 0 ) - ui->parentsCount - ->setText( QString( "Parents: %L1 (%L2 processed)" ).arg( m_info.num_parents ).arg( parents_processed ) ); + ui->parentsCount->setText( + QString( "Parents: %L1 (%L2 processed)" ).arg( m_info.num_parents ).arg( parents_processed ) ); else ui->parentsCount->setText( QString( "Parents: %L1" ).arg( m_info.num_parents ) ); } @@ -236,8 +244,8 @@ void TagServiceWidget::setMaxAliases( std::size_t count ) { m_info.num_aliases = count; if ( aliases_processed > 0 ) - ui->aliasesCount - ->setText( QString( "Aliases: %L1 (%L2 processed)" ).arg( m_info.num_aliases ).arg( aliases_processed ) ); + ui->aliasesCount->setText( + QString( "Aliases: %L1 (%L2 processed)" ).arg( m_info.num_aliases ).arg( aliases_processed ) ); else ui->aliasesCount->setText( QString( "Aliases: %L1" ).arg( m_info.num_aliases ) ); } diff --git a/HydrusImporter/src/gui/hydrus/TagServiceWidget.hpp b/HydrusImporter/src/gui/hydrus/TagServiceWidget.hpp index 485a811..7a13834 100644 --- a/HydrusImporter/src/gui/hydrus/TagServiceWidget.hpp +++ b/HydrusImporter/src/gui/hydrus/TagServiceWidget.hpp @@ -21,6 +21,7 @@ class TagServiceWidget : public QWidget std::size_t mappings_processed { 0 }; std::size_t parents_processed { 0 }; std::size_t aliases_processed { 0 }; + std::size_t records_processed { 0 }; idhan::hydrus::ServiceInfo m_info; QString m_name; bool m_preprocessed { false }; @@ -63,7 +64,7 @@ class TagServiceWidget : public QWidget void updateProcessed(); - void processedMappings( std::size_t count ); + void processedMappings( std::size_t count, std::size_t record_count ); void processedParents( std::size_t count ); void processedAliases( std::size_t count ); diff --git a/HydrusImporter/src/gui/hydrus/TagServiceWorker.cpp b/HydrusImporter/src/gui/hydrus/TagServiceWorker.cpp index 3d1f146..a4ba5b2 100644 --- a/HydrusImporter/src/gui/hydrus/TagServiceWorker.cpp +++ b/HydrusImporter/src/gui/hydrus/TagServiceWorker.cpp @@ -230,11 +230,11 @@ void TagServiceWorker::processMappingsBatch( auto dumpMappings = [ & ]() { + const auto record_count { hash_id_set.size() }; hash_id_set.clear(); processPairs( pairs ); pairs.clear(); - // pairs.reserve( pair_limit ); Not needed as clear() does not affect the result of capacity() - emit processedMappings( mappings_counter ); + emit processedMappings( mappings_counter, record_count ); mappings_counter = 0; }; @@ -254,8 +254,6 @@ void TagServiceWorker::processMappingsBatch( } dumpMappings(); - - emit processedMappings( mappings_counter ); } void TagServiceWorker::importMappings() diff --git a/HydrusImporter/src/gui/hydrus/TagServiceWorker.hpp b/HydrusImporter/src/gui/hydrus/TagServiceWorker.hpp index b3a7536..5745f4d 100644 --- a/HydrusImporter/src/gui/hydrus/TagServiceWorker.hpp +++ b/HydrusImporter/src/gui/hydrus/TagServiceWorker.hpp @@ -61,13 +61,14 @@ class TagServiceWorker final : public QObject, public QRunnable void processSiblings( const std::vector< std::pair< idhan::TagID, idhan::TagID > >& pairs ) const; void processMappingsBatch( - const idhan::hydrus::TransactionBaseCoro& mappings_tr, const std::string& current_mappings_name ); + const idhan::hydrus::TransactionBaseCoro& mappings_tr, + const std::string& current_mappings_name ); public: signals: void finished(); - void processedMappings( std::size_t count ); + void processedMappings( std::size_t count, std::size_t record_count ); void processedParents( std::size_t count ); void processedAliases( std::size_t count ); void processedMaxMappings( std::size_t count );