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 (
":", Qt::SkipEmptyParts );
63 QString DUNEDAQ_DB_PATH = getenv (
"DUNEDAQ_DB_PATH" );
64 FolderPathList = DUNEDAQ_DB_PATH.split (
":", Qt::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 );
91 SelectFile->setOption (QFileDialog::DontResolveSymlinks,
true );
92 ui->AddToIncludeButton->setDisabled (
true );
93 ui->RemoveButton->setDisabled (
true );
95 ui->AddFileLine->setSelectionMode(QAbstractItemView::NoSelection);
128 connect ( ui->SelectFileButton, SIGNAL ( clicked() ),
this, SLOT ( SelectFileToInclude() ),
129 Qt::UniqueConnection );
130 connect ( ui->CreateFileButton, SIGNAL ( clicked() ),
this, SLOT ( CreateFileToInclude() ),
131 Qt::UniqueConnection );
132 connect ( ui->AddToIncludeButton, SIGNAL ( clicked() ),
this, SLOT ( AddFileToInclude() ),
133 Qt::UniqueConnection );
134 connect ( ui->RemoveButton, SIGNAL ( clicked() ),
this, SLOT ( RemoveFileFromInclude() ),
135 Qt::UniqueConnection );
136 connect ( ui->RemoveCombo, SIGNAL ( activated (
int ) ),
this,
137 SLOT ( RemoveFileFromInclude (
int ) ),
138 Qt::UniqueConnection );
139 connect ( ui->DirectoryCombo, SIGNAL ( activated (
const QString & ) ),
this,
140 SLOT ( SetDirectory (
const QString & ) ), Qt::UniqueConnection );
141 connect ( ui->ExitButton, SIGNAL ( clicked() ),
this, SLOT ( close() ) );
146 ui->AddFileLine->clear();
149 if ( !Directory.isEmpty() )
151 SelectFile->setDirectory ( Directory );
154 if ( SelectFile->exec() )
156 Files = SelectFile->selectedFiles();
159 if(Files.isEmpty()) {
163 for(
const QString& FileToInclude : Files) {
164 QFileInfo f(FileToInclude);
166 if ( Directory.isEmpty() )
168 ui->AddFileLine->addItem(f.absoluteFilePath());
172 ui->AddFileLine->addItem(f.absoluteFilePath().remove ( Directory + QString (
'/' ), Qt::CaseSensitive ));
181 BOOST_SCOPE_EXIT(
void)
183 QApplication::restoreOverrideCursor();
187 QApplication::setOverrideCursor(Qt::WaitCursor);
189 for(
int i = 0; i < ui->AddFileLine->count(); ++i) {
190 QString File = ui->AddFileLine->item(i)->text();
192 if ( !File.isEmpty() )
195 for ( QString & PathFile : FolderPathList )
197 if ( File.startsWith ( PathFile ) )
199 File = File.replace ( 0, PathFile.size(),
"" );
206 StatusBar->setPalette ( QApplication::palette (
this ) );
207 StatusBar->showMessage (
208 QString (
"The file %1 was added to the included files" ).arg ( File ) );
214 ui->AddFileLine->clear();
215 ui->AddToIncludeButton->setDisabled (
true );
220 ui->AddFileLine->clear();
222 QString includeFilePath;
223 includeFilePath = File;
225 if ( includeFilePath.isEmpty() )
230 QFileInfo includeFile = QFileInfo ( includeFilePath );
232 if ( !includeFile.isFile() )
235 StatusBar->showMessage ( QString (
"The file is NOT accessible. Check before usage" ) );
239 QString fileToInclude;
241 if ( Directory.isEmpty() )
243 fileToInclude = includeFile.absoluteFilePath();
245 else if ( ( includeFile.absoluteDir().canonicalPath() ).compare (
246 Directory ) == 0 ) fileToInclude =
247 includeFile.absoluteFilePath().remove ( Directory + QString (
'/' ), Qt::CaseSensitive );
250 fileToInclude = includeFile.absoluteFilePath();
253 ui->AddFileLine->addItem( fileToInclude );
254 ui->AddToIncludeButton->setDisabled(
false);
315 if ( ui->AddFileLine->count() == 0 )
318 StatusBar->showMessage ( QString (
"Select existing file!" ) );
319 ui->AddToIncludeButton->setDisabled (
true );
324 std::vector<int> removedItems;
325 for(
int i = 0; i < ui->AddFileLine->count(); ++i) {
326 const QString inc = ui->AddFileLine->item(i)->text();
328 if(inc == DatabasePath) {
329 removedItems.push_back(i);
331 for(
int j = 0; j < ui->RemoveCombo->count(); ++j) {
332 if(ui->RemoveCombo->itemText(j).compare(inc) == 0) {
333 removedItems.push_back(i);
339 if(removedItems.empty() ==
false) {
340 QString message =
"The following files will not be included because already included:";
342 for(
int i : removedItems) {
343 QListWidgetItem* item = ui->AddFileLine->takeItem(i);
344 message +=
"\n- " + item->text();
348 WARN(
"File inclusion issue", message.toStdString());
351 ui->AddToIncludeButton->setDisabled((ui->AddFileLine->count() == 0) ?
true :
false);
static MainWindow * findthis()