#6968 Import Dialog : Replace realization-N with realization-*

This commit is contained in:
Magne Sjaastad
2020-11-11 11:45:08 +01:00
parent e9656cc167
commit a0bc915b18
2 changed files with 62 additions and 15 deletions

View File

@@ -27,6 +27,7 @@
#include <QAbstractItemView>
#include <QAction>
#include <QCheckBox>
#include <QClipboard>
#include <QComboBox>
#include <QDialogButtonBox>
@@ -37,6 +38,7 @@
#include <QListWidget>
#include <QMenu>
#include <QPushButton>
#include <QSettings>
#include <QTextEdit>
#include <QTime>
#include <QToolBar>
@@ -74,11 +76,11 @@ RicRecursiveFileSearchDialogResult RicRecursiveFileSearchDialog::runRecursiveSea
RiaFilePathTools::appendSeparatorIfNo( pathFilterText );
pathFilterText += pathFilter;
const QString completeRegistryKey = QString( "RicRecursiveFileSearchDialog %1" ).arg( caption ).replace( " ", "_" );
const int maxItemsInRegistry = 10;
const QString searchHistoryStringsRegistryKey =
QString( "RicRecursiveFileSearchDialog %1" ).arg( caption ).replace( " ", "_" );
const int maxItemsInRegistry = 10;
{
RiaStringListSerializer stringListSerializer( completeRegistryKey );
RiaStringListSerializer stringListSerializer( searchHistoryStringsRegistryKey );
QStringList files = stringListSerializer.textStrings();
int numRecentFiles = std::min( files.size(), maxItemsInRegistry );
@@ -88,6 +90,12 @@ RicRecursiveFileSearchDialogResult RicRecursiveFileSearchDialog::runRecursiveSea
}
}
QSettings settings;
const QString useRealizationStarRegistryKey = "RecursiveFileSearchDialog_use_realization";
bool isChecked = settings.value( useRealizationStarRegistryKey, true ).toBool();
dialog.m_useRealizationStarCheckBox->setChecked( isChecked );
dialog.m_pathFilterField->addItem( QDir::toNativeSeparators( pathFilterText ) );
dialog.m_pathFilterField->setCurrentText( QDir::toNativeSeparators( pathFilterText ) );
@@ -104,8 +112,10 @@ RicRecursiveFileSearchDialogResult RicRecursiveFileSearchDialog::runRecursiveSea
if ( dialog.result() == QDialog::Accepted )
{
RiaStringListSerializer stringListSerializer( completeRegistryKey );
RiaStringListSerializer stringListSerializer( searchHistoryStringsRegistryKey );
stringListSerializer.addString( dialog.m_pathFilterField->currentText(), maxItemsInRegistry );
settings.setValue( useRealizationStarRegistryKey, dialog.m_useRealizationStarCheckBox->isChecked() );
}
return RicRecursiveFileSearchDialogResult( dialog.result() == QDialog::Accepted,
@@ -122,7 +132,11 @@ RicRecursiveFileSearchDialog::RicRecursiveFileSearchDialog( QWidget* parent )
: QDialog( parent, RiuTools::defaultDialogFlags() )
{
// Create widgets
m_browseButton = new QPushButton();
m_browseButton = new QPushButton();
m_useRealizationStarCheckBox = new QCheckBox( "Use 'realization-*' in filter" );
connect( m_useRealizationStarCheckBox, SIGNAL( clicked() ), this, SLOT( slotUseRealizationStarClicked() ) );
m_pathFilterLabel = new QLabel();
m_pathFilterField = new QComboBox();
m_fileFilterLabel = new QLabel();
@@ -194,9 +208,10 @@ RicRecursiveFileSearchDialog::RicRecursiveFileSearchDialog( QWidget* parent )
inputGridLayout->addWidget( m_browseButton, 0, 3 );
inputGridLayout->addWidget( m_fileFilterLabel, 1, 0 );
inputGridLayout->addWidget( m_fileFilterField, 1, 1, 1, 2 );
inputGridLayout->addWidget( m_effectiveFilterLabel, 2, 0 );
inputGridLayout->addWidget( m_effectiveFilterContentLabel, 2, 1 );
inputGridLayout->addWidget( m_findOrCancelButton, 2, 2, 1, 2 );
inputGridLayout->addWidget( m_useRealizationStarCheckBox, 2, 1 );
inputGridLayout->addWidget( m_effectiveFilterLabel, 3, 0 );
inputGridLayout->addWidget( m_effectiveFilterContentLabel, 3, 1 );
inputGridLayout->addWidget( m_findOrCancelButton, 3, 2, 1, 2 );
inputGroup->setLayout( inputGridLayout );
@@ -260,6 +275,12 @@ QString RicRecursiveFileSearchDialog::cleanTextFromPathFilterField() const
pathFilterText = RiaFilePathTools::toInternalSeparator( pathFilterText );
pathFilterText = RiaFilePathTools::removeDuplicatePathSeparators( pathFilterText );
pathFilterText.replace( QString( "**" ), QString( "*" ) );
if ( m_useRealizationStarCheckBox->isChecked() )
{
pathFilterText = replaceWithRealizationStar( pathFilterText );
}
return pathFilterText;
}
@@ -524,6 +545,20 @@ QStringList RicRecursiveFileSearchDialog::createFileNameFilterList()
return nameFilter;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RicRecursiveFileSearchDialog::replaceWithRealizationStar( const QString& text )
{
const QString pattern = "realization-\\d+";
QRegExp regexp( pattern, Qt::CaseInsensitive );
QString textWithStar = text;
textWithStar.replace( regexp, "realization-*" );
return textWithStar;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -757,6 +792,14 @@ void RicRecursiveFileSearchDialog::slotBrowseButtonClicked()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicRecursiveFileSearchDialog::slotUseRealizationStarClicked()
{
updateEffectiveFilter();
}
//--------------------------------------------------------------------------------------------------
/// Internal functions
//--------------------------------------------------------------------------------------------------

View File

@@ -33,6 +33,7 @@ class QMainWindow;
class QListWidget;
class QGroupBox;
class QComboBox;
class QCheckBox;
class RicRecursiveFileSearchDialogResult;
@@ -80,16 +81,18 @@ private:
// File search methods
QStringList findMatchingFiles();
void buildDirectoryListRecursiveSimple( const QString& currentDir,
const QString& currentPathFilter,
QStringList* accumulatedDirs );
QStringList findFilesInDirs( const QStringList& dirs );
QStringList createFileNameFilterList();
QStringList findMatchingFiles();
void buildDirectoryListRecursiveSimple( const QString& currentDir,
const QString& currentPathFilter,
QStringList* accumulatedDirs );
QStringList findFilesInDirs( const QStringList& dirs );
QStringList createFileNameFilterList();
static QString replaceWithRealizationStar( const QString& text );
private slots:
void slotFilterChanged( const QString& text );
void slotBrowseButtonClicked();
void slotUseRealizationStarClicked();
void slotFindOrCancelButtonClicked();
void slotFileListCustomMenuRequested( const QPoint& point );
@@ -105,6 +108,7 @@ private:
QLabel* m_pathFilterLabel;
QComboBox* m_pathFilterField;
QPushButton* m_browseButton;
QCheckBox* m_useRealizationStarCheckBox;
QLabel* m_fileFilterLabel;
QLineEdit* m_fileFilterField;