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

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

View File

@@ -27,6 +27,7 @@
#include <QAbstractItemView> #include <QAbstractItemView>
#include <QAction> #include <QAction>
#include <QCheckBox>
#include <QClipboard> #include <QClipboard>
#include <QComboBox> #include <QComboBox>
#include <QDialogButtonBox> #include <QDialogButtonBox>
@@ -37,6 +38,7 @@
#include <QListWidget> #include <QListWidget>
#include <QMenu> #include <QMenu>
#include <QPushButton> #include <QPushButton>
#include <QSettings>
#include <QTextEdit> #include <QTextEdit>
#include <QTime> #include <QTime>
#include <QToolBar> #include <QToolBar>
@@ -74,11 +76,11 @@ RicRecursiveFileSearchDialogResult RicRecursiveFileSearchDialog::runRecursiveSea
RiaFilePathTools::appendSeparatorIfNo( pathFilterText ); RiaFilePathTools::appendSeparatorIfNo( pathFilterText );
pathFilterText += pathFilter; pathFilterText += pathFilter;
const QString completeRegistryKey = QString( "RicRecursiveFileSearchDialog %1" ).arg( caption ).replace( " ", "_" ); const QString searchHistoryStringsRegistryKey =
const int maxItemsInRegistry = 10; QString( "RicRecursiveFileSearchDialog %1" ).arg( caption ).replace( " ", "_" );
const int maxItemsInRegistry = 10;
{ {
RiaStringListSerializer stringListSerializer( completeRegistryKey ); RiaStringListSerializer stringListSerializer( searchHistoryStringsRegistryKey );
QStringList files = stringListSerializer.textStrings(); QStringList files = stringListSerializer.textStrings();
int numRecentFiles = std::min( files.size(), maxItemsInRegistry ); 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->addItem( QDir::toNativeSeparators( pathFilterText ) );
dialog.m_pathFilterField->setCurrentText( QDir::toNativeSeparators( pathFilterText ) ); dialog.m_pathFilterField->setCurrentText( QDir::toNativeSeparators( pathFilterText ) );
@@ -104,8 +112,10 @@ RicRecursiveFileSearchDialogResult RicRecursiveFileSearchDialog::runRecursiveSea
if ( dialog.result() == QDialog::Accepted ) if ( dialog.result() == QDialog::Accepted )
{ {
RiaStringListSerializer stringListSerializer( completeRegistryKey ); RiaStringListSerializer stringListSerializer( searchHistoryStringsRegistryKey );
stringListSerializer.addString( dialog.m_pathFilterField->currentText(), maxItemsInRegistry ); stringListSerializer.addString( dialog.m_pathFilterField->currentText(), maxItemsInRegistry );
settings.setValue( useRealizationStarRegistryKey, dialog.m_useRealizationStarCheckBox->isChecked() );
} }
return RicRecursiveFileSearchDialogResult( dialog.result() == QDialog::Accepted, return RicRecursiveFileSearchDialogResult( dialog.result() == QDialog::Accepted,
@@ -122,7 +132,11 @@ RicRecursiveFileSearchDialog::RicRecursiveFileSearchDialog( QWidget* parent )
: QDialog( parent, RiuTools::defaultDialogFlags() ) : QDialog( parent, RiuTools::defaultDialogFlags() )
{ {
// Create widgets // 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_pathFilterLabel = new QLabel();
m_pathFilterField = new QComboBox(); m_pathFilterField = new QComboBox();
m_fileFilterLabel = new QLabel(); m_fileFilterLabel = new QLabel();
@@ -194,9 +208,10 @@ RicRecursiveFileSearchDialog::RicRecursiveFileSearchDialog( QWidget* parent )
inputGridLayout->addWidget( m_browseButton, 0, 3 ); inputGridLayout->addWidget( m_browseButton, 0, 3 );
inputGridLayout->addWidget( m_fileFilterLabel, 1, 0 ); inputGridLayout->addWidget( m_fileFilterLabel, 1, 0 );
inputGridLayout->addWidget( m_fileFilterField, 1, 1, 1, 2 ); inputGridLayout->addWidget( m_fileFilterField, 1, 1, 1, 2 );
inputGridLayout->addWidget( m_effectiveFilterLabel, 2, 0 ); inputGridLayout->addWidget( m_useRealizationStarCheckBox, 2, 1 );
inputGridLayout->addWidget( m_effectiveFilterContentLabel, 2, 1 ); inputGridLayout->addWidget( m_effectiveFilterLabel, 3, 0 );
inputGridLayout->addWidget( m_findOrCancelButton, 2, 2, 1, 2 ); inputGridLayout->addWidget( m_effectiveFilterContentLabel, 3, 1 );
inputGridLayout->addWidget( m_findOrCancelButton, 3, 2, 1, 2 );
inputGroup->setLayout( inputGridLayout ); inputGroup->setLayout( inputGridLayout );
@@ -260,6 +275,12 @@ QString RicRecursiveFileSearchDialog::cleanTextFromPathFilterField() const
pathFilterText = RiaFilePathTools::toInternalSeparator( pathFilterText ); pathFilterText = RiaFilePathTools::toInternalSeparator( pathFilterText );
pathFilterText = RiaFilePathTools::removeDuplicatePathSeparators( pathFilterText ); pathFilterText = RiaFilePathTools::removeDuplicatePathSeparators( pathFilterText );
pathFilterText.replace( QString( "**" ), QString( "*" ) ); pathFilterText.replace( QString( "**" ), QString( "*" ) );
if ( m_useRealizationStarCheckBox->isChecked() )
{
pathFilterText = replaceWithRealizationStar( pathFilterText );
}
return pathFilterText; return pathFilterText;
} }
@@ -524,6 +545,20 @@ QStringList RicRecursiveFileSearchDialog::createFileNameFilterList()
return nameFilter; 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 /// Internal functions
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

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