22 CreateWidget ( nullptr ),
23 DatabasePath ( FilePath ),
25 StatusBar ( nullptr ),
26 SelectFile ( nullptr )
31 ui->AddLabel->setStyleSheet (
32 "QLabel{background-color:#8DAA2E; color:#facd64; font:bold14px; border-style:outset; border-width:2px; border-radius:10px;"
33 "border-color:beige; font:bold14px; min-width:10em; padding: 6px;}" );
34 ui->RemoveLabel->setStyleSheet (
35 "QLabel{background-color:#b5351b; color:#facd64; font:bold14px; border-style:outset;"
36 "border-width:2px; border-radius:10px; border-color:beige; font:bold14px; min-width:10em; padding:6px;}" );
38 QString (
"Edit Included Files for Database : %1" ).arg ( QFileInfo (
39 FilePath ).fileName() ) );
43 ui->StatusFrame->setFrameStyle ( QFrame::NoFrame );
46 StatusBar->setAutoFillBackground (
true );
47 StatusBar->showMessage (
"Select files to include or to remove from include!" );
51 SelectFile =
new QFileDialog (
this, tr (
"Open File" ),
".", tr (
"XML files (*.xml)" ) );
52 SelectFile->setFileMode ( QFileDialog::ExistingFiles );
53 SelectFile->setViewMode ( QFileDialog::Detail );
54 SelectFile->setAcceptMode ( QFileDialog::AcceptOpen );
56 QString TDAQ_DB_REPOSITORY = getenv (
"TDAQ_DB_REPOSITORY" );
57 if(TDAQ_DB_REPOSITORY.isEmpty() ==
false) {
58 QString TDAQ_DB_USER_REPOSITORY = getenv (
"TDAQ_DB_USER_REPOSITORY" );
59 FolderPathList = TDAQ_DB_USER_REPOSITORY.split (
":", QString::SkipEmptyParts );
63 QString DUNEDAQ_DB_PATH = getenv (
"DUNEDAQ_DB_PATH" );
64 FolderPathList = DUNEDAQ_DB_PATH.split (
":", QString::SkipEmptyParts );
69 if ( !PathName.endsWith (
"/" ) )
71 PathName.append (
"/" );
81 for (
const QString & Dir :
dbPath )
83 ui->DirectoryCombo->addItem ( Dir );
84 QString TDAqDir = QString (
"file://" ).append ( Dir );
85 QUrl URL = QUrl ( TDAqDir );
92 ui->AddToIncludeButton->setDisabled (
true );
93 ui->RemoveButton->setDisabled (
true );
95 ui->AddFileLine->setSelectionMode(QAbstractItemView::NoSelection);
119 connect ( ui->SelectFileButton, SIGNAL ( clicked() ),
this, SLOT ( SelectFileToInclude() ),
120 Qt::UniqueConnection );
121 connect ( ui->CreateFileButton, SIGNAL ( clicked() ),
this, SLOT ( CreateFileToInclude() ),
122 Qt::UniqueConnection );
123 connect ( ui->AddToIncludeButton, SIGNAL ( clicked() ),
this, SLOT ( AddFileToInclude() ),
124 Qt::UniqueConnection );
125 connect ( ui->RemoveButton, SIGNAL ( clicked() ),
this, SLOT ( RemoveFileFromInclude() ),
126 Qt::UniqueConnection );
127 connect ( ui->RemoveCombo, SIGNAL ( activated (
int ) ),
this,
128 SLOT ( RemoveFileFromInclude (
int ) ),
129 Qt::UniqueConnection );
130 connect ( ui->DirectoryCombo, SIGNAL ( activated (
const QString & ) ),
this,
131 SLOT ( SetDirectory (
const QString & ) ), Qt::UniqueConnection );
132 connect ( ui->ExitButton, SIGNAL ( clicked() ),
this, SLOT ( close() ) );
137 ui->AddFileLine->clear();
140 if ( !Directory.isEmpty() )
142 SelectFile->setDirectory ( Directory );
145 if ( SelectFile->exec() )
147 Files = SelectFile->selectedFiles();
150 if(Files.isEmpty()) {
154 for(
const QString& FileToInclude : Files) {
155 QFileInfo f(FileToInclude);
157 if ( Directory.isEmpty() )
159 ui->AddFileLine->addItem(f.absoluteFilePath());
163 ui->AddFileLine->addItem(f.absoluteFilePath().remove ( Directory + QString (
'/' ), Qt::CaseSensitive ));
172 BOOST_SCOPE_EXIT(
void)
174 QApplication::restoreOverrideCursor();
178 QApplication::setOverrideCursor(Qt::WaitCursor);
180 for(
int i = 0; i < ui->AddFileLine->count(); ++i) {
181 QString File = ui->AddFileLine->item(i)->text();
183 if ( !File.isEmpty() )
186 for ( QString & PathFile : FolderPathList )
188 if ( File.startsWith ( PathFile ) )
190 File = File.replace ( 0, PathFile.size(),
"" );
197 StatusBar->setPalette ( QApplication::palette (
this ) );
198 StatusBar->showMessage (
199 QString (
"The file %1 was added to the included files" ).arg ( File ) );
205 ui->AddFileLine->clear();
206 ui->AddToIncludeButton->setDisabled (
true );
211 ui->AddFileLine->clear();
213 QString includeFilePath;
214 includeFilePath = File;
216 if ( includeFilePath.isEmpty() )
221 QFileInfo includeFile = QFileInfo ( includeFilePath );
223 if ( !includeFile.isFile() )
226 StatusBar->showMessage ( QString (
"The file is NOT accessible. Check before usage" ) );
230 QString fileToInclude;
232 if ( Directory.isEmpty() )
234 fileToInclude = includeFile.absoluteFilePath();
236 else if ( ( includeFile.absoluteDir().canonicalPath() ).compare (
237 Directory ) == 0 ) fileToInclude =
238 includeFile.absoluteFilePath().remove ( Directory + QString (
'/' ), Qt::CaseSensitive );
241 fileToInclude = includeFile.absoluteFilePath();
244 ui->AddFileLine->addItem( fileToInclude );
245 ui->AddToIncludeButton->setDisabled(
false);
306 if ( ui->AddFileLine->count() == 0 )
309 StatusBar->showMessage ( QString (
"Select existing file!" ) );
310 ui->AddToIncludeButton->setDisabled (
true );
315 std::vector<int> removedItems;
316 for(
int i = 0; i < ui->AddFileLine->count(); ++i) {
317 const QString inc = ui->AddFileLine->item(i)->text();
319 if(inc == DatabasePath) {
320 removedItems.push_back(i);
322 for(
int j = 0; j < ui->RemoveCombo->count(); ++j) {
323 if(ui->RemoveCombo->itemText(j).compare(inc) == 0) {
324 removedItems.push_back(i);
330 if(removedItems.empty() ==
false) {
331 QString message =
"The following files will not be included because already included:";
333 for(
int i : removedItems) {
334 QListWidgetItem* item = ui->AddFileLine->takeItem(i);
335 message +=
"\n- " + item->text();
339 WARN(
"File inclusion issue", message.toStdString());
342 ui->AddToIncludeButton->setDisabled((ui->AddFileLine->count() == 0) ?
true :
false);
static MainWindow * findthis()