From: hama Date: Sat, 20 Feb 2016 17:55:37 +0000 (+0100) Subject: refind: refactoring, German texts X-Git-Url: https://gitweb.hamatoma.de/?a=commitdiff_plain;h=275ddeec986cdf64c4f62ca329f2f93fcf239833;p=reqt refind: refactoring, German texts * text improvements: tooltips, short cuts... * using base class ReGuiApplication: multi language support * removing base class ReObserver: not used --- diff --git a/appl/refind/aboutdialog.ui b/appl/refind/aboutdialog.ui index 50d1dd8..905fe04 100644 --- a/appl/refind/aboutdialog.ui +++ b/appl/refind/aboutdialog.ui @@ -7,93 +7,81 @@ 0 0 423 - 289 + 305 - Dialog + About the Program true - - - - 20 - 20 - 381 - 221 - - - - true - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span> for searching files in a directory tree.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is a program of the project</p> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary (RePubLib)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sources are public domain and available under</p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a> </p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implemented in QT (C++) 5.x</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a> </p></body></html> - - - false - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - 20 - 250 - 381 - 29 - - - - - - - Version: - - - - - - - 2015.05.00 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - &OK - - - - - +</style></head><body style=" font-family:'Droid Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">ReFind</span><span style=" font-family:'Sans Serif'; font-size:9pt;"> for searching files in a directory tree.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">This is a program of the project</span></p> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Re</span><span style=" font-family:'Sans Serif'; font-size:9pt;">al </span><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Pub</span><span style=" font-family:'Sans Serif'; font-size:9pt;">lic </span><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Lib</span><span style=" font-family:'Sans Serif'; font-size:9pt;">rary (RePubLib)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Sources are public domain and available under</span></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a><span style=" font-family:'Sans Serif'; font-size:9pt;"> </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Implemented in QT (C++) 5.x</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Icons: Mark James, </span><a href="http://famfamfam.com"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a><span style=" font-family:'Sans Serif'; font-size:9pt;"> </span></p></body></html> + + + false + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + Version: + + + + + + + 2015.05.00 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + &OK + + + + + + diff --git a/appl/refind/dialogoptions.ui b/appl/refind/dialogoptions.ui index 5566046..e5688f8 100644 --- a/appl/refind/dialogoptions.ui +++ b/appl/refind/dialogoptions.ui @@ -11,7 +11,7 @@ - Dialog + Options @@ -55,12 +55,12 @@ - Neue Zeile + Editor - edit + Shell @@ -95,12 +95,12 @@ - /usr/bin/kate + /usr/bin/kate - ${full} + ${full} @@ -115,12 +115,12 @@ - /usr/bin/bash + /usr/bin/bash - + @@ -290,10 +290,10 @@ - ... + ... - + :/main/icons/layout_add.png:/main/icons/layout_add.png @@ -385,7 +385,9 @@ - + + + buttonBox diff --git a/appl/refind/filefinder.cpp b/appl/refind/filefinder.cpp index f051932..ed1e2ad 100644 --- a/appl/refind/filefinder.cpp +++ b/appl/refind/filefinder.cpp @@ -203,21 +203,21 @@ void FileFinder::run() * Fills the table with the data of the filtered files of a given directory. */ void FileFinder::search(){ - clock_t start = clock(); + qint64 start = QDateTime::currentMSecsSinceEpoch(); setStop(false); m_statistics.clear(); QString path = ReFileUtils::nativePath(m_baseDir); ReQStringUtils::chomp(path, OS_SEPARATOR); fillTable(path, 0); - m_statistics.m_runtimeSeconds = (double) (clock() - start) - / CLOCKS_PER_SEC; + qint64 now = QDateTime::currentMSecsSinceEpoch(); + m_statistics.m_runtimeSeconds = (now - start) / 1000; QString msg; - msg.sprintf( - I18N::s2b(QObject::tr( - "Found: %d dir(s) and %d file(s) with %.6f MByte. Duration of the search: %.3f sec")), - m_statistics.m_dirs, m_statistics.m_files, - m_statistics.m_bytes / 1000000.0, m_statistics.m_runtimeSeconds); - m_guiQueue->pushBack(ReGuiQueueItem(ReGuiQueueItem::ReadyMessage, NULL, msg)); + m_guiQueue->pushBack(ReGuiQueueItem(ReGuiQueueItem::ReadyMessage, NULL, + QObject::tr("Found: %1 dir(s) and %2 file(s) with %3. Runtime: %4") + .arg(m_statistics.m_dirs) + .arg(m_statistics.m_files) + .arg(ReQStringUtils::readableSize(m_statistics.m_bytes)) + .arg(ReQStringUtils::readableDuration(now - start)))); } /** @@ -359,15 +359,6 @@ void FileFinder::setMinSize(const int64_t& minSize){ m_minSize = minSize; } -/** - * Sets the observer object. Will be notified about the search exit. - * @param observer - */ -void FileFinder::setObserver(ReObserver* observer) -{ - m_observer = observer; -} - /** * Sets the date time which is the lower bound. * diff --git a/appl/refind/filefinder.hpp b/appl/refind/filefinder.hpp index 6df6ee0..68e868c 100644 --- a/appl/refind/filefinder.hpp +++ b/appl/refind/filefinder.hpp @@ -66,7 +66,6 @@ private: TextFinder* m_textFinder; QTableWidget* m_table; Statistics m_statistics; - ReObserver* m_observer; ReGuiQueue* m_guiQueue; int m_maxHits; bool m_stop; diff --git a/appl/refind/main.cpp b/appl/refind/main.cpp index 6bc3b2c..d30b85b 100644 --- a/appl/refind/main.cpp +++ b/appl/refind/main.cpp @@ -19,7 +19,7 @@ int main(int argc, char *argv[]){ QApplication app(argc, argv); QString startDir = argc > 1 ? argv[1] : ""; QString homeDir = argc > 2 ? argv[2] : ""; - MainWindow w(startDir, homeDir); + MainWindow w(app, homeDir, startDir); QObject::connect(&app, SIGNAL(aboutToQuit()), &w, SLOT(closing())); diff --git a/appl/refind/mainwindow.cpp b/appl/refind/mainwindow.cpp index 33c0a81..0bd4ff3 100644 --- a/appl/refind/mainwindow.cpp +++ b/appl/refind/mainwindow.cpp @@ -31,7 +31,7 @@ #include #include -const QString VERSION("2015.12.24"); +const QString VERSION("2016.02.20"); inline QString addEsc(const QString& text){ QString rc = text; @@ -48,12 +48,11 @@ inline QString addEsc(const QString& text){ * @param homeDir the base directory for the configuration files * @param parent NULL or the parent widget */ -MainWindow::MainWindow(const QString& startDir, const QString& homeDir, - QWidget *parent) : - QMainWindow(parent), +MainWindow::MainWindow(QApplication& application, const QString& homeDir, + const QString& startDir, QWidget *parent) : + ReGuiApplication(application, "refind", homeDir, 2, 100100100, "de", parent), + ReGuiValidator(), ui(new Ui::MainWindow), - m_statusMessage(NULL), - m_stdLabelBackgroundRole(NULL), m_textFinder(), m_lastBaseDir(), m_horizontalHeader(NULL), @@ -64,65 +63,9 @@ MainWindow::MainWindow(const QString& startDir, const QString& homeDir, m_logger(new ReMemoryLogger()), m_finder(NULL), m_guiQueue(), - m_guiTimer(new QTimer(this)){ - ui->setupUi(this); - initializeHome(); - m_statusMessage = new QLabel(tr("Welcome at refind")); - if (!startDir.isEmpty()) - ui->comboBoxDirectory->setCurrentText(startDir); - if (ui->comboBoxDirectory->currentText().isEmpty()) - ui->comboBoxDirectory->setCurrentText(QDir::currentPath()); - ui->tableWidget->setMainWindow(this); - statusBar()->addWidget(m_statusMessage); - connect(ui->actionStart, SIGNAL(triggered()), this, SLOT(search())); - connect(ui->actionClear, SIGNAL(triggered()), this, SLOT(clear())); - connect(ui->actionStop, SIGNAL(triggered()), this, SLOT(stop())); - connect(ui->pushButtonSearch, SIGNAL(clicked()), this, SLOT(search())); - connect(ui->pushButtonSearch2, SIGNAL(clicked()), this, SLOT(search())); - connect(ui->pushButtonStop, SIGNAL(clicked()), this, SLOT(stop())); - connect(ui->pushButtonStop2, SIGNAL(clicked()), this, SLOT(stop())); - connect(ui->pushButtonClear, SIGNAL(clicked()), this, SLOT(clear())); - connect(ui->actionUp, SIGNAL(triggered()), this, SLOT(up())); - connect(ui->pushButtonUp, SIGNAL(clicked()), this, SLOT(up())); - connect(ui->actionSelectDirectory, SIGNAL(triggered()), this, - SLOT(selectDirectory())); - connect(ui->actionSaveProgramState, SIGNAL(triggered()), this, - SLOT(saveState())); - connect(ui->pushButtonDirectory, SIGNAL(clicked()), this, - SLOT(selectDirectory())); - connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about())); - connect(ui->actionOptions, SIGNAL(triggered()), this, SLOT(options())); - connect(ui->actionGetAbsPath, SIGNAL(triggered()), this, - SLOT(absPathToClipboard())); - connect(ui->actionGetFullName, SIGNAL(triggered()), this, - SLOT(fullNameToClipboard())); - connect(ui->actionGetFullName, SIGNAL(triggered()), this, - SLOT(fullNameToClipboard())); - connect(ui->actionReset, SIGNAL(triggered()), this, SLOT(resetParameters())); - connect(ui->actionExport, SIGNAL(triggered()), this, SLOT(exportFiles())); - connect(ui->pushButtonExport, SIGNAL(clicked()), this, SLOT(exportFiles())); - connect(ui->pushButtonExportFile, SIGNAL(clicked()), this, - SLOT(selectExportFile())); - connect(ui->pushButtonFilePlaceholder, SIGNAL(clicked()), this, - SLOT(filePlaceholder())); - connect(ui->pushButtonHeaderPlaceholder, SIGNAL(clicked()), this, - SLOT(headerPlaceholder())); - connect(ui->pushButtonFooterPlaceholder, SIGNAL(clicked()), this, - SLOT(footerPlaceholder())); - connect(ui->actionPreview, SIGNAL(triggered()), this, SLOT(preview())); - connect(ui->pushButtonPreview, SIGNAL(clicked()), this, SLOT(preview())); - - m_horizontalHeader = ui->tableWidget->horizontalHeader(); - connect(m_horizontalHeader, SIGNAL(sectionClicked ( int ) ), - this, SLOT(headerClicked ( int ) )); - connect(m_guiTimer, SIGNAL(timeout()), this, SLOT(guiTimerUpdate())); - ui->tableWidget->setColumnWidth(TC_NODE, 200); - ui->tableWidget->setColumnWidth(TC_EXT, 40); - ui->tableWidget->setColumnWidth(TC_SIZE, 125); - ui->tableWidget->setColumnWidth(TC_MODIFIED, 175); - ui->tableWidget->setColumnWidth(TC_TYPE, 75); - prepareContextMenu(); - m_guiTimer->start(100); + m_startDir(startDir) +{ + initializeGUI(); } /** @@ -132,25 +75,6 @@ MainWindow::~MainWindow(){ delete ui; } -/** - * Starts the about dialog. - */ -void MainWindow::about(){ - AboutDialog dialog(VERSION); - dialog.exec(); -} - -/** - * Puts the absolute path of the current (selected) file into the clipboard. - */ -void MainWindow::absPathToClipboard(){ - int row = ui->tableWidget->currentRow(); - if (row >= 0){ - QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(buildAbsPath(row)); - } -} - /** * Puts the base directory into the clipboard. */ @@ -277,45 +201,6 @@ void MainWindow::closing(){ saveState(); } -/** - * Clears the table. - */ -void MainWindow::clear() -{ - ui->tableWidget->setRowCount(0); -} - -/** - * Handles the click of the "export" button. - */ -void MainWindow::exportFiles(){ - comboText(ui->comboBoxHeader); - comboText(ui->comboBoxTemplate); - comboText(ui->comboBoxExportFile); - comboText(ui->comboBoxFooter); - if (ui->radioButtonFile->isChecked()){ - QString fn = ui->comboBoxExportFile->currentText(); - FILE* fp = fopen( I18N::s2b(fn), "w"); - if (fp == NULL) - guiError(ui->comboBoxExportFile, tr("not a valid file: ") + fn); - else{ - QTextStream stream(fp); - exportToStream(stream); - fclose(fp); - say(LOG_INFO, tr("result exported to ") + fn); - } - }else{ - QString value; - QTextStream stream(&value); - m_errors = 0; - exportToStream(stream); - QClipboard* clipboard = QApplication::clipboard(); - clipboard->setText(value); - if (m_errors == 0) - say(LOG_INFO, tr("result exported to the clipboard")); - } -} - /** * Exports the found files into a stream with header and footer. * @@ -407,69 +292,6 @@ void MainWindow::fileDragging(){ } } -/** - * Handles the push of "select file placeholder". - */ -void MainWindow::filePlaceholder(){ - DialogFilePlaceholder dialog; - dialog.exec(); - if (!dialog.var().isEmpty()){ - QComboBox* target = ui->comboBoxTemplate; - target->setCurrentText(target->currentText() + dialog.var()); - } -} - -/** - * Handles the push of "select placeholder for the footer". - */ -void MainWindow::footerPlaceholder(){ - handlePlaceholder(ui->comboBoxFooter); -} - -/** - * Puts the absolute full name of the current (selected) file into the clipboard. - */ -void MainWindow::fullNameToClipboard(){ - int row = ui->tableWidget->currentRow(); - if (row >= 0){ - QClipboard* clipboard = QApplication::clipboard(); - QString path = buildAbsPath(row); - ReQStringUtils::ensureLastChar(path, OS_SEPARATOR); - path += cellAsText(row, TC_NODE); - clipboard->setText(path); - } -} - -/** - * Callback method of the GUI timer. - */ -void MainWindow::guiTimerUpdate() -{ - int count = m_guiQueue.count(); - while(count-- > 0){ - ReGuiQueueItem item = m_guiQueue.popFront(); - if (item.m_type == ReGuiQueueItem::Undef) - break; - if (! item.apply()){ - switch (item.m_type){ - case ReGuiQueueItem::ReadyMessage: - say(LOG_INFO, item.m_value); - m_statistics = m_finder->statistics(); - startStop(false); - break; - case ReGuiQueueItem::LogMessage: - say(LOG_INFO, item.m_value); - break; - default: - say(LOG_ERROR, "unknown item type: " + QString::number(item.m_type) - + " " + item.m_value); - break; - } - - } - } -} - /** * Handle the "copy to clipboard" entry from the context menu. * @@ -646,46 +468,64 @@ void MainWindow::handleTableContextMenu(const QPoint& position){ } } /** - * Handles the event "header column clicked". - * - * @param col the col - */ -void MainWindow::headerClicked(int col){ - m_lastOrder = - m_lastOrder == Qt::AscendingOrder ? - Qt::DescendingOrder : Qt::AscendingOrder; - ui->tableWidget->sortItems(col, m_lastOrder); - m_horizontalHeader->setSortIndicatorShown(true); - m_horizontalHeader->setSortIndicator(col, m_lastOrder); -} - -/** - * Handles the push of "select placeholder for the header". - */ -void MainWindow::headerPlaceholder(){ - handlePlaceholder(ui->comboBoxHeader); -} - - -/** - * initializeHomeializes the program home directory. - */ -void MainWindow::initializeHome(){ - if (m_homeDir.isEmpty()){ - m_homeDir = QDir::home().absoluteFilePath(".refind"); - } - - QDir home(m_homeDir); - if (!home.exists()){ - if (!home.mkpath(m_homeDir)){ - m_homeDir = home.tempPath() + "/.refind"; - home.mkpath(m_homeDir); - } - } - if (!m_homeDir.endsWith("/")) - m_homeDir += "/"; - m_storageFile = m_homeDir + "state.conf"; - restoreState(); + * Builds the GUI from the *.ui file. + */ +void MainWindow::initializeGUI(){ + ui->setupUi(this); + initializeGuiElements(); + if (!m_startDir.isEmpty()) + ui->comboBoxDirectory->setCurrentText(m_startDir); + if (ui->comboBoxDirectory->currentText().isEmpty()) + ui->comboBoxDirectory->setCurrentText(QDir::currentPath()); + ui->tableWidget->setMainWindow(this); + connect(ui->actionStart, SIGNAL(triggered()), this, SLOT(onSearch())); + connect(ui->actionClear, SIGNAL(triggered()), this, SLOT(onClear())); + connect(ui->actionStop, SIGNAL(triggered()), this, SLOT(onStop())); + connect(ui->pushButtonSearch, SIGNAL(clicked()), this, SLOT(onSearch())); + connect(ui->pushButtonSearch2, SIGNAL(clicked()), this, SLOT(onSearch())); + connect(ui->pushButtonStop, SIGNAL(clicked()), this, SLOT(onStop())); + connect(ui->pushButtonStop2, SIGNAL(clicked()), this, SLOT(onStop())); + connect(ui->pushButtonClear, SIGNAL(clicked()), this, SLOT(onClear())); + connect(ui->actionUp, SIGNAL(triggered()), this, SLOT(onUp())); + connect(ui->pushButtonUp, SIGNAL(clicked()), this, SLOT(onUp())); + connect(ui->actionSelectDirectory, SIGNAL(triggered()), this, + SLOT(onSelectDirectory())); + connect(ui->actionSaveProgramState, SIGNAL(triggered()), this, + SLOT(saveState())); + connect(ui->pushButtonDirectory, SIGNAL(clicked()), this, + SLOT(onSelectDirectory())); + connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(onAbout())); + connect(ui->actionOptions, SIGNAL(triggered()), this, SLOT(onOptions())); + connect(ui->actionGetAbsPath, SIGNAL(triggered()), this, + SLOT(onAbsPathToClipboard())); + connect(ui->actionGetFullName, SIGNAL(triggered()), this, + SLOT(onFullNameToClipboard())); + connect(ui->actionGetFullName, SIGNAL(triggered()), this, + SLOT(onFullNameToClipboard())); + connect(ui->actionReset, SIGNAL(triggered()), this, SLOT(onResetParameters())); + connect(ui->actionExport, SIGNAL(triggered()), this, SLOT(onExportFiles())); + connect(ui->pushButtonExport, SIGNAL(clicked()), this, SLOT(onExportFiles())); + connect(ui->pushButtonExportFile, SIGNAL(clicked()), this, + SLOT(onSelectExportFile())); + connect(ui->pushButtonFilePlaceholder, SIGNAL(clicked()), this, + SLOT(onFilePlaceholder())); + connect(ui->pushButtonHeaderPlaceholder, SIGNAL(clicked()), this, + SLOT(onHeaderPlaceholder())); + connect(ui->pushButtonFooterPlaceholder, SIGNAL(clicked()), this, + SLOT(onFooterPlaceholder())); + connect(ui->actionPreview, SIGNAL(triggered()), this, SLOT(onPreview())); + connect(ui->pushButtonPreview, SIGNAL(clicked()), this, SLOT(onPreview())); + + m_horizontalHeader = ui->tableWidget->horizontalHeader(); + connect(m_horizontalHeader, SIGNAL(sectionClicked ( int ) ), + this, SLOT(onHeaderClicked ( int ) )); + ui->tableWidget->setColumnWidth(TC_NODE, 200); + ui->tableWidget->setColumnWidth(TC_EXT, 40); + ui->tableWidget->setColumnWidth(TC_SIZE, 125); + ui->tableWidget->setColumnWidth(TC_MODIFIED, 175); + ui->tableWidget->setColumnWidth(TC_TYPE, 75); + prepareContextMenu(); + restoreState(); } /** @@ -693,20 +533,11 @@ void MainWindow::initializeHome(){ * * @param message description of the state change * @return SUCCESS - */ + * / ReObserver::ReturnCode MainWindow::notify(const char* message) { return ReObserver::SUCCESS; -} - -/** - * Starts the options dialog. - */ -void MainWindow::options(){ - DialogOptions dialog(m_contextHandlers, NULL); - dialog.exec(); -} - +} */ /** * Sets the properties of the file finder. @@ -718,7 +549,6 @@ void MainWindow::populateFinder(FileFinder& finder){ ui->tableWidget->setRowCount(0); m_statistics.clear(); } - finder.setObserver(this); finder.setGuiQueue(&this->m_guiQueue); finder.setBaseDir(comboText(ui->comboBoxDirectory)); finder.setTable(ui->tableWidget); @@ -776,10 +606,166 @@ if (!error.isEmpty()){ } } +/** + * Starts the about dialog. + */ +void MainWindow::onAbout(){ + AboutDialog dialog(VERSION); + dialog.exec(); +} + +/** + * Puts the absolute path of the current (selected) file into the clipboard. + */ +void MainWindow::onAbsPathToClipboard(){ + int row = ui->tableWidget->currentRow(); + if (row >= 0){ + QClipboard *clipboard = QApplication::clipboard(); + clipboard->setText(buildAbsPath(row)); + } +} + +/** + * Clears the table. + */ +void MainWindow::onClear() +{ + ui->tableWidget->setRowCount(0); +} + +/** + * Handles the click of the "export" button. + */ +void MainWindow::onExportFiles(){ + comboText(ui->comboBoxHeader); + comboText(ui->comboBoxTemplate); + comboText(ui->comboBoxExportFile); + comboText(ui->comboBoxFooter); + if (ui->radioButtonFile->isChecked()){ + QString fn = ui->comboBoxExportFile->currentText(); + FILE* fp = fopen( I18N::s2b(fn), "w"); + if (fp == NULL) + guiError(ui->comboBoxExportFile, tr("not a valid file: ") + fn); + else{ + QTextStream stream(fp); + exportToStream(stream); + fclose(fp); + say(LOG_INFO, tr("result exported to ") + fn); + } + }else{ + QString value; + QTextStream stream(&value); + m_errors = 0; + exportToStream(stream); + QClipboard* clipboard = QApplication::clipboard(); + clipboard->setText(value); + if (m_errors == 0) + say(LOG_INFO, tr("result exported to the clipboard")); + } +} + +/** + * Handles the push of "select file placeholder". + */ +void MainWindow::onFilePlaceholder(){ + DialogFilePlaceholder dialog; + dialog.exec(); + if (!dialog.var().isEmpty()){ + QComboBox* target = ui->comboBoxTemplate; + target->setCurrentText(target->currentText() + dialog.var()); + } +} + +/** + * Handles the push of "select placeholder for the footer". + */ +void MainWindow::onFooterPlaceholder(){ + handlePlaceholder(ui->comboBoxFooter); +} + +/** + * Puts the absolute full name of the current (selected) file into the clipboard. + */ +void MainWindow::onFullNameToClipboard(){ + int row = ui->tableWidget->currentRow(); + if (row >= 0){ + QClipboard* clipboard = QApplication::clipboard(); + QString path = buildAbsPath(row); + ReQStringUtils::ensureLastChar(path, OS_SEPARATOR); + path += cellAsText(row, TC_NODE); + clipboard->setText(path); + } +} + +/** + * Handles the event "header column clicked". + * + * @param col the col + */ +void MainWindow::onHeaderClicked(int col){ + m_lastOrder = + m_lastOrder == Qt::AscendingOrder ? + Qt::DescendingOrder : Qt::AscendingOrder; + ui->tableWidget->sortItems(col, m_lastOrder); + m_horizontalHeader->setSortIndicatorShown(true); + m_horizontalHeader->setSortIndicator(col, m_lastOrder); +} + +/** + * Handles the push of "select placeholder for the header". + */ +void MainWindow::onHeaderPlaceholder(){ + handlePlaceholder(ui->comboBoxHeader); +} + +/** + * The GUI timer is triggered. + */ +void MainWindow::onGuiTimerUpdate() +{ + int count = m_guiQueue.count(); + while(count-- > 0){ + ReGuiQueueItem item = m_guiQueue.popFront(); + if (item.m_type == ReGuiQueueItem::Undef) + break; + if (! item.apply()){ + switch (item.m_type){ + case ReGuiQueueItem::ReadyMessage: + say(LOG_INFO, item.m_value); + m_statistics = m_finder->statistics(); + startStop(false); + break; + case ReGuiQueueItem::LogMessage: + say(LOG_INFO, item.m_value); + break; + default: + say(LOG_ERROR, "unknown item type: " + QString::number(item.m_type) + + " " + item.m_value); + break; + } + } + } +} + +/** + * The language has been changed. + */ +void MainWindow::onLanguageChange(){ + initializeGUI(); +} + +/** + * Starts the options dialog. + */ +void MainWindow::onOptions(){ + DialogOptions dialog(m_contextHandlers, NULL); + dialog.exec(); +} + /** * Shows a preview of the result export. */ -void MainWindow::preview(){ +void MainWindow::onPreview(){ QString value; QTextStream stream(&value); exportToStream(stream, 1); @@ -791,27 +777,12 @@ msgBox.setDefaultButton(QMessageBox::Save); msgBox.exec(); } -/** - * Replaces the placeholders valid in header and footer. - * - * @param text the text to convert - * @return text with the esc sequences replaced - */ -QString MainWindow::replaceGlobalPlaceholders(QComboBox* combo, -QMap & placeholders){ -QString rc = combo->currentText(); -QString error; -if (!ReQStringUtils::replacePlaceholders(rc, placeholders, &error)) - guiError(combo, error); -return replaceEscSequences(rc); -} - /** * @brief Handles the action "reset parameters". * * Most of the filter parameters will be set to the default. */ -void MainWindow::resetParameters(){ +void MainWindow::onResetParameters(){ ui->comboBoxFilePatterns->setCurrentText(""); ui->comboBoxMaxDepth->setCurrentText(""); ui->comboBoxMaxSize->setCurrentText(""); @@ -828,6 +799,91 @@ ui->checkBoxRegExpr->setChecked(false); ui->checkBoxTextIgnoreCase->setChecked(false); } +/** + * Handles the "search" button. + */ +void MainWindow::onSearch(){ + m_errors = 0; + QString path = comboText(ui->comboBoxDirectory); + QFileInfo dir(path); + if (!dir.exists()) + guiError(ui->comboBoxDirectory, tr("directory not found: ") + path); + else if (!dir.isDir()) + guiError(ui->comboBoxDirectory, tr("not a directory: ") + path); + else{ + QApplication::setOverrideCursor (QCursor(Qt::WaitCursor)); + ui->pushButtonSearch->setEnabled(false); + ui->pushButtonSearch2->setEnabled(false); + if (m_finder == NULL) + m_finder = new FileFinder; + populateFinder(*m_finder); + if (! ui->checkBoxAppend->isChecked()) + onClear(); + startStop(true); + m_finder->start(); + QApplication::restoreOverrideCursor(); + } +} +/** + * Handles the push of the button "select directory". + */ +void MainWindow::onSelectDirectory(){ +QString dir = QFileDialog::getExistingDirectory(this, tr("Select Directory"), + ui->comboBoxDirectory->currentText(), QFileDialog::ShowDirsOnly); +if (!dir.isEmpty()) + ui->comboBoxDirectory->setCurrentText(ReFileUtils::nativePath(dir)); +} + +/** + * Calls the file selection dialog. + */ +void MainWindow::onSelectExportFile(){ +QString name = QFileDialog::getSaveFileName(this, tr("Select Export File"), + ui->comboBoxExportFile->currentText()); +if (!name.isEmpty()) + ui->comboBoxExportFile->setCurrentText(name); + +} + +/** + * Handles the "search" button. + */ +void MainWindow::onStop(){ + m_finder->setStop(true); + startStop(false); +} + +/** + * @brief Handles the "up" button: go to the parent directory. + */ +void MainWindow::onUp(){ +QString path = ui->comboBoxDirectory->currentText(); +QDir dir(path); +if (dir.exists()){ + dir.cdUp(); + if (dir.exists()){ + path = ReFileUtils::nativePath(dir.absolutePath()); + ui->comboBoxDirectory->setEditText(path); + setInHistory(ui->comboBoxDirectory, path); + } +} +} + +/** + * Replaces the placeholders valid in header and footer. + * + * @param text the text to convert + * @return text with the esc sequences replaced + */ +QString MainWindow::replaceGlobalPlaceholders(QComboBox* combo, +QMap & placeholders){ +QString rc = combo->currentText(); +QString error; +if (!ReQStringUtils::replacePlaceholders(rc, placeholders, &error)) + guiError(combo, error); +return replaceEscSequences(rc); +} + /** * Reads the history of the widget values and other parameters and set it. */ @@ -876,51 +932,6 @@ m_contextHandlers.save(storage); storage.close(); } -/** - * Handles the "search" button. - */ -void MainWindow::search(){ - m_errors = 0; - QString path = comboText(ui->comboBoxDirectory); - QFileInfo dir(path); - if (!dir.exists()) - guiError(ui->comboBoxDirectory, tr("directory not found: ") + path); - else if (!dir.isDir()) - guiError(ui->comboBoxDirectory, tr("not a directory: ") + path); - else{ - QApplication::setOverrideCursor (QCursor(Qt::WaitCursor)); - ui->pushButtonSearch->setEnabled(false); - ui->pushButtonSearch2->setEnabled(false); - if (m_finder == NULL) - m_finder = new FileFinder; - populateFinder(*m_finder); - if (! ui->checkBoxAppend->isChecked()) - clear(); - startStop(true); - m_finder->start(); - QApplication::restoreOverrideCursor(); - } -} -/** - * Handles the push of the button "select directory". - */ -void MainWindow::selectDirectory(){ -QString dir = QFileDialog::getExistingDirectory(this, tr("Select Directory"), - ui->comboBoxDirectory->currentText(), QFileDialog::ShowDirsOnly); -if (!dir.isEmpty()) - ui->comboBoxDirectory->setCurrentText(ReFileUtils::nativePath(dir)); -} - -/** - * Calls the file selection dialog. - */ -void MainWindow::selectExportFile(){ -QString name = QFileDialog::getSaveFileName(this, tr("Select Export File"), - ui->comboBoxExportFile->currentText()); -if (!name.isEmpty()) - ui->comboBoxExportFile->setCurrentText(name); - -} /** * Issues a message in the status line. @@ -933,12 +944,7 @@ if (!name.isEmpty()) */ bool MainWindow::say(ReLoggerLevel level, const QString& message){ bool rc = level >= LOG_INFO; - if (m_stdLabelBackgroundRole == NULL) - m_stdLabelBackgroundRole = new QPalette::ColorRole( - m_statusMessage->backgroundRole()); - m_statusMessage->setBackgroundRole( - ! rc ? QPalette::HighlightedText : *m_stdLabelBackgroundRole); - m_statusMessage->setText(message); + setStatusMessage(level, message); return rc; } /** @@ -955,27 +961,3 @@ void MainWindow::startStop(bool start){ ui->pushButtonStop2->setEnabled(start); } -/** - * Handles the "search" button. - */ -void MainWindow::stop(){ - m_finder->setStop(true); - startStop(false); -} - -/** - * @brief Handles the "up" button: go to the parent directory. - */ -void MainWindow::up(){ -QString path = ui->comboBoxDirectory->currentText(); -QDir dir(path); -if (dir.exists()){ - dir.cdUp(); - if (dir.exists()){ - path = ReFileUtils::nativePath(dir.absolutePath()); - ui->comboBoxDirectory->setEditText(path); - setInHistory(ui->comboBoxDirectory, path); - } -} -} - diff --git a/appl/refind/mainwindow.hpp b/appl/refind/mainwindow.hpp index c94ce6f..cbf7ce7 100644 --- a/appl/refind/mainwindow.hpp +++ b/appl/refind/mainwindow.hpp @@ -36,13 +36,13 @@ enum TableColumns { }; class FileFinder; -class MainWindow: public QMainWindow, public ReGuiValidator, protected ReObserver{ +class MainWindow: public ReGuiApplication, public ReGuiValidator{ Q_OBJECT public: - explicit MainWindow(const QString& startDir, const QString& homeDir, - QWidget *parent = 0); + explicit MainWindow(QApplication& application, const QString& homeDir, + const QString& startDir, QWidget *parent = 0); ~MainWindow(); public: @@ -51,33 +51,32 @@ protected: void findFiles(); void populateFinder(FileFinder& finder); private slots: - void about(); - void absPathToClipboard(); void baseDirToClipboard(); - void clear(); void closing(); - void exportFiles(); - void filePlaceholder(); - void footerPlaceholder(); - void fullNameToClipboard(); - void guiTimerUpdate(); void handleTableContextMenu(const QPoint& position); - void headerClicked(int col); - void headerPlaceholder(); - virtual ReturnCode notify(const char* message); - void options(); - void preview(); - void resetParameters(); + void onAbout(); + void onAbsPathToClipboard(); + void onClear(); + void onExportFiles(); + void onFilePlaceholder(); + void onFooterPlaceholder(); + void onFullNameToClipboard(); + void onHeaderClicked(int col); + void onHeaderPlaceholder(); + virtual void onGuiTimerUpdate(); + virtual void onLanguageChange(); + void onOptions(); + void onPreview(); + void onResetParameters(); + void onSearch(); + void onSelectDirectory(); + void onSelectExportFile(); + void onStop(); + void onUp(); virtual bool say(ReLoggerLevel level, const QString& message); void saveState(); - void search(); - void selectDirectory(); - void selectExportFile(); - void stop(); - void up(); private: - void prepareContextMenu(); QString buildAbsPath(int row, bool withNode = false, bool uriFormat = false); QDir::Filters buildFileTypes(); void buildGlobalPlaceholders(QMap & hash); @@ -87,7 +86,8 @@ private: void handleExternalCommand(ContextHandler* handler, const QString& parent, const QString& full, const QString& node); void handlePlaceholder(QComboBox* target); - void initializeHome(); + void initializeGUI(); + void prepareContextMenu(); void prepareTextFind(); QString replaceGlobalPlaceholders(QComboBox* combo, QMap & placeholders); @@ -95,8 +95,6 @@ private: void startStop(bool start); private: Ui::MainWindow *ui; - QLabel* m_statusMessage; - QPalette::ColorRole* m_stdLabelBackgroundRole; TextFinder m_textFinder; // the directory of the last search QDir m_lastBaseDir; @@ -111,7 +109,7 @@ private: ReLogger* m_logger; FileFinder* m_finder; ReGuiQueue m_guiQueue; - QTimer* m_guiTimer; + QString m_startDir; }; #endif // MAINWINDOW_HPP diff --git a/appl/refind/mainwindow.ui b/appl/refind/mainwindow.ui index de51ca8..c322474 100644 --- a/appl/refind/mainwindow.ui +++ b/appl/refind/mainwindow.ui @@ -83,7 +83,7 @@ :/main/icons/action_go.png:/main/icons/action_go.gif - Ctrl+F + Ctrl+F true @@ -97,6 +97,9 @@ + + Normal files will be found + Files @@ -136,6 +139,9 @@ 16777215 + + Case insensitiv text search + Ignore case @@ -179,6 +185,9 @@ 0 + + Only files containing this text (or text pattern) will be found + true @@ -208,6 +217,9 @@ 16777215 + + Directories will be found + Dirs @@ -230,6 +242,9 @@ 16777215 + + Text pattern is a regular expression (Perl syntax) + Regular expr. @@ -256,6 +271,9 @@ 16777215 + + Symbolic links will be found + Links @@ -278,6 +296,9 @@ 16777215 + + Files containing ASCII NUL will be found too + Binary files @@ -285,6 +306,9 @@ + + If this count of hits is reachted the search stops + true @@ -310,10 +334,10 @@ - Change to the parent directory + Go to the parent directory - &Up + ^ @@ -339,7 +363,7 @@ Select directory by a dialog box - + ... @@ -564,13 +588,16 @@ - &Run search + &Run search :/main/icons/action_go.gif :/main/icons/action_go.png:/main/icons/action_go.gif + + Ctrl+F + @@ -586,7 +613,7 @@ :/main/icons/stop.png:/main/icons/stop.png - Ctrl+T + Pause @@ -649,7 +676,7 @@ :/main/icons/database_save.png:/main/icons/database_save.png - Alt+E + Ctrl+E @@ -667,6 +694,9 @@ ... + + + @@ -703,6 +733,9 @@ ... + + + @@ -726,6 +759,9 @@ ... + + + @@ -757,6 +793,9 @@ :/main/icons/eye.png:/main/icons/eye.png + + Ctrl+Shift+V + @@ -790,7 +829,7 @@ true - refind.result.txt + refind.result.txt @@ -808,6 +847,9 @@ ... + + + @@ -853,7 +895,7 @@ Size (MByte) - AlignRight|AlignBottom + AlignTrailing|AlignBottom @@ -1011,7 +1053,7 @@ Exits the program - Ctrl+X + Ctrl+Shift+X @@ -1026,7 +1068,7 @@ Search the files with the given properties - Ctrl+R + Ctrl+R @@ -1034,7 +1076,7 @@ &About - Ctrl+Shift+A + Ctrl+Shift+A @@ -1046,7 +1088,7 @@ &Export - Ctrl+E + Ctrl+E @@ -1061,7 +1103,7 @@ Change to the parent directory - Ctrl+U + Ctrl+U @@ -1076,7 +1118,7 @@ Select directory with a dialog - Ctrl+D + Ctrl+D @@ -1091,7 +1133,7 @@ Puts the absolute path of the selected file into the clipboard - Ctrl+Shift+P + Ctrl+Shift+P @@ -1104,7 +1146,7 @@ &full name to clipboard - Ctrl+N + Ctrl+N @@ -1119,7 +1161,7 @@ Puts the base directory into the clipboard - Ctrl+B + Ctrl+B @@ -1134,7 +1176,7 @@ Sets the file filter properties to the default - Ctrl+Shift+R + Ctrl+Shift+R @@ -1149,7 +1191,7 @@ Saves the program state (position, history...) to a file - Ctrl+Shift+S + Ctrl+Shift+S @@ -1164,7 +1206,7 @@ Dialog for changing the options - Ctrl+Shift+O + Ctrl+Shift+O @@ -1179,7 +1221,7 @@ Shows a preview of the result export - Ctrl+Shift+V + Ctrl+Shift+V @@ -1190,7 +1232,7 @@ Clears the file table - Ctrl+L + Ctrl+L @@ -1204,6 +1246,9 @@ Start the search + + Ctrl+F + @@ -1219,6 +1264,9 @@ Stop the current search + + Pause + diff --git a/appl/refind/refind.de.qm b/appl/refind/refind.de.qm new file mode 100644 index 0000000..3b2076f Binary files /dev/null and b/appl/refind/refind.de.qm differ diff --git a/appl/refind/refind.de.ts b/appl/refind/refind.de.ts new file mode 100644 index 0000000..25302b1 --- /dev/null +++ b/appl/refind/refind.de.ts @@ -0,0 +1,1009 @@ + + + + + AboutDialog + + Dialog + Dialog + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span> for searching files in a directory tree</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is a program of the project &quot;<span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary&quot;.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sources are public domain and available under https://github.com/republib</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implemented in QT (C++) 5.x</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind: </span>Suchen von Dateien in einem Verzeichnisbaum</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Das ist ein Programm des Projekts&quot;<span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary&quot;.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Die Quellen sind frei (public domain) und unter https://github.com/republib erreichbar</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implementiert in QT (C++) 5.x</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a></p></body></html> + + + &OK + &OK + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span> for searching files in a directory tree.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is a program of the project</p> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary (RePubLib)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sources are public domain and available under</p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a> </p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implemented in QT (C++) 5.x</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a> </p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span>: Suche nach Dateien in einem Verzeichnisbaum.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dies ist ein Programm des Projekts</p> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary (RePubLib)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Die Quellen sind frei (public domain) und erhältlich unter</p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a> </p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implementiert in QT (C++) 5.x</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a> </p></body></html> + + + Version: + Version: + + + 2015.05.00 + 2015.05.00 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Droid Sans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">ReFind</span><span style=" font-family:'Sans Serif'; font-size:9pt;"> for searching files in a directory tree.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">This is a program of the project</span></p> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Re</span><span style=" font-family:'Sans Serif'; font-size:9pt;">al </span><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Pub</span><span style=" font-family:'Sans Serif'; font-size:9pt;">lic </span><span style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600;">Lib</span><span style=" font-family:'Sans Serif'; font-size:9pt;">rary (RePubLib)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Sources are public domain and available under</span></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a><span style=" font-family:'Sans Serif'; font-size:9pt;"> </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Implemented in QT (C++) 5.x</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">Icons: Mark James, </span><a href="http://famfamfam.com"><span style=" font-family:'Sans Serif'; font-size:9pt; text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a><span style=" font-family:'Sans Serif'; font-size:9pt;"> </span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span>: Suche nach Dateien in einem Verzeichnisbaum.</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dies ist ein Programm des Projekts</p> +<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary (RePubLib)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Die Quellen sind frei (public domain) und erhältlich unter</p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a> </p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implementiert in QT (C++) 5.x</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a> </p></body></html> + + + About the Program + Über das Programm + + + + DialogFilePlaceHolders + + File Specific Placeholders + Dateispezifische Platzhalter + + + New Row + Neue Zeile + + + Placeholder + Platzhalter + + + Example + Beispiel + + + Description + Beschreibung + + + base directory + Basisverzeichnis + + + filename with absolute path + Dateiname mit absolutem Pfad + + + relative path + relativer Pfad + + + filename with extension + Dateiname mit Dateityp + + + filename without extension + Dateiname ohne Dateityp + + + extension + Dateityp + + + date/time of the last change + Datum/Zeit der letzten Änderung + + + file length in megabyte + Dateilänge in Megabyte + + + 'file', 'dir', 'link (file)', 'link (dir)' + 'file', 'dir', 'link (Datei)', 'link (Verz.)' + + + \t + \t + + + tabulator + Tabulator + + + newline + Zeilenwechsel + + + path without node + Pfad ohne Dateinamen + + + + DialogGlobalPlaceholder + + Placeholders for Header and Footer + Platzhalter für Dateikopf und Dateiende + + + New Row + Neue Zeile + + + Placeholder + Platzhalter + + + Description + Beschreibung + + + current date/time + aktuelles Datum/aktuelle Zeit + + + current file patterns + aktuelle Dateisuchmuster + + + current text pattern + aktuelles Textsuchmuster + + + count of found directories + Zahl der gefundenen Verzeichnisse + + + count of found files + Zahl der gefundenen Dateien + + + sum of the lengths of the found files + Summe der Dateilängen der gefundenen Dateien + + + sum of the lengths of the found files in MBytes + Summe der Dateilängen der gefundenen Dateien in MByte + + + runtime of the search in seconds + Laufzeit der Suche in Sekunden + + + newline (line feed) + Zeilenwechsel (Linefeed) + + + newline character (carriage return) + Zeilenwechsel (Carriage return) + + + tabulator + Tabulator + + + backslash + umgekehrter Schrägstrich (Backslash) + + + + DialogOptions + + Dialog + Dialog + + + Programs (Context Menu) + Programme (Kontextmenü) + + + File Type + Dateityp + + + Titel (Menu) + Titel (Menü) + + + Program + Programm + + + Arguments + Argumente + + + Directory Mode + Verzeichnismodus + + + Editor + Editor + + + Shell + Shell + + + &Add/change + Hinzufügen/Ändern + + + D&elete + Lösch&en + + + &Up + A&uf + + + &Down + Runter + + + Current Entry + Aktuelles Element + + + File Type: + Dateityp: + + + Title: + Titel: + + + <html><head/><body><p>Program:</p></body></html> + <html><head/><body><p>Programm:</p></body></html> + + + Arguments: + Argumente + + + Directory mode + Verzeichnismodus + + + File + Datei + + + Directory + Verzeichnis + + + Both + Beide + + + ... + ... + + + Parent directory + Vaterverzeichnis + + + Entry (if directory) + Eintrag (wenn Verzeichnis) + + + Base directory + Basisverzeichnis + + + Tab 2 + Tab 2 + + + Select Program File + Wähle Programmdatei + + + Options + Optionen + + + + MainWindow + + RePubLib File Finder + RePubLib Dateisuche + + + &Directory, File Patterns, Text Pattern + &Basis, Dateimuster, Textmuster + + + Directory: + Basisverzeichnis: + + + Dirs + Verz. + + + Links + Links + + + Hidden + Versteckt + + + Write + Schreibbar + + + Read + Lesbar + + + Exec. + Ausführbar + + + Text Pattern: + Textmuster: + + + File Patterns: + Dateimuster: + + + <html><head/><body><p>A comma (',') separated list of filename patterns</p><p>Example: *.txt,*.odt</p></body></html> + <html><head/><body><p>Eine kommagetrennte (',') Liste von Dateinamensmuster</p><p>Beispiel: *.txt,*.odt</p></body></html> + + + Regular expr. + Reg. Ausdruck + + + Binary files + Binärdateien + + + Execute the search + Suche starten + + + &Run search + Suche sta&rten + + + Ctrl+F + Ctrl+F + + + Change to the parent directory + Ins Vaterverzeichnis wechseln + + + &Up + A&uf + + + Select directory by a dialog box + Wähle das Basisverzeichnis mittels Dialogbox + + + The base directory (starting point of the search) + Das Basisverzeichnis, aus dem die Suche startet + + + ignore case + ign. Groß/Klein. + + + Files + Dateien + + + &Size, Date, Depth, Excluded Dirs + Größe, Datum, Tiefe, Ausschlussverzeichnisse + + + Min. Size: + Minimalgröße + + + <html><head/><body><p>Formula of the minimal size.</p><p>Example: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>A non zero value excludes automatically directories.</p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>Units: factor 1000: KByte, MByte, GByte, TByte<br/>factor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> + <html><head/><body><p>Formel für die Minimalgröße.</p><p>Beispiel: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>Ein Wert größer 0 schließt automatisch Verzeichnisse aus.</p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit</p><p>Einheiten: Faktor 1000: KByte, MByte, GByte, TByte<br/>Faktor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> + + + Younger than: + Jünger als: + + + <html><head/><body><p>Formula of the minimal file date.</p><p>Example (relative): 3*5days+ 2hour</p><p>Example (absolute): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>The first operand may be an absolute date, date and time or time:</p><p>Date syntax: yyyy.mm.dd</p><p>Time syntax HH:MM:SS</p><p>Units: minutes, hours, days, weeks</p><p>Abbrevation is allowed: 'd' is the same as 'days'</p><p><br/></p></body></html> + <html><head/><body><p>Formel für die Minimaldatum.</p><p>Beispiel (relativ): 3*5days+ 2hour</p><p>Beispiel (absolut): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit.</p><p>Der erste Operand kann ein absolutes Datum, ein Datum mit Zeit oder eine Zeit sein:</p><p>Datumssyntax: yyyy.mm.dd</p><p>Zeit syntax HH:MM:SS</p><p>Einheiten: minutes (Minuten), hours (Stunden), days (Tage), weeks (Wochen)</p><p>Abkürzungen sind erlaubt: 'd' ist das gleiche wie 'days'</p><p><br/></p></body></html> + + + Min. Depth: + Min. Tiefe: + + + <html><head/><body><p>Minimal distance of the subdirectory containing the found file from the base directory.</p><p>Example:<br/>Min.Depth: 1<br/>Direcory: /home</p><p>/home/x will not be found</p><p>/home/dir/x will be found</p></body></html> + <html><head/><body><p>Minimaler Abstand vom Unterverzeichnis, das die gefundene Datei enthält, zum Basisverzeichnis.</p><p>Beispiel:<br/>Min.Tiefe: 1<br/>Basis: /home</p><p>/home/x wird nicht gefunden</p><p>/home/dir/x wird gefunden</p></body></html> + + + Max Size: + Max. Tiefe: + + + <html><head/><body><p>Formula of the maximum size.</p><p>Example: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>A non zero value excludes automatically directories.</p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>Units: factor 1000: KByte, MByte, GByte, TByte<br/>factor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> + <html><head/><body><p>Formel für die Maximalgröße.</p><p>Beispiel: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>Ein Wert größer 0 schließt automatisch Verzeichnisse aus.</p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit</p><p>Einheiten: Faktor 1000: KByte, MByte, GByte, TByte<br/>Faktor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> + + + Older than: + Älter als: + + + <html><head/><body><p>Formula of the maximal file date.</p><p>Example (relative): 3*5days+ 2hour</p><p>Example (absolute): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>The first operand may be an absolute date, date and time or time:</p><p>Date syntax: yyyy.mm.dd</p><p>Time syntax HH:MM:SS</p><p>Units: minutes, hours, days, weeks</p><p>Abbrevation is allowed: 'd' is the same as 'days'</p><p><br/></p></body></html> + <html><head/><body><p>Formel für die Maximaldatum.</p><p>Beispiel (relativ): 3*5days+ 2hour</p><p>Beispiel (absolut): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit.</p><p>Der erste Operand kann ein absolutes Datum, ein Datum mit Zeit oder eine Zeit sein:</p><p>Datumssyntax: yyyy.mm.dd</p><p>Zeit syntax HH:MM:SS</p><p>Einheiten: minutes (Minuten), hours (Stunden), days (Tage), weeks (Wochen)</p><p>Abkürzungen sind erlaubt: 'd' ist das gleiche wie 'days'</p><p><br/></p></body></html> + + + Max. Depth: + Max. Tiefe: + + + <html><head/><body><p>Maximum distance of the subdirectory containing the found file from the base directory.</p><p>Example:<br/>Max. Depth: 0<br/>It found no files in subdirectories.</p></body></html> + <html><head/><body><p>Maximaler Abstand vom Unterverzeichnis, das die gefundene Datei enthält, zum Basisverzeichnis.</p><p>Beispiel:<br/>Min.Tiefe: 1<br/>Basis: /home</p><p>/home/x wird nicht gefunden</p><p>/home/dir/x wird gefunden</p></body></html> + + + Excluded Dirs: + Ausschlussverzeichnisse: + + + <html><head/><body><p>a comma (',') separated list of directory names not entered for the search.</p><p>Example: .git,.cache</p></body></html> + <html><head/><body><p>eine kommagetrennte (',') Liste von Verzeichnisnamen, die nicht für die Suche betreten werden.</p><p>Beispiel: .git,.cache</p></body></html> + + + &Export + &Export + + + Export file: + Exportdatei: + + + Template of a line for each file + Vorlage einer Zeile für jede Datei + + + Select a placeholder for the template + Wähle einen Platzhalter für die Vorlage + + + ... + ... + + + &File + &Datei + + + Clipboard + Zwischenablage + + + Name of the export file + Name der Exportdatei + + + refind.result.txt + refind.result.txt + + + Select the export file + Wähle eine Exportdatei + + + Exports file attributes (specified in the template line) of each found files found file in a textfile or clipboard + Exportiert Dateiattribute (spezifiziert in der Vorlagenzeile) jeder gefundenen Datei in eine Textdatei oder in die Zwischenablage + + + Alt+E + Alt+E + + + File footer: + Dateiende: + + + Line template: + Zeilenvorlage: + + + File header: + Dateikopf: + + + Text at the top of the export file + Text am Anfang der Exportdatei + + + Text at the end of the export file + Text am Ende der Exportdatei + + + === found: ${dirs} dir(s) and ${files} file(s) with ${megabytes} MB in ${runtime} sec + === Gefunden: ${dirs} Verzeichnis(se) und ${files} Datei(en) mit ${megabytes} MB in ${runtime} Sekunden + + + Select a placeholder for the header + Wähle einen Platzhalter für den Dateikopf + + + Select a placeholder for the footer + Wähle einen Platzhalter für das Dateiende + + + Filename + Dateiname + + + Ext + Typ + + + Size (MByte) + Größe (MByte) + + + Modified + Geändert + + + Type + Typ + + + Path + Pfad + + + &Help + &Hilfe + + + &Navigate + &Navigation + + + &Edit + &Bearbeiten + + + toolBar + Werkzeugmenü + + + toolBar_2 + toolBar_2 + + + E&xit + &Beenden + + + Exits the program + Beendet das Programm + + + Search the files with the given properties + Suche nach Dateien mit den gegebenen Eigenschaften + + + &About + Ü&ber + + + &Select directory + &Wähle Basisverzeichnis + + + Select directory with a dialog + Wähle das Basisverzeichnis mit einem Dialog + + + Get absolute &path + Absolut&pfad + + + Puts the absolute path of the selected file into the clipboard + Bringt den absoluten Pfad der gewählten Datei in die Zwischenablage + + + &full name to clipboard + Vollname in Zw.ablage + + + &base directory to clipboard + &Basisverzeichnis in Zw.ablage + + + Puts the base directory into the clipboard + Bringt den Namen des Basisverzeichnis in die Zwischenablage + + + &Reset search parameters + Suchparameter zu&rücksetzen + + + Sets the file filter properties to the default + Setzt die Datei-Filterparameter auf die Ausgangswerte + + + Sa&ve + Speic&hern + + + Saves the program state (position, history...) to a file + Speichert den Programmstatus (Position, Historie...) in eine Datei + + + not a valid file: + keine gültige Datei: + + + result exported to + Ergebnis exportiert nach + + + result exported to the clipboard + Ergebnis in die Zwischenablage kopiert + + + unknown placeholder: + Unbekannter Platzhalter + + + directory not found: + Verzeichnis nicht gefunden: + + + not a directory: + Kein Vezeichnis: + + + no path delimiter allowed + Kein Pfadtrenner erlaubt + + + no patterns allowed. Do not use '* + Kein Muster erlaubt. Benutze keinen '*' + + + Select Directory + Wähle Verzeichnis + + + Select Export File + Wähle Exportdatei + + + Adds the result of the next search to the table + Fügt das Ergebnis der nächsten Suche ans Ende der Tabelle + + + Append + Anfügen + + + Ignore case + Ignor. Groß/Kl. + + + Clears the file table + Löscht die Dateitabelle + + + C&lear + &Löschen + + + S&top search + Suche anhalten + + + <html><head/><body><p>A comma (',') separated list of filename patterns. A prefix of '-' means inversion: if a filename matches it will not be found.</p><p>Example: *.txt,*.odt</p></body></html> + <html><head/><body><p>Eine mit Komma (',') getrennte Liste von Dateinamensmuster. Ein Präfix von '-' bedeutet Umkehrung: Wenn der Dateiname passt, wird er nicht gefunden.</p><p>Beispiel: *.txt,*.odt</p></body></html> + + + Stop after: + Halt nach: + + + &Preview + Vorschau + + + &File: + Datei: + + + &Search + Suche + + + &Options + &Optionen + + + Dialog for changing the options + Dialog zum Änderung der Optionen + + + Pre&view + &Vorschau + + + Shows a preview of the result export + Zeigt eine Vorschau der Exportergebnisse + + + Start search + Startet die Suche + + + Start the search + Suche starten + + + Stop search + Suche anhalten + + + Stop the current search + Halte die aktuelle Suche an + + + copy + Kopiere + + + copy %1 file(s) and %2 dir(s) + Kopiere %1 Datei(en) und %2 Verzeichnis(se) + + + copy %1 file(s) + Kopiere %1 Datei(en) + + + copy %1 dirs(s) + Kopiere %1 Verzeichnis(se) + + + %1 entry/entries copied to clipboard + %1 Elntrag/Einträge in die Zwischenablage kopiert + + + started: + Gestartet: + + + %1 object(s) + %1 Objekt(e) + + + Welcome at refind + Willkommen bei refind + + + Preview of the Export + Vorschau auf den Export + + + If this count of hits is reachted the search stops + Wenn diese Zahl an Treffern erreicht ist, wird die Suche abgebrochen + + + Go to the parent directory + In Vorgängerverzeichnis wechseln + + + Normal files will be found + Normale Dateien werden gefunden + + + Case insensitiv text search + Textsuche berücksichtigt Groß-/Kleinschreibung nicht + + + Directories will be found + Verzeichnisse werden gefunden + + + Text pattern is a regular expression (Pearl syntax) + Das Textsuchmuster enthält einen regulären Ausdruck (Perl Syntax) + + + Symbolic links will be found + Symbolische Verknüpfungen (Links) werden gefunden + + + Files containing ASCII NUL will be found too + Dateien, die ASCII NUL enthalten, werden auch gefunden + + + Text pattern is a regular expression (Perl syntax) + Das Textsuchmuster enthält einen regulären Ausdruck (Perl Syntax) + + + Only files containing this text (or text pattern) will be found + Nur Dateien, die diesen Text (oder Muster) enthalten, werden gefunden + + + + QObject + + link (dir) + Link (Verz.) + + + link (file) + Link (Datei) + + + dir + Verz. + + + file + Datei + + + Found: %d dir(s) and %d file(s) with %.6f MByte. Duration of the search: %.3f sec + Gefunden: %d Verzeichnis(se) und %d Datei(en) mit %.6f MByte. Dauer der Suche: %.3f sec + + + more than 2 power operators, e.g. '2^3^4' + Mehr als 2 Potenzoperatoren, z.B. '2^3^4' + + + number overflow while power operation + Zahlüberlauf in Potenzoperation + + + number expected: + Zahl erwartet: + + + missing ':' in unit definition, e.g. 'k:1000': + vermisse ':' in der Einheitendefinition, z.B. 'k:1000': + + + too many ':' in unit definition: + Zu viele ':' in der Einheitendefinition: + + + not a number: + Keine Zahl: + + + unknown unit '$1'. Allowed: + Unbekannte Einheit '$1'. Erlaubt: + + + empty string is not a date/time + Ein leerer String ist kein Datum/keine Zeit + + + not an integer: + Keine Ganzzahl: + + + copy + Kopiere + + + not found: %1 + Nicht gefunden: %1 + + + cannot open (%1): %2 + Kann nicht öffnen (%1): %2 + + + cannot write (%1): %2 [%3/%4] + Kann nicht schreiben (%1): %2 [%3/%4] + + + file can be read only partitionally: %1 [%2/%3] + Datei kann teilweise schreibgeschützt sein: %1 [%2/%3] + + + cannot set date/time (%1): %2 + Kann Dateidatum nicht setzen: (%1): %2 + + + cannot set permissions (%1): %2 + Kann Dateirechte nicht setzen (%1): %2 + + + can't create directory (%1): %2 + Kann Verzeichnis nicht erzeugen (%1): %2 + + + can't create directory (is a file): + Kann Verzeichnis nicht erstellen (ist eine Datei): + + + unknown placeholder: + Unbekannter Platzhalter: + + + %1 of %2 (%3 %) + %1 von %2 (%3 %) + + + unknown unit '%1'. Allowed: + unbekannte Einheit: '%1'. Erlaubt: + + + Found: %1 dir(s) and %2 file(s) with %%3. Runtime: %4 + Gefunden: %1 Verzeichnis(se) und %2 Datei(en) mit %%3. Laufzeit: %4 + + + Found: %1 dir(s) and %2 file(s) with %3. Runtime: %4 + Gefunden: %1 Verzeichnis(se) und %2 Datei(en) mit %3. Laufzeit: %4 + + + + ReGuiApplication + + Welcome! + Willkommen! + + + diff --git a/appl/refind/refind.pro b/appl/refind/refind.pro index bcc0eca..199a304 100644 --- a/appl/refind/refind.pro +++ b/appl/refind/refind.pro @@ -32,7 +32,8 @@ SOURCES += main.cpp\ dialogfileplaceholder.cpp \ utils.cpp \ dialogoptions.cpp \ - filetablewidget.cpp + filetablewidget.cpp \ + ../../gui/ReGuiApplication.cpp HEADERS += mainwindow.hpp \ @@ -57,7 +58,7 @@ FORMS += mainwindow.ui \ dialogfileplaceholder.ui \ dialogoptions.ui -TRANSLATIONS = refind_de.ts +TRANSLATIONS = refind.de.ts CODECFORSRC = UTF-8 diff --git a/appl/refind/refind_de.ts b/appl/refind/refind_de.ts deleted file mode 100644 index 04f3417..0000000 --- a/appl/refind/refind_de.ts +++ /dev/null @@ -1,687 +0,0 @@ - - - - - AboutDialog - - Dialog - Dialog - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span> for searching files in a directory tree</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is a program of the project &quot;<span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary&quot;.</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sources are public domain and available under https://github.com/republib</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implemented in QT (C++) 5.x</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind: </span>Suchen von Dateien in einem Verzeichnisbaum</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Das ist ein Programm des Projekts&quot;<span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary&quot;.</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Die Quellen sind frei (public domain) und unter https://github.com/republib erreichbar</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implementiert in QT (C++) 5.x</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a></p></body></html> - - - &OK - &OK - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span> for searching files in a directory tree.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This is a program of the project</p> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary (RePubLib)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sources are public domain and available under</p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a> </p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implemented in QT (C++) 5.x</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a> </p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ReFind</span>: Suche nach Dateien in einem Verzeichnisbaum.</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dies ist ein Programm des Projekts</p> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Re</span>al <span style=" font-weight:600;">Pub</span>lic <span style=" font-weight:600;">Lib</span>rary (RePubLib)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Die Quellen sind frei (public domain) und erhältlich unter</p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/republib"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/republib</span></a> </p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Implementiert in QT (C++) 5.x</p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Icons: Mark James, <a href="http://famfamfam.com"><span style=" text-decoration: underline; color:#0000ff;">http://famfamfam.com</span></a> </p></body></html> - - - - DialogFilePlaceHolders - - File Specific Placeholders - Dateispezifische Platzhalter - - - New Row - Neue Zeile - - - Placeholder - Platzhalter - - - Example - Beispiel - - - Description - Beschreibung - - - ${base} - - - - /home/bob - - - - base directory - Basisverzeichnis - - - filename with absolute path - Dateiname mit absolutem Pfad - - - relative path - relativer Pfad - - - filename with extension - Dateiname mit Dateityp - - - filename without extension - Dateiname ohne Dateityp - - - extension - Dateityp - - - date/time of the last change - Datum/Zeit der letzten Änderung - - - file length in megabyte - Dateilänge in Megabyte - - - 'file', 'dir', 'link (file)', 'link (dir)' - 'file', 'dir', 'link (Datei)', 'link (Verz.)' - - - \t - \t - - - tabulator - Tabulator - - - newline - Zeilenwechsel - - - - DialogGlobalPlaceholder - - Placeholders for Header and Footer - Platzhalter für Dateikopf und Dateiende - - - New Row - Neue Zeile - - - Placeholder - Platzhalter - - - Description - Beschreibung - - - current date/time - aktuelles Datum/aktuelle Zeit - - - current file patterns - aktuelle Dateisuchmuster - - - current text pattern - aktuelles Textsuchmuster - - - count of found directories - Zahl der gefundenen Verzeichnisse - - - count of found files - Zahl der gefundenen Dateien - - - sum of the lengths of the found files - Summe der Dateilängen der gefundenen Dateien - - - sum of the lengths of the found files in MBytes - Summe der Dateilängen der gefundenen Dateien in MByte - - - runtime of the search in seconds - Laufzeit der Suche in Sekunden - - - newline (line feed) - Zeilenwechsel (Linefeed) - - - newline character (carriage return) - Zeilenwechsel (Carriage return) - - - tabulator - Tabulator - - - backslash - umgekehrter Schrägstrich (Backslash) - - - - MainWindow - - RePubLib File Finder - RePubLib Dateisuche - - - &Directory, File Patterns, Text Pattern - &Basis, Dateimuster, Textmuster - - - Directory: - Basisverzeichnis: - - - Dirs - Verz. - - - Links - Links - - - Hidden - Versteckt - - - Write - Schreibbar - - - Read - Lesbar - - - Exec. - Ausführbar - - - Text Pattern: - Textmuster: - - - File Patterns: - Dateimuster: - - - <html><head/><body><p>A comma (',') separated list of filename patterns</p><p>Example: *.txt,*.odt</p></body></html> - <html><head/><body><p>Eine kommagetrennte (',') Liste von Dateinamensmuster</p><p>Beispiel: *.txt,*.odt</p></body></html> - - - Regular expr. - Reg. Ausdruck - - - Binary files - Binärdateien - - - Execute the search - Suche starten - - - &Run search - Suche sta&rten - - - Ctrl+F - - - - Change to the parent directory - Ins Vaterverzeichnis wechseln - - - &Up - A&uf - - - Select directory by a dialog box - Wähle das Basisverzeichnis mittels Dialogbox - - - The base directory (starting point of the search) - Das Basisverzeichnis, aus dem die Suche startet - - - ignore case - ign. Groß/Klein. - - - Files - Dateien - - - &Size, Date, Depth, Excluded Dirs - Größe, Datum, Tiefe, Ausschlussverzeichnisse - - - Min. Size: - Minimalgröße - - - <html><head/><body><p>Formula of the minimal size.</p><p>Example: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>A non zero value excludes automatically directories.</p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>Units: factor 1000: KByte, MByte, GByte, TByte<br/>factor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> - <html><head/><body><p>Formel für die Minimalgröße.</p><p>Beispiel: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>Ein Wert größer 0 schließt automatisch Verzeichnisse aus.</p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit</p><p>Einheiten: Faktor 1000: KByte, MByte, GByte, TByte<br/>Faktor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> - - - Younger than: - Jünger als: - - - <html><head/><body><p>Formula of the minimal file date.</p><p>Example (relative): 3*5days+ 2hour</p><p>Example (absolute): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>The first operand may be an absolute date, date and time or time:</p><p>Date syntax: yyyy.mm.dd</p><p>Time syntax HH:MM:SS</p><p>Units: minutes, hours, days, weeks</p><p>Abbrevation is allowed: 'd' is the same as 'days'</p><p><br/></p></body></html> - <html><head/><body><p>Formel für die Minimaldatum.</p><p>Beispiel (relativ): 3*5days+ 2hour</p><p>Beispiel (absolut): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit.</p><p>Der erste Operand kann ein absolutes Datum, ein Datum mit Zeit oder eine Zeit sein:</p><p>Datumssyntax: yyyy.mm.dd</p><p>Zeit syntax HH:MM:SS</p><p>Einheiten: minutes (Minuten), hours (Stunden), days (Tage), weeks (Wochen)</p><p>Abkürzungen sind erlaubt: 'd' ist das gleiche wie 'days'</p><p><br/></p></body></html> - - - Min. Depth: - Min. Tiefe: - - - <html><head/><body><p>Minimal distance of the subdirectory containing the found file from the base directory.</p><p>Example:<br/>Min.Depth: 1<br/>Direcory: /home</p><p>/home/x will not be found</p><p>/home/dir/x will be found</p></body></html> - <html><head/><body><p>Minimaler Abstand vom Unterverzeichnis, das die gefundene Datei enthält, zum Basisverzeichnis.</p><p>Beispiel:<br/>Min.Tiefe: 1<br/>Basis: /home</p><p>/home/x wird nicht gefunden</p><p>/home/dir/x wird gefunden</p></body></html> - - - Max Size: - Max. Tiefe: - - - <html><head/><body><p>Formula of the maximum size.</p><p>Example: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>A non zero value excludes automatically directories.</p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>Units: factor 1000: KByte, MByte, GByte, TByte<br/>factor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> - <html><head/><body><p>Formel für die Maximalgröße.</p><p>Beispiel: 3*512ki + 5MiByte + -2^10</p><p><br/></p><p>Ein Wert größer 0 schließt automatisch Verzeichnisse aus.</p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit</p><p>Einheiten: Faktor 1000: KByte, MByte, GByte, TByte<br/>Faktor 1024: KiByte, MiByte, GiByte, TiByte</p><p><br/></p></body></html> - - - Older than: - Älter als: - - - <html><head/><body><p>Formula of the maximal file date.</p><p>Example (relative): 3*5days+ 2hour</p><p>Example (absolute): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>A formula is a arithmetic expression with the operators '+', '*' and '^' (potentioning).</p><p>Usual precedence: '+' &lt; '*' &lt; '^'</p><p>The operands are integer numbers with potentionally a unit.</p><p>The first operand may be an absolute date, date and time or time:</p><p>Date syntax: yyyy.mm.dd</p><p>Time syntax HH:MM:SS</p><p>Units: minutes, hours, days, weeks</p><p>Abbrevation is allowed: 'd' is the same as 'days'</p><p><br/></p></body></html> - <html><head/><body><p>Formel für die Maximaldatum.</p><p>Beispiel (relativ): 3*5days+ 2hour</p><p>Beispiel (absolut): 2015.12.31/23:59:59 - 3weeks</p><p><br/></p><p>Eine Formel ist ein arithmetischer Ausdruck mit den Operatoren '+', '*' und '^' (Potenzierung).</p><p>Übliche Vorrangregelung: '+' &lt; '*' &lt; '^'</p><p>Die Operanden sind Ganzzahlen mit evt. einer Einheit.</p><p>Der erste Operand kann ein absolutes Datum, ein Datum mit Zeit oder eine Zeit sein:</p><p>Datumssyntax: yyyy.mm.dd</p><p>Zeit syntax HH:MM:SS</p><p>Einheiten: minutes (Minuten), hours (Stunden), days (Tage), weeks (Wochen)</p><p>Abkürzungen sind erlaubt: 'd' ist das gleiche wie 'days'</p><p><br/></p></body></html> - - - Max. Depth: - Max. Tiefe: - - - <html><head/><body><p>Maximum distance of the subdirectory containing the found file from the base directory.</p><p>Example:<br/>Max. Depth: 0<br/>It found no files in subdirectories.</p></body></html> - <html><head/><body><p>Maximaler Abstand vom Unterverzeichnis, das die gefundene Datei enthält, zum Basisverzeichnis.</p><p>Beispiel:<br/>Min.Tiefe: 1<br/>Basis: /home</p><p>/home/x wird nicht gefunden</p><p>/home/dir/x wird gefunden</p></body></html> - - - Excluded Dirs: - Ausschlussverzeichnisse: - - - <html><head/><body><p>a comma (',') separated list of directory names not entered for the search.</p><p>Example: .git,.cache</p></body></html> - <html><head/><body><p>eine kommagetrennte (',') Liste von Verzeichnisnamen, die nicht für die Suche betreten werden.</p><p>Beispiel: .git,.cache</p></body></html> - - - &Export - &Export - - - Export file: - Exportdatei: - - - Template of a line for each file - Vorlage einer Zeile für jede Datei - - - Select a placeholder for the template - Wähle einen Platzhalter für die Vorlage - - - ... - ... - - - &File - &Datei - - - Clipboard - Zwischenablage - - - Name of the export file - Name der Exportdatei - - - refind.result.txt - - - - Select the export file - Wähle eine Exportdatei - - - Exports file attributes (specified in the template line) of each found files found file in a textfile or clipboard - Exportiert Dateiattribute (spezifiziert in der Vorlagenzeile) jeder gefundenen Datei in eine Textdatei oder in die Zwischenablage - - - Alt+E - - - - File footer: - Dateiende: - - - Line template: - Zeilenvorlage: - - - File header: - Dateikopf: - - - Text at the top of the export file - Text am Anfang der Exportdatei - - - Text at the end of the export file - Text am Ende der Exportdatei - - - === found: ${dirs} dir(s) and ${files} file(s) with ${megabytes} MB in ${runtime} sec - === Gefunden: ${dirs} Verzeichnis(se) und ${files} Datei(en) mit ${megabytes} MB in ${runtime} Sekunden - - - Select a placeholder for the header - Wähle einen Platzhalter für den Dateikopf - - - Select a placeholder for the footer - Wähle einen Platzhalter für das Dateiende - - - Filename - Dateiname - - - Ext - Typ - - - Size (MByte) - Größe (MByte) - - - Modified - Geändert - - - Type - Typ - - - Path - Pfad - - - &Help - &Hilfe - - - &Navigate - &Navigation - - - &Edit - &Bearbeiten - - - toolBar - - - - toolBar_2 - - - - E&xit - &Beenden - - - Exits the program - Beendet das Programm - - - Ctrl+X - - - - Search the files with the given properties - Suche nach Dateien mit den gegebenen Eigenschaften - - - Ctrl+R - - - - &About - Ü&ber - - - Ctrl+A - - - - Ctrl+E - - - - Ctrl+U - - - - &Select directory - &Wähle Basisverzeichnis - - - Select directory with a dialog - Wähle das Basisverzeichnis mit einem Dialog - - - Ctrl+D - - - - Get absolute &path - Absolut&pfad - - - Puts the absolute path of the selected file into the clipboard - Bringt den absoluten Pfad der gewählten Datei in die Zwischenablage - - - Ctrl+P - - - - &full name to clipboard - Vollname in Zw.ablage - - - Ctrl+N - - - - &base directory to clipboard - &Basisverzeichnis in Zw.ablage - - - Puts the base directory into the clipboard - Bringt den Namen des Basisverzeichnis in die Zwischenablage - - - Ctrl+B - - - - &Reset search parameters - Suchparameter zu&rücksetzen - - - Sets the file filter properties to the default - Setzt die Datei-Filterparameter auf die Ausgangswerte - - - Sa&ve - Speic&hern - - - Saves the program state (position, history...) to a file - Speichert den Programmstatus (Position, Historie...) in eine Datei - - - Ctrl+S - - - - Willkommen bei refind - - - - not a valid file: - keine gültige Datei: - - - result exported to - Ergebnis exportiert nach - - - result exported to the clipboard - Ergebnis in die Zwischenablage kopiert - - - unknown placeholder: - Unbekannter Platzhalter - - - directory not found: - Verzeichnis nicht gefunden: - - - not a directory: - Kein Vezeichnis: - - - no path delimiter allowed - Kein Pfadtrenner erlaubt - - - no patterns allowed. Do not use '* - Kein Muster erlaubt. Benutze keinen '*' - - - Select Directory - Wähle Verzeichnis - - - Select Export File - Wähle Exportdatei - - - - QObject - - link (dir) - Link (Verz.) - - - link (file) - Link (Datei) - - - dir - Verz. - - - file - Datei - - - Found: %d dir(s) and %d file(s) with %.6f MByte. Duration of the search: %.3f sec - Gefunden: %d Verzeichnis(se) und %d Datei(en) mit %.6f MByte. Dauer der Suche: %.3f sec - - - more than 2 power operators, e.g. '2^3^4' - Mehr als 2 Potenzoperatoren, z.B. '2^3^4' - - - number overflow while power operation - Zahlüberlauf in Potenzoperation - - - number expected: - Zahl erwartet: - - - missing ':' in unit definition, e.g. 'k:1000': - vermisse ':' in der Einheitendefinition, z.B. 'k:1000': - - - too many ':' in unit definition: - Zu viele ':' in der Einheitendefinition: - - - not a number: - Keine Zahl: - - - unknown unit '$1'. Allowed: - Unbekannte Einheit '$1'. Erlaubt: - - - empty string is not a date/time - Ein leerer String ist kein Datum/keine Zeit - - - not an integer: - Keine Ganzzahl: - - - diff --git a/gui/ReGuiApplication.cpp b/gui/ReGuiApplication.cpp index f2aff5f..6b786ac 100644 --- a/gui/ReGuiApplication.cpp +++ b/gui/ReGuiApplication.cpp @@ -285,10 +285,10 @@ const QString& ReGuiApplication::installPath() const void ReGuiApplication::setStatusMessage(ReLoggerLevel level, const QString& message){ switch(level){ case LOG_ERROR: - m_statusMessage->setText("+ " + message); + m_statusMessage->setText("+++ " + message); break; case LOG_WARNING: - m_statusMessage->setText("! " + message); + m_statusMessage->setText("### " + message); break; default: m_statusMessage->setText(message); diff --git a/gui/ReStateStorage.cpp b/gui/ReStateStorage.cpp index 8ea323d..879c144 100644 --- a/gui/ReStateStorage.cpp +++ b/gui/ReStateStorage.cpp @@ -322,7 +322,8 @@ void ReStateStorage::store(const QComboBox* combo, const char* name, } } } - m_stream->flush(); + if (m_stream != NULL) + m_stream->flush(); } /**